软件构造过程与配置管理
Software Development Lifecycle
- 从 0 到 1 从无到有
Traditional Software Process Models
瀑布过程
- 线性推进
- 阶段划分清楚
- 整体推进
- 无迭代
- 管理简单
- 无法适应需求增加/变化
需求一定要明确
增量过程
- 线性推进
- 增量式(多个瀑布的串行)
- 无迭代
- 比较容易适应需求的增加
V字模型
- 每个阶段都进行测试
原型模型
- 在原型上持续不断的迭代发现用户变化的需求
- 迭代:开发出来之后由用户试用/评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审
- 循环往复这个过程,直到用户满意为止。时间代价高,但开发质量也高
螺旋模型
非常复杂的过程:
- 多轮迭代基本遵循瀑布模式
- 每轮迭代有明确的目标,遵循“原型”过程,进行严格的风险分析,方可进入下一轮迭代
敏捷开发
- 敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化。
- 每次迭代处理一个小规模增量
SCM(软件配置管理)&VCS(版本控制系统)
- 软件配置管理(SCM):追踪和控制软件的变化
- 软件配置项(SCI):软件中发生变化的基本单元(例如:文件)
- 基线(baseline):软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
- 配置管理数据库( CMDB):存储软件的各配置项随时间发生变化的信息+基线
- 版本控制中的一些术语
- 版本控制系统(VCS)
– 本地版本控制系统:仓库存储于开发者本地机器无法共享和协作
– 集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作
– 分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本地机器
Git as an example of SCM tool
git的相关介绍推荐可以看这个
Git教程- 廖雪峰的官方网站