软件构造第三章总结

第三节 构造过程与配置管理
软件的过程模型

一. 构造过程

两种基本形式:Linear-线性过程 Iterative-迭代过程

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

瀑布模型(Waterfall)(顺序,不可迭代)
描述:按阶段实现软件,基本分为需求-设计-实现-验证-维护。

特点:容易使用,但实现后更改需求代价较大。

增量模型(Incremental)(不可迭代)
描述:软件被逐次一点点地设计、实现和测试,直至完成。相当于瀑布模型的反复增量完成。

特点:系统被分为许多子项目;高优先级的需求被首先完成;当一部分完成后,该部分的需求将被冻结。

V模型(V model)(为了测试)
描述:可看做是瀑布模型的扩展。阶段为:需求分析-概要设计-详细设计-软件编码-单元测试-集成测试-系统测试。

特点:适用于易被模块化的传统软件开发,开发和测试同时进行。

原型模型(Prototyping)(可迭代)
描述:产品原型仅模拟了最终产品的一部分,且可能完全不同。阶段为:确定基本需求-实现原型-复审-改进原型。

特点:软件设计者和开发者可从用户处得到反馈;客户可在软件开发过程中及时评价软件是否满足需求;总工程师可通过原型设计过程摸清软件架构,以及推算deadline可否满足。

螺旋模型(Spiral)(可迭代)
描述:螺旋模型是一个风险驱动模型,通过分析项目当前面临的风险来选择适当的开发模型(如瀑布模型等)。

特点:引入风险分析,使软件开发面临巨大风险时有机会停止;在每个迭代阶段构建原型以减小风险;适合大型昂贵系统开发。
 

敏捷开发(Agile development)

通过快速迭代和小规模的持续改进,快速适应变化。

要求:1. 强调交互 2. 不需要文档 3. 合作 4. 变化

适用于需求不稳定,快速开发(对高质量、高风险不适用)

二.软件配置管理

SCM(软件配置管理)
软件配置管理:追踪和控制软件的变化。 软件配置项:软件中发生变化的基本单元

VCS(版本控制系统) 

本地版本控制系统:仓库存储在开发者本地及其,无法共享和合作。
集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间协作。
分布式版本控制系统:仓库存储于独立的服务器 + 每个开发者的本地机器。(如Git)


Git
工作区,即平时存放代码的地方。
暂存区,虚拟区域,无真实空间,用于临时存放改动。
本地仓库,安全存放数据的位置,这里有提交到所有版本的数据
远程仓库,托管代码的服务器,如Github
需要掌握根据Git文件的状态来判断处于哪一目录/区域中。

Object Graph

边 A -> B表示在版本B的基础上作变化形成了版本A(指向的对象是父对象)

除了最初的commit,每个commit都有一个指向父亲的指针
多个commit指向同一个父亲——分支
一个commit指向两个父亲——合并
Git中一个子对象只能有0,1,2个父对象,而一个父对象可以有多个子对象。

Git和传统版本控制工具的区别:Git存储的是变化后的文件,传统VCS存储版本之间的变化(行),很难创建分支。

Git一个文件可以存在在不同的版本中。

Git命令和版本图

git commit -a :把所有的change先add然后再commit

git fetch :从远程获取最新版本到本地,不会自动merge

git checkout -b:创建并切换分支

git remote add origin … :与远程仓库关联

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值