軟件構造筆記——2.1 軟件開發模型與軟件配置管理

這裏,將Software Development Lifecycle 簡寫爲SDCL,將Software Configuration Management簡寫爲SCM。
1.軟件開發的目標是活力與較長的生命週期。
2.傳統設計模式從基本的,可以分爲兩種:線性的(瀑布模型、增量模型)與迭代的(原型法、螺旋模型)
還有特殊的V模型是,基於驗證的。
3.最佳的開發方式主要考慮的是:用戶參與(適應變化需要),高效開發,項目管理,軟件的質量。

傳統開發模式中,
1)瀑布模型的開發過程:
用戶需求-> 設計->實現-> 驗證->維護
2)增量模型:即將整個產品分成幾個增量,逐一完成;
注意:一旦開始開發某增量,則該增量的對應需求被凍結
3)V-模型:瀑布模型的拓展,隨着開發的完成度,進行強化測試
在這裏插入圖片描述縱軸是抽象程度,橫軸是項目的完整度或時間

3.模型法與瀑布法的不同之處在於迭代式的用戶反饋,有助於開發者更精確地理解用戶需求,對後面的開發計劃進行預估(ddl等)
在這裏插入圖片描述3.螺旋形模型:由風險驅動,每一輪迭代開始,根據風險評估,選擇最適合的傳統模型(上面提到過的一種)
在這裏插入圖片描述
4。而現在流行的是敏捷開發, pair programming ,尊重用戶的需求,對用戶的需求變化,及時做出調整。 最重要的是開發週期短,在反覆評價的過程中,規格說明不是固化的
在這裏插入圖片描述敏捷開發主要有兩種方式:
1.XP(特點是與用戶一起coding)
2.scrum(特點是將任務分割,小組合作,各自開發,定期進行交流)

版本控制
軟件配置管理的目的是控制版本和建立基線。
軟件配置項是軟件配置管理的基本單位,包括源代碼、數據、文檔(系統說明,代碼的規格說明,測試方案等)、軟硬件、環境等。
軟件配置項由軟件配置數據庫管理.
軟件配置管理數據庫的更新有check_in(用戶或開發者獲取版本)和check_out(用戶提交修改過的版本)的過程。
check_in 和check_out都有一個和配置管理數據庫交互的過程,是基於一個CMDB控制下的軟件版本基線,對某一部分的版本進行修改。訪問的權限由一個access control進行是否可修改的開鎖解鎖控制。

在這裏插入圖片描述
版本控制系統是分佈式還是中心式的關鍵在於用戶是否用於所有的版本備份,可以滿足用戶之間相互傳遞數據。(分佈式也是有控制所有版本的服務器滴)

術語:head指當前版本
working copy 指當前本地可進行編輯修改的備份。
git倉庫分爲3部分:工作區(Modified)、緩存區(Staged)、.git目錄(保存了倉庫的各版本控制數據)(Committed)。

尤其要注意的是:在傳統的VCS中,保存的是每個版本的增量(即發生修改的部分);而在git中,保存整個發生修改過的文件,且每個文件的每個版本只保存一次,然後每個版本共享。如下圖:在這裏插入圖片描述
注意git命令的理解下面是一個例子
注意git merge的兩種情況
master是被合併分支的祖先
在這裏插入圖片描述master不是被合併分支的祖先,於是兩者形成一個新的版本。
在這裏插入圖片描述在分工合作開發的過程中,隨着合作方版本的更新,可以通過git fetch 命令將遠程的版本克隆到本地倉庫,與本地倉庫中已git commit的部分通過git merge 命令進行合併。
圖示如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章