软件构造的过程与配置管理
本节课学习目标:
- 软件开发的基本过程
- 传统的软件开发过程模型
- 敏捷开发
- 软件配置管理
- 使用git作为配置管理工具
软件配置管理(SCM)
Software Configuration Management(SCM)
追踪和控制软件变化
Software Configuration Item (SCI)
软件配置项:软件中发生变化的基本单元(例如:文件)
BaseLine
基线:软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
CMDB
配置管理数据库:存储软件的各配置项随事件发生变化的信息+基线
版本控制系统(VCS)
仓库:即于SCM中的CMDB
工作拷贝:在开发者本地机器上的一份项目拷贝
文件:一个独立的配置项
版本:在某个特定时间点的所有文件的共同状态
变化:即code churn,两个版本之间的差异
HEAD:程序员正在其上工作的版本
分为本地式版本控制系统,集中式版本控制系统(例如SVN),分布式版本控制系统(例如GIT)
Git是一个SCM工具
.git:相当于本地的CMDB
工作目录:本地文件系统
暂存区:隔离工作目录和Git仓库
初步入门Git推荐廖雪峰的Git教程
General process of software construction
软件编程语言可以分为三类:
开发语言:C,C++,Java
建模语言:UML
配置与构建语言:XML,json
代码评审和静态代码分析
代码评审的方法:结对编程,走查,正式评审会议(开会看代码,好尬 😳 )
静态代码分析工具:CheckStyle,SpotBugs,PMD
动态代码分析和profiling
动态分析:要执行程序并观察现象、收集数据、分析不足
profiling:对代码的运行时状态和性能进行度量,发现代码中的潜在问题
重构
重构是在不改变代码的外部行为的同时改进其内部结构的情况下改变软件系统的过程,通常现代IDEA都提供了很方便的自动重构功能。比如在IDEA中选中变量可以右键点击重构重命名更改相应的名字。
- 重新安排代码(比如使用以下设计模式之类的)
- 为了使代码更容易维护和修改(比如使用更好的设计模式)
- 一系列小的、语义保持的转换(修改名字之类的,如果这个名字被使用的很多,手改挺累的)
重构代码后需要注意进行回归测试。
Narrow-sense process of software construction
理解了一下,就是为了能够让自己的代码能够运行在用户的机器上。因此利用类似linux中的make的方法,在java中对应的就是maven,gradle等。写一个脚本来执行编译链接等操作。
浙公网安备 33010602011771号