使用构件架构
先来看看他的优势,这样你才会觉得这个东西很牛掰。在然后才想去了解。
采用构件架构的优势:
对体系结构进行自上而下的设计,实现和测试。
用一种系统化的做法来定义好的体系结构。
采用定义明确的接口来使得变更有弹性。
采用现成的和通过逆向工程的到的构件。
由高级别的用例来驱动。
易于直观上的理解。
可视化建模
描述体系结构特点和结构。
描述系统里的各个元素如何组合在一起。
保证设计和实现上的一致性。
保证没有歧义的沟通。
质量的检验
RUP中是怎样做的呢?
为每个关键模块创建测试用例斌测试,从而保证所有的需求被正确实现。
不可接受的应用性能和不能接受的可靠性对一个软件系统的影响同等重要。
验证软件可靠性,例如:内存泄漏,性能瓶颈 。
对每一次迭代进行测试。
变更管理
管理那些变更?
控制,追踪和监控项目的所有变更,从而启动没次迭代。
为每个开发者建立安全的工作空间。
对不同工作空间的改动提供隔离机制。
控制所有的软件制品:模型,代码,文档等。
RUP的基本特征
迭代式增量开发
用例(Use case—driven) 驱动
以软件体系结构为中心。
@ 受控的迭代式增量开发:
——将软件开发分为一系列小的迭代过程,没个迭代过程中逐步增加信息,进行细化;
——根据具体情况决定迭代的次数,没次迭代延续的时间以及迭代工作流;
——每次迭代都选择风险影响最大的用例进行,以分解和降低风险。
@ 用例驱动
——采用用例来捕获对目标系统的功能需求;
——采用用例来驱动软件的整个开发过程,保证需求的可跟踪性,确保系统所有功能均被实现;
——将用户关心的软件系统的业务功能模型和开发人员关心的目标软件系统的功能实体模型结合起来,提供一种贯穿整个生存周期的开发方式,使得软件开发的各个阶段的工作自然,一致的协调起来。
@ 以软件体系结构为中心:
——强调在开发过程的早期,识别出软件体系结构紧密相关的用例,并通过对这些用例的分析,设计,实现和测试,形成体系结构框架;
——在后续阶段中对已形成的体系结构框架不断进行细化,最终实现整个系统。
——在开发过程形成的早期形成良好的软件体系结构,有利于对系统的理解,支持重用和有效的软件开发。
RUP的软件开发生命周期
时间(Time)
——周期(Cycles):一个RUP可以分为若干个周期
阶段(Phases):起始,演化,构造,提交
——Inception(起始阶段):为项目建立一个业务案例。
——Elaboration(细化阶段):建立工程计划和合理的体系结构。
——Construction(构件阶段):建造系统。
——Transition (提交阶段):吧系统提供给最终用户。
@ 每一个阶段中都有很多迭代。迭代代表一个完整的开发周期,从在分析中捕获的需求到实现和测试,产生一个可执行的项目发布版本。
@ 每个阶段的迭代都有一些风险缓解焦点,并以一个定义良好的里程碑结束。里程碑复审及时第提供一个评价点。评价关键目标是否得到满足,项目是否需要以任何方式被重新构造。
这点很重要,给用户交付的时候要买钱的呢!
起始阶段:
意图:
1 建立业务模型用例
2 明确项目的范围
结果:
项目的实际需求
——初始用例模型和领域模型(10-20%完成)
初始的业务案例,包括:
成功准则
风险评估
所需资源评估
显示主要的里程碑进度表的阶段计划
在初始阶段的最后,检查项目的在生命周期目标,决定是否继续进行全范围的开发。
细化阶段
迭代(iterations):每个阶段进行若干次。
核心工作流(Core Workflow)
工作流(workflow):对于特定的迭代的连续活动
活动(Activities):需求定义,分析,设计,实现和测试
中间制品(Artifacts):活动的结果
RUP带来的观念变化
更强的观念性:
坦然面对迭代过程中一部分中间制品的推到重来:
把软件放在首位:
进在进行困难的工作:
坦然面对中间制品的“不美观”:
加强开发过程监控与量化管理:
确定迭代的数量,持续时间和内容:
即需要好的项目管理者,也需要好的体系结构设计师: