哈工大2022软件构造课程总结3

这篇文章是对哈工大2022软件构造第三讲“软件构造过程与配置管理”的一些总结和思考。

目录

前言

一、软件开发生命周期

二、传统的软件过程模型

2.1瀑布过程

 2.2增量过程

2.3迭代过程

 三、敏捷开发

四、软件配置管理(SCM)和版本控制系统(VCS)

五、Git 作为 SCM 工具的一个例子

六、软件构建的一般流程

 七、软件构建的窄义过程

总结


前言

这一讲中我们将会了解软件开发的基本过程、传统的软件开发过程模型、敏捷开发模式、SCM软件配置管理、Git作为软件配置管理的使用这些方面。这一讲主要关心的是软件开发从0到1的具体过程,从1到好的过程,以及每个阶段中的子过程。

一、软件开发生命周期

 

上图介绍了软件从0到1逐渐出现所需要的过程,主要包括计划(planning)、分析(analysis)、设计(design)、执行(implementation)、测试(testing&integration)、维护(maintenance)这六个部分。

 上图介绍了软件从1到好需要走过的一些步骤,是需要不断修改,版本不断迭代的。

二、传统的软件过程模型

传统的软件过程模型有两种基本类型:线性过程和迭代过程。现在存在的模型类型有:瀑布过程、增量过程、V字模型、原型过程、螺旋模型等等。

2.1瀑布过程

以下位瀑布过程的具体特点:

线性推进
阶段划分清楚
整体推进
无迭代
管理简单
无法适应需求 增加 / 变化

 2.2增量过程

以下为增量过程的具体特点:

线性推进
增量式(多个瀑布的串行)
无迭代
比较容易适应需求的增加

2.3迭代过程

迭代即是开发出来之后由用户试用/评审,发现问题反馈给 开发者,开发者修改原有的实现,继续交给用户评审。循环往复这个过程,直到用户满意为止。 时间代价高,但开发质量也高。具体的实现流程如下图所示:

 三、敏捷开发

敏捷开发:通过快速迭代和小规模 的持续改进,以快速适应变化。下图为敏捷宣言:

 敏捷编程可以通过任务板、双人编程、每日汇报工作具体进行。

四、软件配置管理(SCM)和版本控制系统(VCS)

 软件配置管理:追踪和控制软件的变化。核心:版本控制和基线的确立。

 古老的版本控制方法:通过复制文件并修改文件名

现在的版本控制方法可以进行团队协作,显示每个人修改了什么,不仅在本地有仓库进行管理,在远程服务器上也有远程仓库,可以供人们上传或是下载文件。

五、Git 作为 SCM 工具的一个例子

下图为Git中的各个状态和使用的Git指令,Git指令可以将文件在这些状态中进行转换。

在Git中每个文件有三个状态:已修改、已暂存、已提交。

传统的软件配置管理是保存各个版本之间发生变化的行,在Git中是存储发生变化的文件,只要文件内容发生了变化就会存入,如果文件没发生变化,仓库中还会仍然存储原来的文件,没有变化的文件只会存储一次。

分支是在版本控制下对对象的复制,以便可 以沿两个分支平行进行修改。分支控制使用的指令主要有:git merge、git checkout、git branch等。

六、软件构建的一般流程

 七、软件构建的窄义过程

粗略理解build:build-time → run-time,借助于工具,将软件构造各阶段的活动“自动化”(编译、打包、静态分析、测试、生成文档、部署、…)尽可能脱离“手工作业”,提高构造效率。

总结

这一讲主要介绍了软件在构造时的一些流程,如瀑布过程、敏捷编程、线性过程、迭代过程等等。还介绍了SCM和VCS(软件配置管理和版本控制系统),重点介绍了Git这个版本控制系统的例子,介绍了Git中文件的各种状态:已修改、已暂存、已提交,还介绍了Git中的各种指令,可以控制文件在各种状态间转换。Git与传统的版本控制系统不同的点在于,Git在版本控制时是通过保存修改后的文件,没有修改的文件只储存一次即可,而传统的版本控制系统是通过存储发生变化的行进行版本控制的。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值