【备战软考架构师系列笔记 · 002】软件工程篇 —— 软件开发模型(上篇:经典开发模型) ⭐⭐⭐⭐⭐...

软件开发模型笔记(上篇)—— 经典的几个软件开发模型

# 常见软件开发模型
## 原型模型⭐
### 特点
- 适用于需求不明确的场景,可以帮助用户明确需求
## 瀑布模型
### 特点
- 软件开发阶段划分明确,每个阶段有明显界限,一旦发生错误,需要推倒重来
    - 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、环境(管理)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值