软件构造复习内容--Process and Tools of Software Construction

Posted guiququ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件构造复习内容--Process and Tools of Software Construction相关的知识,希望对你有一定的参考价值。

一。

传统软件开发模型

  2个基本模型

    线性过程

    迭代过程

  扩展模型

    瀑布模型

    增量模型

    V字模型

    原型过程

    螺旋模型

敏捷开发(Agile Development):通过快速迭代和小规模的持续改进,以快速适应变化

 

二。

Software Configuration Management(SCM)---软件配置管理:追踪和控制软件的变化

  软件配置项(SCI):软件中发生变化的基本单元(e.g 文件)

  基线(baseline):软件持续变化过程中的稳定时刻(e.g 对外发布的版本)

  CMDB(配置管理数据库):存储软件的各配置项随时间发生变化的信息+基线

Versioning :版本控制

  版本:为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”。

  术语介绍:

  Repository:仓库,即SCM中的CMDB

  Working copy:工作拷贝,在开发者本地机器上的一份工作拷贝

  File 文件,一个独立的配置项

  Version or revision 版本,在某个特定时间点的所有文件的共同状态

  Change or diff:变化,即code churn ,两个版本之间的差异

  Head:程序员正在其上工作的版本

VCS(Version Control System)

  Local VCS(本地VCS,仓库存储在开发者本地机器上,无法共享和协作)

  Centralized VCS(集中式VCS,仓库存储于独立的服务器,支持多开发者之间的协作)

  Distrubuted VCS(分布式VCS,仓库存储于独立的服务器+每个开发者的本地机器)

Git介绍(作为版本控制工具)

  具体使用的操作请参看git官网说明(Pro Git)

  https://git-scm.com/book/zh/v2

  git的本地仓库有3个空间,分为是 workspace,staging,Local repository

    工作目录(worksapce):本地文件系统

       暂存区(staging):隔离工作目录和Git仓库

    .git(本地的git仓库):本地的CMDB

  文件有3种状态

    已修改(Modified)

    已暂存(Staged)

    已提交(Commited)

  Git用一个树节点表示一次提交,树内有指向具体文件存储的指针,与之前的commit中未发生变化的文件,无需重复存储

  传统VCS存储版本之间的变化,用行存储

  Git存储发生的变化的文件(不是代码行),不变化的文件不重复存储

  原图解释:

  技术图片

 

 

   当文件没有发生变化时,则后续多个版本始终指向同一个文件

   当文件变化之后,存储2份不同的文件,2个版本指向不同的文件

  分支及其合并

    git checkout -b iss53 新建分支iss53,并切换到iss53分支

    git branch iss53 新建分支iss53

    git checkout iss53 切换到分支iss53

    git merge hotfix 将分支hotfix合并到当前分支

    git brach -d hotfix 删除分支hotfix,合并后可以删除

  如果说一个分支的另一个分支的快进,如:

  技术图片

 

 

 那么可以直接合并,但是如果要合并的2个分支之间不是直接祖先关系

技术图片

 

 

Git 会使用两个分支的末端所指的快照(C4 和 C5)以及这两个分支的工作祖先(C2),做一个简单的三方合并。
如果在合并中入到冲突,即不同的分支对同一个文件做了不同的修改,git会停止合并,向你提醒冲突的文件。

 

  

 

  

以上是关于软件构造复习内容--Process and Tools of Software Construction的主要内容,如果未能解决你的问题,请参考以下文章

软件构造复习内容---并发

软件构造复习内容(10)---并发

软件构造复习内容---面向复用的设计模式

软件构造期末复习考点总结

哈工大软件构造复习——LSP原则,协变和逆变

软件构造复习——关于Git的一点复习