软件构造基础
一、软件构造的多维度试图+阶段划分和各阶段的构造活动
- 程序+文档+数据
- 三个维度+8个视图
SCM——软件配置管理
VCS——版本控制系统
二、内部外部的质量指标
1、内外部质量指标的关系
外部质量指标影响用户;
内部质量指标影响软件本身和它的开发者;
外部质量指标取决于内部质量
2、外部质量指标External quality factors
- 正确性correctness:按照预先定义的spec执行
- 健壮性robustness:针对异常情况的处理(spec未定义)
- 可扩展性
- 可复用性:一次开发多次使用
- 兼容性compatibility:不同软件系统之间相互可容易的集成
- 性能:不要过度优化、过早优化
- 可移植性portability:软件可方便的在不同的技术环境(硬件、操作系统)之间移植
- easy of use
- 功能过多会导致程序极为复杂、不灵活、占用过多的磁盘空间
- 及时性
(注:下划线部分为重点关注的质量指标)
3、内部质量指标Internal quality factors
比如代码的行数,代码复杂程度等
4、优化质量指标的目的
软件构造过程
一、软件配置管理SCM
制系统VCS
1、SCI
- 目的是追踪和控制软件的变化
- 软件配置项:软件中发生变化的基本单元(例如;文件)
baseline基线:软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
CMDB配置管理数据库:存储软件的各配置项随时间发生变化的信息+基线
2、VCS
- 版本:为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”
- 版本控制的意义
- 个人: 回滚到上一个版本 、比较两个版本的差异、 备份软件版本历史、获取备份、 合并
- 团队: 在多个开发者之间共享和协作、记录每个开发者的动作,便于“审计”
3.版本控制的优点
4.VCS分类
(注意:仓库是指位于SCM中的CMDB head是指程序员正在其上工作的版本)
- 本地版本控制系统:仓库存储于开发者本地机器无法共享和协作
- 集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作
- 分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本地机器
二、Git的结构、工作原理、基本指令