第一章和第三章
1. 软件构造的多维视图
2. 软件构造的阶段划分
- 编码(Programming)
- 代码评审(Code review /Static code analysis):不需要运行代码的分析
- 性能分析(Profiling /Dynamic code analysis):指需要运行代码的分析
动态分析:例如测试,测试覆盖度分析- 调试(Debugging)
- 测试(Testing)
Profile:用来测量程序的时空复杂度,特定指令或函数的调用频率或持续时间,发现代码中潜在问题- 重构(Refactoring)
在不改变功能的前提下优化代码- 构建(Build)
3. 内部/外部质量指标
外部指标
- 正确性
- 健壮性
- 可扩展性
- 可复用性
- 兼容性
- 高效
- 可移植性
- 易用性
- 功能种类
- 及时性
其他特性如下
可验证性
完整性
可修复性
经济性内部指标
- 可读性
- 可理解性
- 简洁明了
- 大小,代码行数(Line of Code)
4. 软件配置管理SCM与版本控制系统VCS
SCM(Softwave Configuration Management)
SCM是追踪和控制软件的变化的任务
核心是版本控制和“基线”的确立SCI(Softwave Configuration Items)
软件发生变化的基本单元,例如文件
baseline
软件持续变化过程中的“稳定时刻”,例如对外发布的版本
CMDB(Configuration Management Data Base)
配置管理数据库,存储软件的各配置项随时间发生变化的信息和基线两样东西
5. git的结构、原理、指令
git原理:
Git object graph stores each version of an individual file once,
and allows multiple commits to share that one copy.
Git对于变化的文件,存储一份新的变化过的文件,每个commit有一个tree指针指向文件,
不同的Commit可以指向相同的文件git分支指令
git branch (分支名) ==> 无分支名则显示所有分支,有分支名则创建新分支,且不显示信息
git checkout -b/d 分支名 ==> b:创建新分支并切换;d:删除已存在的分支