第三讲 软件构造过程与配置管理
1.Software Development Life Cycle
(1)软件开发:从无到有(从0到1)
(2)软件多个版本更迭:从1到n
2.Traditional Software Process Models
(1)Waterfall 瀑布过程
(2)Incremental 增量过程
(3)V-Model V字模型
(4)Prototyping 原型过程
(5)Spiral 螺旋模型
3.Agile Development 敏捷开发
4.Software Configuration Management (SCM) and Version Control System (VCS)
(0)软件配置管理:追踪和控制软件的变化
核心:版本控制和基线的确立
SCI(软件配置项):软件中发生变化的基本单元(例如:文件)
基线:软件持续变化过程中的稳定时刻
(1)VCS版本控制系统
(a)本地版本控制系统:仓库存储于开发者本地机器,无法共享和协作
(b)集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作
(c)分布式版本控制系统:仓库存储于独立的服务器和每个开发者的本地机器(Git)
5.An example of SCM tool:Git
对象图:版本之间的演化关系图,一条边A->B表征了:在版本B的基础上作出变化,形成了版本A
Git存储发生变化的文件,不变化的文件不重复存储
分支是在版本控制下对对象的复制,以便可以沿两个分支平行进行修改。
创建分支:git checkout -b iss53 创建并切换
删除分支:git checkout -d iss53 删除
6.General process of software construction
(1)Programming
(2)Review and static code analysis
(3)Dynamic code analysis/profiling
(4)Debugging and Testing
(5)Refactoring