欢迎来到天天文库
浏览记录
ID:14169036
大小:29.50 KB
页数:3页
时间:2018-07-26
《软件工程和敏捷开发方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件工程和敏捷开发方法200305018030白国庆要说RUP,就要先说UP。UP可以用下面的话来概括——用例驱动、以构架为中心、迭代和增量的开发过程。acobson在《Object-OrientedSoftwareEngineering:AUseCaseDrivernApproach》中给的定义是这样的:当希望改变系统的行为时,重建相对应的参与者和用例模型。整个系统的基础构架将有用户所希望使用系统行为进行的操作来控制。由于控制了所有模型,因此可以根据新需求修改系统。我们向用户询问他们希望改动的
2、地方,也就是用例,并直接找出这些改变在其他模型的什么部分实现。用例被用来驱动你开发过程中的各种实践,你的需求、设计、测试、部署都是需要在用例中去寻找理由的。以构架为中心,就是要你使用构架的方法,采取组件化的方式进行建造你的系统。在RUP中的构架,是一种设计的基线。建造这样的基线采取的策略是,从用例出发,寻找那些稳定的,业务意义重大的,技术风险可以在早期解决的部分,构建一个可以运行的程序。以后的开发,尽量使用以存在的组件。这一点同敏捷的做法是不相同的,其优势和弱势都存在。而增量和迭代,就是要求在构
3、建构架的基础上,添加新的部分,按照周期性提交最终结果的方式进行开发。UP的建议迭代周期是2周到6周,同时各个阶段的周期可以不同。在UP中过程被划分为4个阶段,起始阶段、细化阶段、构造阶段、移交阶段。起始阶段在理想的状况下是短暂的,可能只需要几天,以至于都不存在迭代。这个阶段的工作主要是需求工程的短小片断,去选择10%的需求(最要业务价值和技术价值,风险最高最应该早期解决)的TOP10高级需求list,项目的最初视图,商业用例的草图。如果这个时期过长,那么往往是需求规格说明和计划过度的表现。细化阶
4、段,在我看来可能是UP中最关键的。核心的、具有构架意义的元素,将在一系列短小的timebox下的迭代内被编程和测试。并且这个阶段最后,可能会完成一个部分可靠的计划和评估。这个阶段的工作包括了需求和设计建模,同时也有编程和测试。在这个阶段需求通过迭代被不断的精华,并且最终达到大部分的稳定。同时开发一个系统的核心——构架,并使之达到稳定,也是这个阶段的目标。这个阶段是创造和发现的阶段,理想状况下需要的是一个小型的、精诚合作的高素质团队进行。由于这个阶段不可知因素和新的需求将被不断提出,迭代的周期往往
5、比较长(例如3周)。同时这个阶段在整个开发过程中往往是和构造阶段的比例是3:10。构造阶段是构建系统的主要阶段。这时需要在细化阶段已经建立起来的牢固基础上,去建造其他未完成部分。在这个阶段需求还可以变化,但是大的风险和意外应该已经在细化阶段被发现了。这个阶段的主要工作是编程,还包括测试(α),文档的建立(比如用户使用文档)、性能优化。当然还会存在一些少量的需求和设计工作。这个阶段一般是由更多,更大的组进行并行的开发。这个阶段的迭代周期由于已经定义了大部分的风险和意外,迭代周期往往会比较短(一般在
6、1-2周)。移交阶段是系统的最终部署阶段。首先你需要发布一些release版本进行审核和反馈。往往在这个阶段的前期往往就已经冻结了代码,而只进行除错。可能还需要几个迭代周期,最后就是部署上线的工作。这个阶段往往还包括渠道的发行,培训,新旧系统的并行运转,数据的转换。往往会由专门的团队负责这个阶段的主要工作。这四个阶段之间有里程碑需要被标示出来。起始阶段的里程碑是定义好软件的框架目标,也就是系统的视图和商业用例,最重要的是定义好高级需求列表。一般这个周期的里程碑被称为LCO(lifecycleob
7、jectives)。细化阶段的完成以构建出一个构架为里程碑,一般称为LCA(lifecyclearchitecture)。构建阶段的历程碑就是完成这个系统的全部。移交阶段就是完成这个系统的部署以完成合同。UP定义了一组大概50个的工件集。这些工件都是按照其特有的工作流,在特有的角色的操作下建立的。这些工件是按照项目的具体要求进行专门的选择的,这也就是裁减。裁减的原则是lessisbetter,这样才可以做到资源更加集中,成本更加集中和低廉。对于UP的实施建议是(《theRUPmadeeasy》)
8、:1、尽早而持续的排除风险,否则将给你带来麻烦。2、交付给你客户有价值的东西——尽早并且经常性的交付。3、在早期的迭代中重点在开发可执行的软件,而不是规格说明或者其他文档。4、尽早适应项目变化。通过早期开发,多种需求工序,变更管理工具等等手段,激发变化和管理变化。5、尽早建立可执行的构架基线。6、最好使用面向组件开发,尽量重用现有组件。7、以团队协作方式进行工作。例如使用交叉功能的团队。8、质量在某种意义上是生命,不应该在出现质量问题时再追悔莫及。UP有六个最佳实践:1、timebox的迭代。2
此文档下载收益归作者所有