面向对象分析和设计(续一)

第二部分 迭代、敏捷与进化简介

 

一、              什么是迭代开发:

1.  UP和大多数其他现代方法中的关键实践。

2.  在这种生命周期方法中,开发被组织成一系列固定的短期(如三星期)小项目,称为迭代。每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试活动。

3.  迭代的输出不是实验性的或将丢弃的原型,迭代开发也不是构造原型。与之相反,其输出是最终系统的产品子集。

4.  迭代开发的策略:第一次迭代用于一些核心功能,后续迭代扩展这些功能。

二、              迭代过程与项目开发过程中的变更

1.  在应付项目开发过程中的变更,迭代开发与传统式的瀑布方式有根本的区别。瀑布式过程是在实现之前,企图全面和正确的规格化、冻结,以及“签署”需求集和设计,以此与软件开发中不可避免的变更进行抗争。与其相反,迭代和进化式开发抱以接受变更和改写的态度,并以此为真正本质的驱动力。

2.  提倡瀑布方式一般源于推测和风闻,而非实践证实。与之相反,迭代和进化式开发为实际证据所支持,研究表明其失败的几率更小,与更理想的生产率和缺陷率相关。

3.  整个迭代进化式开发是一个震荡收敛的过程。早期迭代远离系统的“真实路径”。通过反馈和调整,系统向最适宜的需求和设计收敛。在后期的迭代中,很少会在需求上产生显著变化,但是存在这种可能性。这种后期的变化可能会给组织带来业务竞争优势。

三、              什么是敏捷方法及建模?

1.  敏捷开发方法通常应用时间定量的迭代和进化式开发、使用自适应计划、提倡增量交付并包含其他提倡敏捷性的价值和实践。

2.  敏捷建模的关键:建模(画UML……)的目的是为了理解,而非文档化。

3.  多使用UML草图的快照。

 

 

第三部分 项目的初始阶段

初始阶段是建立项目共同设想和基本范围的比较简短的起始步骤。

 

一、什么是初始阶段

1.  初始阶段的目标并不是完成所有需求或产生可信的预算或项目计划。

2.  初始阶段是预见项目的范围、设想和业务案例。解决涉众是否就项目设想基本达成一致,项目是否值得继续进行认真研究。

二、初始阶段的持续时间

1.  一般不超过一周。如果预先就决定项目必须进行,那么时间会更短暂。这时候,初始阶段可能只包含第一次需求研讨会,并为第一次迭代制定计划,然后快速进入细化阶段。

2.  初始阶段更关注对基本范围的理解以及10%的需求,这主要是以文字表达。

 

 

第四部分 项目的需求部分---进化式需求

一、什么是需求

1.  需求就是项目必须提供的能力和必须遵从的条件。

2.  需求分析的最大挑战就是寻找、沟通和记录什么是真正的需要的,并能够清楚地讲解给客户和开发团体的成员。

二、进化式需求与瀑布式需求的区别

1.  瀑布式需求

l         信任全面的,早期的需求对项目的功效。

l         实际上,单一的瀑布式实践是导致项目失败的最大因素

l         实际上,65%的瀑布式定义的特性的作用是很小或无用的。

2.  进化式需求

l         统计表明,在整个项目过程中,平均有25%的需求是变化的。

l         欢迎需求的变更,作为项目的基本驱动力。

l         在大部分的需求被分析和定义前就开始进行编程和测试。

三、需求的类型: FURPS+ (此处的+是指一些辅助性的和次要的因素).

1.  功能性(Functional):特性、功能、安全性。

2.  可用性(Usability):人性化因素、帮助、文档。

3.  可靠性(Reliability):故障频率、可恢复性、可预测性。

4.  性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率。

5.  可支持性(Supportability):适应性、可维护性、国际化、可配置性。

四、需求的组织方式

1.  用例模型:一组使用项目的典型场景。主要用于功能(行为的)需求。(重点)

2.  补充性规格说明

3.  词汇表

4.  设想

5.  业务规则

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值