软件构造 第二章 第一节 软件生命周期和版本控制
軟件構造第二章?第一節?軟件生命周期和版本控制
?
基本內容
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
總結
以上是生活随笔為你收集整理的软件构造 第二章 第一节 软件生命周期和版本控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 八八我现在遇到的奇葩无耻二房东!同时求各
- 下一篇: sql数据库系统表和mysql系统表