一、SDLC(软件开发的生命周期)
从无到有,从1到n
二、软件流程模型:
两类基本类型:
线性过程,迭代过程
![](https://img-blog.csdnimg.cn/0e7a5728815f44fbb2c092baac0f081c.png)
V型模型:用于验证,是瀑布式的延伸
原型过程(迭代)
螺旋(迭代)
三、敏捷开发:
通过快速迭代和小规模的持续改进,以快速适应变化
![](https://img-blog.csdnimg.cn/d2c7f24844dd43e18a1706ce6dceeb5e.png)
仓库存储于开发者本地机器,无法共享协作
![](https://img-blog.csdnimg.cn/e0b854fbcf8e4c5f9d6d5885f032c3f6.png)
![](https://img-blog.csdnimg.cn/4e5f31fc0db342dfa60679693cd0485e.png)
五、Git:
git仓库的三个组成部分:
git directory:本地的CMDB
working directory:工作目录:本地文件系统
staging area:暂存区:将工作目录和Git仓库隔离开
文件的三种状态:已修改(但是未交到缓存区),已暂存(交到了暂存区域),已提交(工作目录和Git目录中的文件一样)
一条有向无环图
commit就是object图中的一个节点
一般:一个commit指向一个父亲
两个commit指向一个父亲:分支
一个commit指向多个父亲:合并
HEAD指向当前工作的commit
一个分支只是一个指向一个commit的名称
结点 一个 commit 存储一个树形结点。tree 中包含了数个 blob;每个 blob 是一个压缩了的仓库文件,不保存文件名信息。
对于每个文件的每个版本(或是不同文件名但相同内容的文件),Git 只会存储一个 blob,而允许多个 commit tree 指向同一个 blob。 一个 commit 中与之前相比未发生变化的文件,无需重复存储。文件未发生变化,则后续多个版本始终指向同一个 blob;文件发生变化了,存储两份不同的 blob,两个版本指向不同的 blob。
软件构造的一般过程包括编码、重构、调试、测试、性能分析、代码评审、构建。
编码 从用途上划分:编程语言、建模语言、配置语言、构建语言
从形态上划分:基于语言学的构造语言、基于数学的形式化构造语言、基于图形的可视化构造语言
建模语言:用于可视化、推理、验证和传达系统设计 配置语言:用于配置程序的参数和初始设置
代码评审 结对编程 走查 正式评审会议 自动化评审 性能分析 动态分析:执行程序并观察现象、收集数据、分析不足 Profiling:对代码的运行时状态和性能进行度量,发现代码中的潜在问题