软件构造学习笔记(3)
第三讲 软件构造过程与配置管理
软件开发模型
两种基本类型:
线性过程(瀑布过程、增量过程);
迭代过程(原型过程、螺旋模型)。
敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化。
需要极限的用户参与,极限的小步骤迭代,极限的确认/验证。


SCM与VCS(版本控制系统)
SCM:追踪和控制软件的变换,核心是版本控制和基线的确立。
SCI:软件中发生变化的基本单元(如文件)。
CMDB:配置管理数据库,存储软件的各配置项随时间发生变化的信息和基线。
VCS的种类:本地、集中式、分布式
Git作为SCM工具
– 本地的 CMDB
– 工作目录:本地文件系统
– 暂存区:隔离工作目录和 Git 仓库
– 已修改
– 已暂存
– 已提交
– 每个 commit 指向一个父亲
– 多个commit指向同一个父亲:分支
– 指向两个父亲:合并
▪ 每个分支仅仅是一个指针
▪ HEAD 指向当前commit.
– git每次只会存储发生变化的文件,未变化的无需重复存储

Git的所有操作都是在一个图数据结构(对象图)上进行的。该对象图存储于.git中。
对象图是版本之间演化关系的图。 A->B表示在verB基础上变化形成verA.
commit会构成对象图中的结点,HEAD指向现在的工作点。

传统的VCS记录变化的基本单位是行,而Git是文件,Git中不变化的文件不重复存储。
Git的指令是一个重点。主要的git的操作有:
git add
git status
git diff
git diff --cached
git commit
git commit -a (跳过暂存区,Git自动把所有已经跟踪过了的问价暂存起来一并提交,跳过了git add的步骤)
git rm
git remote
git remote add URL
git fetch
git pull
git push origin master
git remote show origin
git remote rm
git checkout -b dev <=> git branch dev
git checkout dev
git merge dev
git branch -d dev(删除分支)
软件开发的总体过程
浙公网安备 33010602011771号