软件构造过程与配置管理
3-Software Construction Process and Configuration Management
生命周期
从无到有,从有到好,从好到无
计划->分析->设计->是诶吸纳->测试与集成->运维->迭代->消亡
软件开发模型
基本为线性过程/迭代过程
典型模型:瀑布、V、W、增量、原型、螺旋、敏捷开发(XP&SCRUM)
不再展开叙述,都是隔壁项目管理讲的东西
敏捷开发:增量+迭代 每次迭代处理一个小增量 对“小步快跑”与用户参与及确认验证做到极致
软件配置管理
追踪和控制软件的变化
软件中发生变化的基本单元:软件配置项(文件等,不是代码行)
基线:软件持续变化过程中的“稳定时刻”(确定不会再产生相对变动的——如对外发布的版本)
CMDB:配置管理数据库 存储软件配置项的变化信息与基线
版本:软件某一特定时刻形态的“身份证号”
版本管理:回滚、差异比较、备份、获取备份、版本合并、共享协议、项目审计等
对版本控制系统:本地的/集中式的(云端有)/分布式的(云端和本地兼备)
典型软件配置管理方法:Git & Github
对Git概念一些注意的点:
- Git库的三部分:本地CMDB、工作目录与隔离前二者用的暂存区(git add与git commit的区分)
- 每个软件配置项的三个阶段:修改、暂存(add)、提交(commit)
- commit与parent指向关系:通常一指一,合并一指多,分支多指一
- branch是一个commit'指针'的名称,HEAD是当前commit的'指针'
- Git中仅存储发生变化的文件,不同版本间未变化则不重复存储
下面两张图是课内例图,一个对git指令的简单应用,方便理解
软件构造一般流程
编程->构建->代码评审->性能分析->测试->调试->重构->编程(循环)
-
编程:使用建模语言(UML,系统化的建模方法,专门软件)/编程语言(不用举例了,集成开发环境下运作)/配置语言(XML,源码偏描述性,描述各参数的配置情况)/构建语言(XML)等。从形态上可以划分成基于语言学的/数学的形式化/基于图形的可视化
-
静态代码分析与评审:开展会议,使用工具,自动化等
-
动态代码分析:执行程序,观察收集,分析结果
-
测试:发现错误,“有没有”
-
调试:最后手段,定位错误,“在哪里”
-
重构:一系列小的,语义保留的代码转换
狭义上认为软件构造的过程即是项目构建的过程(Build),from build time to run time。可借助工具将软件构造各阶段的活动“自动化”执行,提高构造效率。
标签:Git,配置管理,构造,版本,commit,软件 From: https://www.cnblogs.com/HaoranLuo/p/18218109