系统架构设计师学习之路(31)

6.3 基于UML的软件开发过程

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值