软件过程模型
瀑布模型(需求明确)
线性顺序,以文档为驱动,项目的阶段评审和文档控制为手段对开发过程作为指导。适用于软件需求明确,客户必须能够完整、正确、清晰的表达需求
V模型
瀑布模型的变体,描述了质量保证活动和沟通、建模相关活动及早期构建相关的活动之间的关系
增量模型(快速构建)
增量模型可以快速构造可运行的产品,融合了瀑布模型的基本成分和原型实现的迭代特征,将需求分为一系列增量产品,每一个增量可以分别开发。使用增量模型时,第一个增量往往是核心产品
第一个可交付版本所需的时间和成本较少,开发由增量表示的小系统承担的风险不大,而且减少了客户需求的变更
演化模型(迭代)
演化模型是迭代的过程模型,开发人员逐步开发出更完整的软件版本。演化模型适用于软件需求缺乏准确认识的情况,典型的演化模型有原型模型和螺旋模型
原型模型(需求模糊、规模小)
适用于用户需求不清、需求经常变化的情况。开发原型系统首先确定用户需求,开发初始原型,然后征求用户对初始原型的改进意见,并根据意见修改原型。
螺旋模型(风险分析 规模大)
螺旋模型的特点是加入了风险分析,适合大规模高风险的、需求变化的系统。将每个螺旋周期分为了四个工作步骤
- 制定计划
- 风险分析
- 实施工程
- 用户评估
喷泉模型(面向对象)
喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。各个阶段没有明显的边界,可以同步进行,可以提升软件的开发效率。
各个开发阶段是重叠的,开发人员同步进行,需要大量的开发人员,不利于项目的管理,要求严格管理文档
统一过程模型(UP模型)
统一过程模型是一种 用例和风险驱动,以架构为中心,迭代并且增量 的开发过程。分为四个阶段
- 初始阶段 生命周期目标
- 精化阶段 生命周期架构
- 构建阶段 初始运作功能
- 移交阶段 产品发布
敏捷开发
敏捷开发的总体目标是通过尽可能早地、持续地对价值的软件的交付,是客户满意。有很多具体的实现方式
极限编程(XP)
XP是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方式。
- 四大价值观:沟通、简单性、反馈、勇气
- 五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作
水晶法(Crystal)
水晶法认为每个不同的项目都需要一套不同的策略、约定和方法论
并列争求法(Scrum)
使用迭代的方法,每30天一次的迭代成为一个冲刺,并按需求的优先级来实现产品,多个自组织和自治的小组并行地递增实现产品