软件构造学习笔记(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(删除分支)
软件开发的总体过程

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理