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

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

基本内容

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

时间: 2024-10-13 22:18:38

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

第二章 第一节 语言基础

1.注释 注释指的是一些描述代码的文字. 我们可以把对代码的各方面描述,都写成代码的注释.注释中经典的内容包括:这段代码是如何工作的.这段代码使用了什么算法.这段代码的执行流程如何,等等.注释不是Java代码的一部分,编译时,编译器会把Java代码翻译成字节码,而注释则会被编译器自动忽略.因此,代码中有没有注释,都不会影响到代码的运行效果. 但是,注释却是编程中必不可少的内容,有良好的注释,能够极大的增强代码的可读性.也就是说,加上注释的代码更容易让人读懂. 如果你是一个初学者,一开始可能意识不

第二章 过程建模与生命周期

当我们提供一项服务或建造一个产品,这些任务总是每次按同样的次序来执行,所以过程是重要的. 过程不仅仅是程序象食谱,也是是程序的收集.过程结构通过让我们考察理解控制改进组成过程的活动来引导我们的行为,也有助于我们赢得我们的经验并将它传给其他人. 软件过程模型分为瀑布模型(样由一个阶段向另一阶段落下)v模型(示范了如何将测试和分析设计关系起来),原型模型(快速地建设起系统的全部或部分的理解或澄清),操作规格模型(允许功能和设计合并),转换模型(型通过削减几个主要的开发步骤来减少出错的机会.),螺旋模

【软件构造】第六章第一节 可维护性的度量与构造原则

第六章第一节 可维护性的度量与构造原则 本章面向另一个质量指标:可维护性--软件发生变化时,是否可以以很小的代价适应变化? 本节是宏观介绍:(1)什么是软件维护:(2)可维护性如何度量:(3)实现高可维护性的设计原则--很抽象. Outline 软件的维护和演化 可维护性的常见度量指标 聚合度与耦合度 面向对象五大原则SOLID 单一职责原则SRP(Single Responsibility Principle) 开放封闭原则OCP(Open-Close Principle) 里式替换原则LSP

【软件构造】第七章第一节 健壮性和正确性的区别

第七章第一节  健壮性和正确性的区别 第七章:进入软件构造最关键的质量特性 --健壮性和正确性. 本节在1-2节的基础上,重申了Robustness and Correctness的重要性,澄清了二者之 间的差异,并指明了在软件构造中处理二 者的典型技术(防御式编程.异常处理. 测试.调试等) Outline 健壮性(Robustness)和正确性(correctness) 如何测量健壮性和正确性 Notes ## 健壮性(Robustness)和正确性(correctness) [健壮性] 定

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

第五章第一节  可复用性的度量.形态和外部观察 面向复用编程(programming for reuse):开发出可复用的软件 基于复用编程(programming with reuse):利用已有的可复用软件搭建应用系统 代码复用的类型: 白盒复用:源代码可见,可修改和扩展 含义:复制已有代码到正在开发的系统,进行修改 优点:可订制化程度高 缺点:对其修改增加了软件的复杂度,且需要对其内部充分的了解 黑盒服用:源代码不可见,不能修改 含义:只能通过过API接口来使用,无法修改代码 优点:清晰.

非常道-中小软件公司项目管理(第四节 如何看待生命周期)

就软件开发项目而言,传统的生命周期基本重点是从需求分析开始,这当中会有个不大不小的问题,即“知识断层”.大部分软件项目中,项目经理接触项目通常是在合同签署后,这个时候就有一个很明显的断档,我相信有些项目经理没有过项目售前的经验(我不是指和销售人员跑跑客户讲讲方案演示下demo什么的),真正的项目售前其实是一个咨询的过程,这个过程要抓住客户,唯有四个字“提供价值”,这里的价值,表现为通过方案的描述,通俗易懂的描述能帮助客户解决什么问题,达到什么样的成果等等.这个阶段收集到的需求和目标才是客户最原始

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效

【计算机网络】第一章第一节 计算机网络的基本概念

第一章第一节 计算机网络的基本概念 第一章概述了计算机网络和因特网,这一章从整体上粗线条地勾画出计算机网络的概貌和全课程的框架 Outline 计算机网络的具体构成描述 协议 Notes ## 计算机网路的具体构成描述  [计算机网络的定义] 计算机网络是 通信技术 与 计算机技术 紧密结合的产物 计算机网络就是 互连的.自治的 计算机集合 自治:无主从关系 互连:互联互通 计算机网络就是一种特殊的通信网络(信源和信宿都是计算机.传输数字化信息) [具体构成] 主机:处在因特网的边缘部分的设备都

Welcome to Swift (苹果官方Swift文档初译与注解二十)---133~139页(第二章..本节完)

Unicode (Unicode码) Unicode是一种国际标准的文本编码.它的标准表中几乎包含所有语言的任意字符,并且可以通过扩展文件或者网页读写这些字符. 在Swift中,String(字符串)类型和Character(字符)类型完全兼容Unicode,而且它们也支持非Unicode码. Unicode Terminology (Unicode 术语) 每个Unicode码都可以用一个或者多个Unicode标量表示.对于一个字符来说,一个Unicode标量都是一个唯一的21位的值(或名称)