使用 UML 与面向对象框架描述软件开发过程
1. UML 描述软件过程的局限性
在软件过程建模中,UML 对于描述软件过程的静态部分(结构视图)是非常合适的。可以通过扩展参考模型,利用多个类和对象 UML 图来描述过程建模的重要概念、结构、行为、约束以及它们之间的关联关系。然而,在描述软件过程的动态部分时,UML 存在一些不足。
UML 活动图虽被认为是描述软件过程和工作流建模中控制流最合适的 UML 图,但它存在以下明显局限:
- 缺乏表达能力 :UML 活动图是一种事件图,适合表达事件驱动(反应式)控制,如泳道、分支、分叉和合并等。但它无法表达主动控制,而主动控制允许根据预定的优先级规则来执行任务,这对于第二代过程建模语言来说是非常重要的特性,因为它能使过程模型更灵活、更具表达力。
- 无法显示活动属性 :活动图不能显示活动的属性,如活动的截止日期、持续时间、相关角色、使用的资源和工具等。而这些属性在软件过程建模和工作流管理中是至关重要的。
2. PROMENADE 对 UML 活动图的扩展
PROMENADE 对 UML 活动图进行了扩展,解决了上述部分问题:
- 提供主动控制 :通过多种优先级关系提供主动控制,并且可以在同一图中与通常的事件驱动控制相结合。
- 可视化活动属性 :可以在活动图中直观地显示活动属性。
3. 传统软件开发过程规范及其不足
传统的软件开发过程规范通常用任务、技术、软件开发生成物和活动的图形