軟體構造過程與配置管理

2022113415-罗昊然發表於2024-05-28

軟體構造過程與配置管理

3-Software Construction Process and Configuration Management

生命週期

從無到有,從有到好,從好到無

計劃->分析->設計->是誒吸納->測試與整合->運維->迭代->消亡

軟體開發模型

基本為線性過程/迭代過程

典型模型:瀑布、V、W、增量、原型、螺旋、敏捷開發(XP&SCRUM)

不再展開敘述,都是隔壁專案管理講的東西

敏捷開發:增量+迭代 每次迭代處理一個小增量 對“小步快跑”與使用者參與及確認驗證做到極致

軟體配置管理

追蹤和控制軟體的變化

軟體中發生變化的基本單元:軟體配置項(檔案等,不是程式碼行)

基線:軟體持續變化過程中的“穩定時刻”(確定不會再產生相對變動的——如對外發布的版本)

CMDB:配置管理資料庫 儲存軟體配置項的變化資訊與基線

版本:軟體某一特定時刻形態的“身份證號”

版本管理:回滾、差異比較、備份、獲取備份、版本合併、共享協議、專案審計等

對版本控制系統:本地的/集中式的(雲端有)/分散式的(雲端和本地兼備)

典型軟體配置管理方法:Git & Github

對Git概念一些注意的點:

  • Git庫的三部分:本地CMDB、工作目錄與隔離前二者用的暫存區(git add與git commit的區分)
  • 每個軟體配置項的三個階段:修改、暫存(add)、提交(commit)
  • commit與parent指向關係:通常一指一,合併一指多,分支多指一
  • branch是一個commit'指標'的名稱,HEAD是當前commit的'指標'
  • Git中僅儲存發生變化的檔案,不同版本間未變化則不重複儲存
    img

img

下面兩張圖是課內例圖,一個對git指令的簡單應用,方便理解
img

img

軟體構造一般流程

程式設計->構建->程式碼評審->效能分析->測試->除錯->重構->程式設計(迴圈)

  • 程式設計:使用建模語言(UML,系統化的建模方法,專門軟體)/程式語言(不用舉例了,整合開發環境下運作)/配置語言(XML,原始碼偏描述性,描述各引數的配置情況)/構建語言(XML)等。從形態上可以劃分成基於語言學的/數學的形式化/基於圖形的視覺化

  • 靜態程式碼分析與評審:開展會議,使用工具,自動化等

  • 動態程式碼分析:執行程式,觀察收集,分析結果

  • 測試:發現錯誤,“有沒有”

  • 除錯:最後手段,定位錯誤,“在哪裡”

  • 重構:一系列小的,語義保留的程式碼轉換

狹義上認為軟體構造的過程即是專案構建的過程(Build),from build time to run time。可藉助工具將軟體構造各階段的活動“自動化”執行,提高構造效率。

相關文章