软件开发模型笔记(上篇)—— 经典的几个软件开发模型
# 常见软件开发模型
## 原型模型⭐
### 特点
– 适用于需求不明确的场景,可以帮助用户明确需求
## 瀑布模型⭐
### 特点
– 软件开发阶段划分明确,每个阶段有明显界限,一旦发生错误,需要推倒重来
– 1、需求分析
– 2、总体设计
– 3、详细设计
– 4、编码与调试
– 5、集成测试与系统测试
– 容易理解,管理成本低,每个阶段有对应的成果产物
– 适用于需求明确的项目,一般表述为需求明确、二次开发或者对于数据处理类型的项目
– 瀑布模型会产生一大堆文档,大部分对客户无意义,完成文档需要花费大量人力,是一种重载的过程
## (瀑布)V模型
### 特点
– V模型是瀑布模型的变体,更强调测试
– 更强调测试,测试贯穿项目始终
– 设计阶段
– 1、需求分析
– 2、概要(总体)设计
– 3、详细设计
– 4、编码与调试
– 测试阶段
– 5、单元测试
– 6、集成测试
– 7、系统测试/验收测试
– 保持了瀑布模型阶段式文档驱动的特点
## 演化模型
### 可以看作是若干次瀑布模型的迭代,根据不同的迭代特点,可以演化为螺旋模型、增量模型
## 螺旋模型⭐
### 特点
– 结合瀑布模型和演化模型的优点
– 每个周期都包括四个阶段
– 1、需求定义/制定计划
– 2、风险分析(典型特点)
– 3、工程实现/实施
– 4、评审/客户评估
– 适用于庞大而复杂、具有高风险的系统
– 支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便
– 有助于提高目标软件的适应能力
– 在风险较大的系统中,如果不能及时识别风险,会造成重大损失
– 过多的迭代次数,会增加成本,延迟提交时间
## 增量模型
### 特点
– 融合瀑布模型的基本成分和原型实现的迭代特征
– 可以有多个可用版本的发布,每个版本都是一个完整的系统
– 版本间的增量比较均匀,并且后一版本以前一个版本为基础进行开发,扩充核心功能
– 第一个版本往往是系统的核心功能,可以满足用户基本的需求
– 用户可以短时间内获得系统初始版本的试用,问题可以很快进行反馈到后续开发中
### 增量与迭代(UP模型 / 敏捷开发模型)
– 增量:每次实现一部分局部的功能
– 迭代:先绘制整体轮廓,每次实现轮廓内的一部分
## 喷泉模型
### 特点
– 典型的面向对象模型
– 迭代、无间隙
– 将软件开发划分为多个阶段,每个阶段无明显界限,并且可以交叉迭代
## 快速应用开发(RAD)
### 概念
– 瀑布模型的一个高速变种,适用比传统生命周期快得多的开发方法
– 强调极短的开发周期
– 通常适用于基于构建的开发方法获得快速开发
### 过程
– 业务建模
– 数据建模
– 过程建模
– 应用生成
– 测试与交付
### 适用性
– 对模块化要求比较高
– 如果有高性能指标,且必须通过调整结构使其适应系统构件才能获取该指标的情况,RAP不适用
– 开发者和客户必须在很短时间内完成一系列需求分析,任何一方配合不当都会导致失败
– 只能适用于管理信息系统的开发,不适用于技术风险很高的场景
## 构件组装模型
### 概念
– 利用构件进行搭积木式的开发
– 构件是独立的、自包容的,架构开发也是独立的,构件之间通过接口进行交互协作
### 模型
– 1、需求分析和定义
– 2、软件架构设计/设计构件组装
– 3、建立构件库
– 构件标准
– CORBA
– COM/DCOM
– EJB
– 构件库
– 构件获取
– 构件管理
– 4、构建应用软件
– 5、测试与发布
### 特点
– 构件的自包容性,系统拓展更容易
– 设计良好的构件更容易被重用,降低软件开发成本
– 构件粒度小,安排开发更灵活,可以并行独立开发构件
– 构件设计需要经验丰富,设计不良的构件会降低组装模型的重用度
– 考虑软件重用度,往往需要对其他方面做出让步,例如性能
– 需要程序员熟练掌握构件,增加学习成本
– 第三方构件库的质量会影响软件的质量,第三方的构件库质量难以保证
## 统一过程(UP/RUP)⭐
### 特点
– 用例驱动
– 以架构为中心
– 同需求和项目管理人员密切协作
– 细化软件架构
– 保持整个架构的概念完整性,包括设计系统架构、定义设计方案、设计指南、编码指南、评审设计等
– 迭代和增量
– 但不属于敏捷方法,未经裁剪的UP是一个重载过程
### 四个阶段
– 构思(初始)
– 界定系统范围,确定系统架构,明确系统目的
– 制定工作计划及资源要求
– 业务建模和需求工作是重头戏,强调定义和细化用例
– 细化
– 抽象出软件的逻辑模型
– 设计出软件架构
– 分析和设计模型是最主要的工作,强调类的定义和体系结构的表示
– 构建
– 将设计转化为实现,并进行集成和测试
– 需要基本完成系统的构建,该阶段的重点是实施和测试
– 交付(转移阶段)
– 系统需求已经完全成熟或产品化
– 该阶段会存在对软件系统的重构、修改、测试和部署
### 九个核心工作流
– 1、业务建模
– 2、需求
– 3、分析设计
– 4、实施
– 5、测试
– 6、部署
– 7、配置与变更管理
– 8、项目管理
– 9、环境(管理)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120952.html