HIT软件构造 软件生命周期 配置管理

传统软件的过程模型

基本的类型

线性过程、迭代过程

现有的模型

瀑布过程、增量过程、V字过程、原型过程、螺旋模型

选择合适的过程模型的依据

用户参与度有多大
开发效率/管理复杂度
开发出的软件的质量

waterfall(sequential,non-iterative)

requirements -> design -> implementation -> verification -> maintenance
线性推进
阶段划分清楚
整体推进
无迭代
管理简单
无法适应需求增加
在这里插入图片描述

incremental(non-iterative)

系统被分成很多小的开发项目
首先处理最高优先级的需求
某一部分一旦被开发出来就被冻结了
线性推进
增量式(多个瀑布模型的串行)
无迭代
比较容易适应需求的增加
在这里插入图片描述

V-Model(for verification and validation)

可以是瀑布模型的一个扩展
测试之后的检查环节结束之后,再回去修改
在这里插入图片描述

prototyping(iterative)

software prototyping是开发出一个软件的原型,但是不是软件的最终版本

过程

确认基本需求
开发原型
评审
增强提升原型
如下图所示,也就是在原型上不断的迭代,发现用户变化的需求
在这里插入图片描述

好处

卡发出来之后由用户试用/评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审
循环往复这个过程,直到用户满意为止,时间代价高,但开发质量也高

spiral(iterative)

多轮迭代几倍遵循瀑布模式
每轮迭代由明确的目标,遵循原型过程,进行严格的风险分析方可进入下一轮迭代
在这里插入图片描述

agile development(敏捷开发)

通过快速迭代和小规模的持续改进,以快速适应变化
agile = 增量+迭代
每次迭代处理一个增量

特点

极限的用户参与
极限的小步骤迭代
极限的确认/验证

extreme programming(XP)

在这里插入图片描述

软件配置管理(SCM)

追踪和控制软件的变化

软件配置项

软件中发生变化的基本单元(例如:文件)

baseline(基线)

软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
在这里插入图片描述

CMDB(配置管理数据库)

存储软件的各项配置项随时间发生变化的信息+ 基线

版本控制(VCS)

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

版本

为软件的任一特定时刻的形态指派一个位移的编号,作为“身份标识”

意义何在

回滚到上一个版本
毕竟哦啊两个版本的差异
备份软件版本历史
获取备份
合并
在多个开发者之家共享和协作
记录每个开发者的动作,便于“审计”

术语

仓库:软件配置管理中的配置管理数据库
工作拷贝:在开发者本地机器上的一份项目拷贝
文件:一个独立的配置项
版本:在某个特定时间点的所有文件的共同状态
变化:即code churn:两个版本之间的差异
HEAD:程序员正在其上工作的版本

本地版本控制系统

仓库存储与开发者本地机器,无法共享和协作

集中式版本控制系统

仓库存储与独立的服务器,支持多开发者之家的协作

分布式版本控制系统

仓库存储于独立的服务器+每个开发者的本地机器

git

git repository

git仓库由三个部分

  1. .git :本地的CMDB
  2. 工作目录:本地文件系统
  3. 暂存区:隔离工作目录和git仓库(staging area)
    每一个文件属于上述三种状态之一

object graph

版本之间的演化关系图,一条边A->B表征了“在版本B的基础上做变化,形成了版本A”

commit

是对象图中的节点
多个commit之间的关系一般来说由三种:

  1. 每个commit指向一个父亲
  2. 多个commit指向同一个父亲:分支
  3. 一个commit指向两个父亲:合并
    一个branch是一个指向一个commit的名字
    head指向当前的commit
和传统的版本控制系统

传统VCS存储版本之间的变化(行)
git存储发生变化的文件(而非代码行),不变化的文件不重复存储

git command

git merge

实际上是将当前分支于master分支合并,也就是两个分支同时指向当前分支

others

在这里插入图片描述
欢迎关注公众号BBIT
让我们共同学习共同进步!

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法回答你的问题,因为提供的引用内容中没有涉及关于软件测试工具调用csf接口的信息。请提供更多相关信息或引用内容,我将尽力为你提供准确的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [快速了解自动化测试工具Parasoft vs Fortify功能对比](https://blog.csdn.net/mnrssj/article/details/117777583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [HIT-CSF2019 大作业](https://blog.csdn.net/YuanZihan704/article/details/90142332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于AT89S52 单片的频率计](https://download.csdn.net/download/raindream1129/1960215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值