軟體構造 第二章 軟體構建的過程和工具(1)

2022-03-21 02:12:55 字數 2704 閱讀 4988

一.軟體的生命週期和配置管理

1. 軟體的生命週期

(1)從0至

1·計畫:確定領域

·分析:轉換使用者需求

·設計:架構、語言的使用

·實行:編寫軟體

·測試:檢驗功能

·維護:延長至計畫壽命

(2)從1至

0·軟體的更新與老化

·不同軟體之間相互取代演化

(3)經典軟體模型

·兩個基礎型別:線性、迭代

·瀑布模型:線性型別

- 按步驟依次實現

- 需求穩定,修改困難

·增量模型:線性型別

- 分治思想,選擇最核心的需求

- 每個增量各自開發時使用瀑布模型

·v模型:線性型別

- 避免錯誤

- 強化測試:對**、檔案等進行分析

·原型法:迭代型別

- 預發布簡化版確定使用者需求

- 為新開發的技術做市場實驗

·螺旋模型:迭代型別

- 每做完乙個層面進行評估

(4)敏捷開發

·開發宣言

- 人以及人的互動勝於過程和工具(實**審)。

- 可執行的軟體勝於面面俱到的文件。

- 客戶合作勝於合同談判。

- 響應變化勝於遵循計畫。

·快速迭代:從需求驅動變為成果驅動

- 使用者參與

- 短期開發

- 大量測試

·極限程式設計

- 情景對話表達需求

- 原型法設計

- 結對程式設計,自動構建

- 持續整合,持續發布

- 測試驅動的開發

·任務牆和過程管理:類似流水線

(5)協同軟體開發

·開源軟體構建模型:沒有協同管理控制

·模式細節

2. 軟體配置管理

(1)基本概念

·版本控制:配置管理的主要工具

·基線:軟體配置項各個版本組成的標準線,是版本變化的基礎

·檢入、檢出:檢入解封,檢出鎖死

(2)版本控制系統的優點

·個人- 易獲得歷史版本

- 可比較不同版本的差異

- 將完整的版本推送到其他位置

- 將歷史記錄從其他位置找回

- 合併早期版本的衍生版本

·團隊- 便於開發團隊溝通交流

- 具有日誌功能,記錄不同開發人員的作品以便審核

(3)分支和進化圖

·部分人員並行開發

·在新功能完成之前不將其加入軟體

(4)三種管理模式

·本地管理

·集中式管理:客戶通過雲端互動

·分布式管理:使用者可以直接互動或通過雲端互動

(5)一些術語

·儲存庫:我們專案中的版本的本地或遠端儲存

·版本或修訂:記錄我們專案在某個時間點的內容

·更改或差異:兩個版本之間的差異

(6)特點

·可靠:可以保持版本不變,允許備份

·支援多個檔案:跟蹤專案的版本,而不是單個檔案

·可還原:恢復全部或部分舊版本

·可審查歷史:檢視整個專案或個別檔案

·允許合作:版本合併、並行工作、跟蹤責任、作品共享

3. 例項:git

(1)git儲存庫

·.git

目錄:儲存所有版本控制資料

·快取區:在記憶體中

·工作目錄:本地檔案系統

(2)檔案的三種狀態

·修改:工作目錄中的檔案與git

儲存庫中的檔案不同,但不在臨時區域中

·分階段:檔案已修改並已新增到暫存區

·提交:該檔案在工作目錄和git

目錄中保持相同

(3)git中的物件圖:

git所有操作的基礎,儲存在儲存庫的

.git

目錄中·從另一台機器/

伺服器複製

git專案意味著複製整個物件圖。

·物件圖中的**

- 不重複儲存各版本中沒有發生變化的檔案

- 每個檔案的每個版本只儲存一次,多個提交可共享副本

(4)分支:commit -> branch -> merge

軟體構造第二章隨筆

1.瀑布模型 要求 設計 實現 驗證 維護 2.增量模型 以增量的方式實施瀑布模型 通常首先實現優先順序最高的需求 當某增量開發完成,則對應的需求被凍結 3.v模型 強調了瀑布模型的測試環節 4原型法 先實現乙個系統原型,模擬最終的幾個方面,甚至完全不同,細節問題可以忽略。在專案早期可以獲得使用者的...

HIT軟體構造學習筆記 第二章

2.1軟體生命週期與配置管理 大綱 一.軟體的生命週期 lifecycle of a software from 0 to 1 從無到有 from 1 to n 從有到好 軟體雖然不會磨損,但是需要維護和公升級,需要增加新的功能 二.傳統的軟體開發過程 主要過程 三.敏捷的開發過程 敏捷開發和傳統開...

軟體工程 第二章 軟體過程及其模型

軟體生命週期模型 軟體生命週期的6個階段 各階段基本任務 可行性研究 需求分析 概要設計 詳細設計 實現整合測試 確認測試 軟體維護瀑布模型 採用規範的方法 嚴格規定每個階段提交的文件 要求每個階段交出的產品必須經過驗證。瀑布模型適合於使用者需求明確 完整 無重大變化的軟體專案開發。瀑布模型的成功在...