HIT软件构造笔记 3软件构造过程与配置管理

3 Software Construction Process and Configuration Management

目录

3 Software Construction Process and Configuration Management

1 Software Development Lifecycle (SDLC)

2 Traditional Software Process Models

3 Agile Development

4 Software Configuration Management (SCM) and Version Control System (VCS)

5 Git as an example of SCM tool

6 General process of software construction


1 Software Development Lifecycle (SDLC)

本课程主要涉及第4部分

 

2 Traditional Software Process Models

考试要求根据需求区分出软件开发过程(软件过程模型)

在实际场景中能选择合适的过程模型(根据需求选择合适的模型)

要知道每个过程模型的优缺点

 

线性过程:当用户的需求非常明确时选择

迭代过程:开发的每一步都和用户确认,然后修改

 

传统的过程模型:

 

瀑布模型(是线性过程)

用户只有在开发的最后一个阶段才能看到程序,这使调整非常困难

 

增量模型:将系统分为很多小模块,每个模块都是可运行的

后一个增量的开发不能影响前一个增量

局限性:接口需要非常简单成熟的,需求也需要是比较稳定的

 

V模型:验证

每个阶段都测试,现实中用不到

 

原型模型(是迭代模型):先提供一个可供评价的原型

搞清用户的需求再开发(若用户觉得原型可以了,之后不能反悔)

先做界面(甚至是画一张图)

可能会忽略对整体系统的设计,故系统的结构可能不太好

 

螺旋模型(是迭代模型)

比别的过程多一个风险分析阶段(对于长周期的大工程来说,可以避免风险;小程序不需要)

四个象限

 

传统过程模型的每个阶段都会输出详细的文档(传统过程中产生的大量文档能保证程序的质量)

开发周期可能是几个月

 

3 Agile Development

敏捷模型

短周期(1-10周),快速,比如手机app

  1. 开发者之间每天都做交互
  2. 几乎不需要文档(要求开发人员有丰富经验)
  3. 客户需要参与到开发过程中(传统过程:写个合同,软件开发完成后若客户觉得不行,则开始打官司)
  4. 快速适应变化(可以适应不稳定需求,比原型模型更适应)

 

极限编程

强调短周期迭代,采用测试优先(开发与测试过程绑定在一起)

(传统过程是先编码再测试)

 

4 Software Configuration Management (SCM) and Version Control System (VCS)

版本控制相关术语

SCM,Software Configuration Management

 

VCS(Version Control System)有3种

缺点:难以同步,浪费空间

 

5 Git as an example of SCM tool

Git是分布式的

考试时通常会给一条git命令,要求说明版本的变化

remote repository:远程仓库

staging:暂存区(是虚拟的,没有实际空间),存打上修改标签的文件,commit会将所有带修改标签的文件提交到本地仓库

 

git通过文件的状态确定文件处于那个目录(区域)中

考试时会这样问:文件已暂存,位于那个目录? 答:位于staging

 

节点结构

BLOB,Binary Large OBject 二进制大对象

 

commit对象形成的图是DAG(Direct Acyclic Graph有向无环图)(注意!没有环,新版本不能指向老版本)

将分支merge时,一个子对象就有两个父对象(最多有两个)

 

传统VCS与Git的区别:

传统 在某个版本下很难创建的分支

git 理论上可以创建任意多个分支

 

考试时可能:给出图要求写出命令,或给出命令要求画图

 

关于远程仓库有4个命令:clone、push、pull、fetch

 

多人协作(远程操作)

需要将远程端的版本与本地版本合并后再push(git会检测是否合并了最新的版本)

 

GitHub比git多了fork,pull-stream(考试不涉及GitHub)

 

6 General process of software construction

(本节不考)

代码评审(Code review)主要用于大型项目,本课不做

静态代码分析(Static code analysis)推荐使用以下自动化工具(不过本课程不做要求,因为课时不够)

动态代码分析(Dynamic code analysis)主要是测性能(用工具分析时、空性能)

代码重构:不改变程序的功能,优化代码,将类的结构变得清晰

eclipse也有重构工具(能把类中相同的部分抽取,生成一个新的类)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值