UML是独立于软件开发过程的,即UML能够在几乎任何一种软件开发过程中使用。迭代的渐进式软件开发过程包含4个阶段,即初启、细化、构建和部署。
一、初启
- 软件发起人确定项目的主要目标和范围
- 进行初步的可行性分析和经济效益分析
二、细化
细化开始标志着项目的正式成立,软件项目组在此阶段要完成以下工作:
1、初步的需求分析
- 采用UML的用例描述目标软件系统所有比较重要、比较有风险的用例,利用用例图表示参与者与用例以及用例与用例之间的关系。
- 采用UML的类图表示目标软件系统所基于的应用领域中的概念与概念之间的关系。这些相互关联的概念构成领域模型。
- 如果领域中含有明显的流程处理成分,可以考虑利用UML的活动图来刻画领域中的工作流,并标识业务流程中的并发、同步特征。
2、初步的高层设计
如果目标软件系统的规模比较大,那么经初步需求分析获得的用例和类将会非常多。此时,可以考虑用例、类在业务领域中的关系,或者根据业务领域中某种有意义的分类方法将整个软件系统划分为若干个包,利用UML的包图刻画这些包及其间的关系。这样,用例、用例图、类、类图将依据包的划分方法分属于不同的包,从而得到整个目标软件系统的高层结构。
3、部分的详细设计
对于系统中某些重要的风险比较高的用例,可以采用交互图进一步探讨其内部实现过程。同样对于系统中的关键类,也可以详细研究其属性和操作,并在UML类图中加以表现。因此,这里倡导的软件开过程是根据软件元素(用例和、类等)的重要性和风险程度确立优先细化原则,建议软件项目组优先考虑重要的、比较有风险的用例和类,不能将风险的识别和解决延迟到细化阶段之后。
4、部分的原型构造
在许多情形下,针对某些复杂的用例构造可实际运行的原型是降低技术风险、让用户帮助软件项目组确认用户需求的最有效的方法。为构造原型,需要针对用例生成详尽的交互图,对所有相关类给出明确的属性和操作定义。
综上所述,在细化阶段可能需要使用的UML语言机制包括描述用户需求的用例及用例图、表示领域概念模型的类图、表示业务流程处理的活动图、表示系统高层结构的包图和表示用例内部实现的交互图。
三、构建
在构造阶段,开发人员通过一系列的迭代完成对所有用例的软件实现工作,在每次迭代中实现一部分用例。以迭代方式实现所有用例的好处在于用户可以及早参与对已实现用例的实际评价,并提出改进意见。这样可以有效降低大型软件系统的开发风险。在实际开始构造软件系统之前,有必要预先制定迭代计划。计划的制定需要遵循如下两项原则。
- (1)用户认为业务价值较大的用例应优先安排
- (2)开发人员评估后认为开发风险较高的用例应优先安排。
在迭代计划中,要确定迭代次数、每次迭代所需要时间以及每次迭代中应完成(或部分完成)的用例。
每次迭代过程中由针对用例的分析、设计、编码、测试和集成5个子阶段过程。在集成之后,用户可以对用例的实现效果进行评价,并提出修改意见。这些修改意见可以在本次迭代过程中立即实现,也可以在下次迭代中再予以考虑。
构建过程中,需要使用UML的交互图来设计用例的实现方法。为了与设计得出的交互图协调一致,需要修改或者精华再细化阶段绘制的作为领域模型的类图,增加一些为软件实现所必须的类、类的属性或方法。
在构建阶段的每次迭代过程中,可以对细化阶段绘出的包图进行修改或精化,以便包图切实反映目标软件系统最顶层的结构划分情况。
综上所述,在构建阶段可能需要使用的UML语言机制包括:
- (1)用例及用例图。它们是开发人员在构造阶段进行分析和设计的基础。
- (2)类图。在领域概念模型的基础上引进为软件实现所必须的类、属性和方法。
- (3)交互图。表示针对用例设计的软件实现方法。
- (4)状态图。表示类的对象的状态-事件-响应行为。
- (5)活动图。表示复杂的算法过程,尤其是过程中的并发和同步。
- (6)包图。表示目标软件系统的顶层架构。
- (7)构件图。
- (8)部署图。
四、部署图
在部署阶段,开发人员将构造阶段获得的软件系统在用户实际的工作环境(或接近实际的模拟环境)中试运行,根据用户的修改意见进行少量调整。