1. 程式人生 > >軟體構造之軟體的生命週期

軟體構造之軟體的生命週期

軟體開發的基本過程

 計劃 --- 分析 --- 設計 --- 實現 --- 測試和部署 --- 運維 (迴圈往復)

傳統軟體開發過程模型

兩個主要的型別:

線性過程和迭代過程

已有模型:

瀑布過程:

線性非迭代過程。該過程是軟體開發的基本過程的線性推進,各階段劃分清楚,整體推進,管理簡單但無法適應需求的變化。

增量過程:

非迭代過程。產品的設計、實現和測試都是漸進的(每次增加一點),直到產品完成為止。該模型逐步利用瀑布模型系統被分解成許多小型開發專案部分系統是為了生成最終系統而構建的首先解決優先級別最高的要求一旦增量部分被開發,部分的需求就被凍結了

V字模型:

V模型代表了一個發展的過程,可以看成是瀑布模型的一個擴充套件。在編碼階段之後,工藝步驟向上彎曲,形成典型的

V而不是以直線方式向下移動。

 

原型過程:

軟體原型過程是軟體原型建立活動,即開發軟體程式的完整版本。原型通常模擬幾個方面,並且可能與最終產品完全不同。程:確定基本需求:包括所需的輸入和輸出資訊,通常可以忽略細節開發初始原型:最初開發的原型只包含使用者介面審查:客戶,包括終端使用者檢查原型,並提供補充或更改的反饋修訂和加強原型:使用反饋改進規格和原型如果發生了改變了,重複步驟3和步驟4好處:軟體設計者和實施者在專案早期可以從使用者那得到有價值的反饋。客戶端可以比較軟體是否與軟體規範相匹配,並根據軟體規範構建軟體程式。它還允許軟體工程師對初始專案估計的準確性有深入的瞭解,以及是否能夠成功地在專案的最後期限之前完成。

 

螺旋模型:

螺旋模型是風險驅動的軟體工程過程模型生成器。它是基於特定專案的獨特風險模式,指導團隊採用一個或多個過程模型的元素,如增量、瀑布或演化原型。多輪迭代基本遵循瀑布模式,每輪迭代有明確的目標,並且遵循原型過程,進行嚴格的風險分析,方可進入下一輪迭代。 

敏捷開發

它提倡適應性規劃、進化發展、提前交付和持續改進,並鼓勵快速靈活地應對變化。

軟體配置管理(SCM

跟蹤和控制軟體中的變化

軟體的任何組成部分(原始碼,資料,文件,硬體,各種環境)都可以隨著軟體生命週期更新。

軟體配置項(SCI):軟體中發生變化的基本單元基線(baseline):軟體持續變化中的穩定時刻配置管理資料庫(CMDB):儲存軟體的各配置項隨時間發生變化的資訊
+基線
版本控制(Versioning):是將唯一版本名稱或唯一版本號分配給軟體唯一狀態的過程。

版本控制系統(VCS

本地版本控制系統:倉庫儲存於開發者本地機器 無法共享和協作集中式版本控制系統:倉庫儲存於獨立的伺服器,支援多開發者之間的協作

分散式版本控制系統:倉庫儲存於獨 立的伺服器+每個開 發者的本地機器

 

Git

管理軟體演化過程中的變化

Git repository

三個部分本地的CMDB工作目錄:本地檔案系統暫存區:隔離工作目錄和Git倉庫

我們做git-cloneaddcommitpushlogmerge所有的操作是一個儲存了專案中所有檔案的版本的圖的資料結構上的操作Git物件圖是存放在倉庫的Git目錄中;複製一個Git專案從另一臺伺服器意味著複製整個物件圖。每一次提交的是我們整個專案的快照,在Git代表一個樹節點。對於任何合理大小的專案,大多數檔案在任何修訂版本中都不會更改。儲存檔案的冗餘副本是很浪費的,Git物件圖一次儲存單個檔案的每個版本,並允許多個提交共享一個副本,並且每個提交都有日誌資料