主题
软件开发基本过程
传统软件开发
敏捷开发
软件配置工具
git
软件生命周期
软件从0到1
软件的改进从1到好
例子:Windows的改进历程
上图是软件生命力和时间的关系
传统的软件开发过程
线性过程、迭代过程
瀑布过程、增量过程 、V字模型、原型模型、螺旋模型
依据:用户参与程度、开发效率管理效率、开发出软件的质量(比如说航天)
瀑布模型:线性推进、阶段划分清楚、整体推进、无迭代、管理简单、无法适应需求、增加变化(航空航天项目的需求比较稳定)
增量过程: 线性、增量(多个瀑布的串行、无迭代、比较容易适合需求增加)
V字模型:瀑布的改进:增加测试和验证
迭代模型原型法:设计原型后评审反馈,然后修改,反复这个过程
敏捷开发
快速迭代和持续改进以快速适应变化
用户参与、小步骤迭代、极限的确认和验证
XP:极限编程
Scrum
SCM VCS软件配置
软件配置管理
追踪和控制软件变化
核心:版本控制和基线的确立
软件配置项:变化的单元
基线:软件持续变化过程中的稳定时刻(例如对外发布版本)
CMBD:配饰管理数据库
版本控制
最原始的方法:复制文件并且修改文件名字
为什么需要:可能存在不同版本部分的合并、多人协作、并行开发
仓库:CMDB
工作拷贝
版本
差异
HEAD:正在工作的版本
特点:
可依赖的
过文件
有意义的版本
回退
比较版本
回顾历史
不仅仅管理代码
VCS
local VCS
Centralized VCS集中式独立的服务器
CVS
SVN
存在缺点
Distributed VCS 分布式
安全,点对点的分享、反对云的分享
GIT
git init生成一个库
git add对文件进行跟踪
git clone [url]
git status确定文件处于什么状态
git diff看变化
git commit提交
git rm移除