软件过程模型
软件过程模型也称为软件开发模型或软件生命周期模型,它是为了使软件生命周期中的各项任务能够有序地按照规程进行,用一定的工作模型对各项任务给以规程约束。
软件生命周期
软件生命周期包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。
软件定义期
- 软件任务立项(项目立项报告)
- 项目可行性分析 (可行性分析报告)
- 制定项目计划 (软件项目开发计划)
- 软件需求分析(软件需求规格说明书)
软件开发期
- 软件概要设计 (概要设计说明书)
- 软件系统集成测试(测试报告)
- 软件系统确认验证(项目开发总结)
软件运行与维护期
- 软件不断进化升级的过程,以使软件系统更加持久地满足用户的需要
- 改正性维护
- 适应性维护
- 完善性维护
一.建造-修补模型
二.瀑布模型
其他开发模型的源头,将软件生命周期划分为需求分析、规格说明、软件设计、程序实现、软件集成和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落

优点:
- 易于理解,管理成本底。
- 强化开发的阶段早期计划及需求调查和产品测试。
缺点
- 客户必需完整的表达出他们的需求。
- 项目结束时,出现大量的集成和测试任务。
- 需求和设计中的错误一般只能在集成看到,使风险控制能力弱。
三.快速开发模型
- 产品的开发基本上是线性的,最大程度避免回溯
- 开发进度快:正式设计和编程前做了大量的沟通和准备工作,在开发过程回溯较少,因此整体上提高了开发的速度
缺点.
- 需求人员和客户确定的展示性原型可能不利于设计人员的创新
四.增量模型
产品以一系列增量构件的形式设计、实现、集成和测试,每个构件(Builds)由一些代码块组成,这些代码块来自多个相互作用的模块,完成特定的功能
在增量模型的每一个阶段,编写出一个新构件的代码后,集成到已完成的软件中,作为一个整体进行测试,当产品达到功能目标时,即满足了规格说明后,这个进程停止。

典例.文字处理系统
优点.
- 增量模型在每个阶段交付一个可用的产品
- 分阶段交付产品对客户的资金压力较小
缺点.
- 每个构件要求具有可扩展性
五.极限编程
增量模型的一种扩展 。
- 极限编程小组的计算机设置在一个大房间中,大房间中有许多彼此相连的小隔间,保证程序员之间能有顺畅的交流
- 一个客户代表始终和极限编程小组一起工作 ,为整个开发小组提供业务咨询和指导
- 不允许连续两周超时工作
- 没有规格说明,编程小组的所有成员一起完成规格说明、设计、代码和测试过程
- 建造出各种构件之前没有概要设计阶段
优点.
- 当客户的需要模糊或经常改动时,使用极限编程可以通过不断地调整而逐渐澄清需求,从而避免到开发的最后阶段才发现需求理解错误 。
缺点.
- 仅适用于中小型项目
六.同步-稳定模型
- 同步步骤保证各个组件总能一起工作
缺点.
- 对开发人员要求很高
七,螺旋模型
- 人员风险
- 硬件风险
- 测试投入
- 技术风险

优点.
- 适合动态的需求。
- 提高了软件的适应能力,
缺点.
- 专门用于内部开发
- 只适用于大型软件的开发
- 迭代时间长,容易延迟时间。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217620.html原文链接:https://javaforall.net
