软件构造第二章 第一节 软件生命周期和版本控制

基本内容

Software Development Lifecycle (SDLC)

Traditional software process models (waterfall, incremental, V-

model, prototyping, spiral)

Agile development and eXtreme Programming (XP)

Collaborative software development

Software Configuration Management (SCM)

Git as a SCM tool

1.软件生命周期SDLC:

From 0 to 1 从无到有

From 1 to n 从有到好

2.传统软件过程模型:

线性和迭代(迭代大体上就是线性上增加反馈)

Waterfall (Linear, non-iterative) 瀑布过程

Incremental (non-iterative) 增量过程

  • 运用分治的思想,将需求分段,成为一系列增量产品,每个增量内部仍使用瀑布模型;
  • 增量模型是瀑布模型的变形,拥有后者的全部优点,此外可以很快的迭代出第一版本;

V-Model (for verification and validation) V字模型

  • 强调测试与继承,对代码、分析文档进行质量保证

Prototyping (iterative) 原型过程

Spiral (iterative) 螺旋模型

配置管理和版本控制

Software Configuration Management (SCM) 软件配置管理

Version Control System (VCS)

Software Configuration Item (SCI): the fundamental structural

unit of SCM. 软件配置项:软件中发生变化的基本单元(例如:文件)

基线:软件持续变化过程中的"稳定时刻"(例如:对外发布的版本)

CMDB:配置管理数据库

Local VCS

本地版本控制系统:

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

Centralized VCS

集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作

Distributed VCS

分布式版本控制系统:仓库存储于独立的服务器分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本地机器

以github为例,git仓库包含三部分:

.git directory (a repository storing all version control data) 本地的CMDB

Working directory (local file system) 工作目录:本地文件系统

Staging area (in memory) 暂存区:隔离工作目录和Git仓库

Object Graph :版本之间的演化关系图,一条边A->B 表征了"在版本A的基础上作出变化,形成了版本的基础上作出变化,形成了版本B,如下图

分支代码

-git(创建) branch(切换) -b(branch) iss53

-git merge hitfix(合并)

-是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

-用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

本地库和远程库

-clone:将整个库完整的复制

-fetch:将某一分支复制下来

-push:将分支推送到服务器上

-pull:将某一分支复制下来并合并在当前分支上

转载于:https://www.cnblogs.com/masteryellow/p/9214192.html

软件构造 第二章 第一节 软件生命周期和版本控制相关推荐

  1. 思维导图下载 注册安全_2019安全工程师《建筑实务》第二章第一节考点:物料提升机思维导图...

    2019安全工程师<安全生产专业实务-建筑施工安全>第二章第一节考点:物料提升机思维导图,本节的大部分知识点前两节塔式起重机和施工升降机相似,大家可以对比之前考点的思维导图来理解记忆,本知 ...

  2. 《啊哈!算法》第二章 - 第一节 - 解密QQ号(Java实现)

    <啊哈!算法>第二章 - 第一节- 解密QQ号(Java实现) 解密QQ号--队列 解密QQ号--队列 新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ号, 小 ...

  3. linux 下  qserialport waitforreadyread_北师大版初中数学八年级(下)第二章第一节不等关系(精品)...

    第二章 一元一次不等式与 一元一次不等式组 2.1不等关系 一.知识点梳理 不等式:一般地,用"<"(或"≤"),">"(或&q ...

  4. 第二章第一节 能把梳子卖给和尚吗

    第二章 能把梳子卖给和尚吗 1.求职遭遇奇妙陷阱 话说刘备大四毕业那年春天,卢植因为得罪了校办公室主任左丰,被指控犯罪批捕入狱,案由涉及男女情色和贪污受贿.直到刘备毕业离校,才因为查无实据而无罪获释. ...

  5. 带你玩转区块链--以太坊基础、发币、基于智能合约实现彩票项目-第二章-第一节【以太坊篇】

    意义: 在上一节知识学习中,我们已经了解如何实现一个基础区块链,并重构了BTC关键代码.对比传统的中心化项目,区块链项目拥有很多优势,如:追溯性.不可传篡改性.在中心化项目中的网络协议是:[数据层-- ...

  6. 第二章第一节:商品数字化CPV方法

    上一章:电商及商品体系概述,我们介绍了电商业务架构和与之匹配的B端及C端产品架构,同时阐述了电商的业价值和商品部分的生态建设机制.这一章开始,我们介绍在业务开展之前,如何将交易对象数字化,如何高效组织 ...

  7. Programming MS Office 2000 Web Components第二章第一节(第二部分)

    排序和过滤 阅读本节时,如果您打开随书光盘Samples\Chap02目录下的SortFilterExample.htm文件.您会发现这个例子很有用.本节展示的代码和描述的特定环境来自这个文件. 电子 ...

  8. 【Dive into Deep Learning / 动手学深度学习】第二章 - 第一节:数据操作

    目录 前言 2.1 数据操作 2.1.1. 入门 torch.arange() shape numel() reshape() ones() randn() 2.1.2. 运算符 +.-.*./.** ...

  9. 软件构造 第五章第一节 可复用性的度量、形态和外部观察

    第五章第一节  可复用性的度量.形态和外部观察 面向复用编程(programming for reuse):开发出可复用的软件 基于复用编程(programming with reuse):利用已有的 ...

最新文章

  1. 【opencv】(8) 傅里叶变换,高通低通滤波器
  2. Android: 启动另外的APP及传递参数(转)
  3. boost::multiprecision模块tommath相关的测试程序
  4. 计算机网络管理员五级试题,计算机网络管理员考试试题库和答案.doc
  5. Hazelcast入门指南第6部分
  6. 红橙Darren视频笔记 IOC注解框架 自己写个注解框架
  7. 可靠信道传输2.0 2.1 3.0
  8. 安装.net Framework 3.5 SP1非常慢的解决方案
  9. mysql innodb备份恢复和主从复制 xtrabackup工具的使用
  10. pandas loc, iloc, ix, at, iat用法
  11. Mysql 按 create_time 排序导致的问题
  12. 2021-11-25 使用kali自带的SET工具制作钓鱼网站
  13. 远程桌面连接 提示用户名密码错误的解决办法
  14. 国内有哪些顶级技术团队的博客值得推荐?
  15. C语言 | 【耗费一夜总结三本C语言系列】之 结构体、联合、枚举
  16. TortoiseSVN 设置中文语言包
  17. 计算机专业发展历程作文,计算机发展史
  18. 用js写一个身份证号码籍贯
  19. Jmeter并发测试 - 设置集合点
  20. 基于Spring Boot+vue在线音乐平台

热门文章

  1. 如何有效编写软件的75条建议
  2. 跟踪workflow instance 状态
  3. java加载驱动没有异常显示_java – Tomcat没有加载MSSQL驱动程序
  4. linux install goolepinyin_Linux截图工具推荐(Ubuntu 18.04亲测)
  5. html5手机端设置date,如何在移动端更好地使用HTML5 date input
  6. php ajax 概率 转盘,php+jquery实现转盘抽奖 概率可任意调
  7. props写法_简单理解vue中Props属性
  8. cryptojs php 互通_关于PHP7和CryptoJS的AES加密方式互通
  9. 用计算机计算教学反思,《用计算器计算》教学反思
  10. C:模块化程序设计 以及数组