总览:
第一部分(讲义1-1)
三个维度八个视图
第二部分(讲义1-2)
外部质量指标:正确性、健壮性、可扩展性、可复用性、兼容性、性能、可移植性、易用性、功能、及时性、其它(可验证性、完整性、可修复性、经济性)。
内部质量指标:Lines of Code(LOC)、耦合度、聚合度、可读性、可理解性、Clearness、Size。
最重要的几个质量因素:正确性和健壮性:reliability;可扩展性和可复用性:modularity。
软件构造的五个关键质量目标:
Easy to understand(understandability)
Cheap for develop(reusability)
Ready for changes(extendibility/maintainability)
Safe from bug(robustness/correctness)
Efficient to run(efficiency/performance)
具体见以下五图:
第三部分(讲义2-1)
软件配置管理(SCM):追踪和控制软件的变化
软件配置项(SCI):软件中发生变化的基本单元(例如:文件)
基线(baseline):软件持续变化过程中的“稳定时刻”(如对外发布的版本)
配置管理数据库(CMDB):仓库,存储软件的各配置项随时间发生变化的信息 + 基线
版本(Versioning):为软件的任一特定时刻的形态指派一个唯一的编号,作为“身份标识”
版本控制系统(VCS):
本地版本控制系统:仓库存储于开发者本地机器,无法共享和协作
集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作
分布式版本控制系统:仓库存储于独立的服务器 + 每个开发者的本地机器
Git(SCM工具的一个例子):
一个Git本地仓库由以下三部分组成:
.git目录:本地的CMDB
工作目录:本地文件系统
暂存区(staging area):隔离工作目录和Git仓库
Object Graph(如上图):版本之间的演化关系图,储存在.git目录中,一条边A->B表征了“在版本B的基础上作出变化,形成了版本A”。
Managing changes in Git:
Push:
分支/合并(Branch/Merge):
Git支持团队协作……
GitHub: