瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
瀑布模型
(1) 优点
a) 瀑布模型的流程符合客观的开发方式
b) 有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
c) 理论上当前一阶段的工作完成,人们只需要关注后续的部分
(2) 缺点
a)瀑布模型的各个环节前后相连, 开发过程不能逆转,出现调整时代价过大
b)模型要求需求明确,但是往往客户无法给出精确的需求,真正的开发过程也很难完全按照流程进行
c) 软件成品要开发结束才可以拿到,期间很难做出即时的反馈,比较考验客户的耐心,难以及时沟通解决问题
d)开发的不同阶段里,知识技能的需求不同,人员数量要求不同
增量模型
(1) 优点
a)将很大的工作量划分为小的增量,减小了开发者压力
b)每次增量发布都有可操作的产品产出,前一个产出的市场反应可以对后续的产品发展方向提出建议
c) 人员分配灵活,可以依据增量难度进行合理的调配
d)有利于开发进度的控制
e)降低了失败和更改需求的风险
f)降低了有预算超出的风险
(2)缺点
a)增量模型需要在开发的阶段同时进行修改,软件的整体性容易被破坏
b)当增量之间出现关联,要求前一个版本要为后方定制合适的接口
螺旋模型
(1)优点
a)每次交付都能得到用户的反馈,不需十分明确的需求
b)项目灵活,便于应对不断变更的需求
c)客户始终具有一定的项目参与度,便于开发组与客户之间的沟通
d)用小的分段构造大型系统,成本计算相对容易
(2)缺点
a)迭代次数难以控制,存在预算超出的风险
b)不适合大团队
c)难以确定发布的日期
统一过程三大特点,及与面向对象的方法的关系
三大特点:
- 统一过程是用例驱动的:用例图要求我们站在用户的角度出发,从用户的价值层面考虑问题。同时还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。
- 统一过程是以架构为中心的:软件系统的构架是从不同的角度描述即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性。明确和可以进化的架构是用例实现的基础,所以架构必须是实现统一过程的中心。
- 统一过程是迭代和增量的过程:软件开发是一个复杂的过程,受控的迭代可以用来处理用例,是提高软件开发效率的关键,迭代和增量使软件开发阶段性展开,对于用例的实现做出了控制和协调。
与面向对象方法的关系
统一过程本身已经成为一种流行的构造面向对象系统的迭代软件开发过程。可以说,统一过程就是一个将面向对象方法实际应用于软件开发流程的一个过程准则。在开发过程中强调对对象的描述和用例的实现,从而完成对于软件对象的定义和他们的协作模式。
统一过程四个阶段的划分,以及每个阶段的里程碑
UP项目将其工作和迭代组织为四个主要阶段:
- 初始:大体上的构想、业务案例、范围和模糊评估
- 细化:已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估
- 构造:对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署
- 移交:进行beta测试和部署
这四个阶段的里程碑如下:
- 目标(生命周期目标)里程碑:目标里程碑对应初始阶段的结束,初始阶段的重点在于业务建模和需求工作,此时,开发者应该可以明确软件系统的目标和范围
- 架构(生命周期体系结构)里程碑:架构里程碑对应细化阶段的结束,细化阶段的重点在于设计工作,此时,开发者需要已经确定稳定的系统架构
- 能力(初始运行能力)里程碑:能力里程碑对应构造阶段的技术,构造阶段的重点在于实施和测试方面,此时,系统应该达到足够的稳定性和成熟性
- 发布(产品发布)里程碑:发布里程碑对应移交阶段的结束,移交阶段主要进行重构、修改、测试以及部署等工作,此时,需要完成系统发布和用户培训等工作
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处
统一过程模型中,各个阶段的生命周期是有固定长度的,在固定的周期内,所要完成的科目也是有明确的规范的, 因此在产品的的迭代开发过程有较为明确的时间限制的,企业能够按照统一过程的标准,按固定周期完成产品的生产和发布。
此时,根据固定周期的开发任务以及阶段,企业可以更加便利地掌控开发进度以及控制预算, 对产品的质量和生产开发过程都能进行较为精准的把控,方便企业根据实际情况做出调整,规范管理,从而尽可能达到最大的收益。