1. 程式人生 > 其它 >軟體構造——軟體構造過程與配置管理

軟體構造——軟體構造過程與配置管理

軟體構造過程與配置管理

傳統的軟體開發過程模型

  1. 兩種基本型別:
  • 線性模型
  • 迭代模型
  1. 現有的其它模型:
  • 瀑布模型
    • 流程:需求、設計、實施、驗證、維護
    • 特徵:線性推進、階段劃分清晰、整體推進、無迭代
    • 優點:管理簡單
    • 缺點:無法適應需求變化
  • 增量模型
    • 特徵:線性推進、增量式(多個瀑布的序列)、無迭代
    • 優點:容易適應需求增加
  • V字模型
    • 特徵:瀑布模型的延伸擴充套件
  • 原型過程
    • 特徵:迭代
  • 螺旋模型
    • 特徵:迭代,多輪迭代基本遵循瀑布模式,每輪迭代有明確的目標,遵循”原型“過程,進行嚴格的風險分析才可進入下一輪迭代
  1. 選擇過程模型的依據:
  • 使用者參與度、適應變化的能力
  • 開發效率、管理複雜度
  • 開發出的軟體的質量

敏捷開發

  1. 敏捷開發的概念:通過快速迭代和小規模的持續改進,以快速適應變化。每次迭代處理一個小規模增量,敏捷 = 增量 + 迭代
  2. 敏捷開發的特徵:
  • 極限的使用者參與
  • 極限的小步驟迭代
  • 極限的確認、驗證
  1. 敏捷開發的方法:極限程式設計XP

Git

  1. Git倉庫的三個組成部分:
  • 本地的版本控制資料
  • 工作目錄:本地檔案系統
  • 暫存區:隔離工作目錄和git倉庫
  1. 每一個檔案都屬於以下三種狀態之一:
  • 已修改:在工作目錄中的檔案與git倉庫中的檔案不同但是該檔案並不在暫存區
  • 已暫存:檔案已經被修改但是被新增到了暫存區
  • 已提交:修改的檔案被從暫存區提交到了git倉庫中
  1. git中的物件圖:
  • git物件圖用來記錄git專案的歷史資訊,版本之間的演化關係圖,是一個有向無環圖

  • git的所有操作都是在一個物件圖上進行的

  • git物件圖儲存在倉庫的.git目錄下

  • 從一臺伺服器clone git專案意味著複製整個物件圖git clone URL local_repository

  • A->B:在版本B的基礎上做出變化形成了版本A

  • 每一個結點都是一次commit,每個commit指向一個父親

  • 分支:多個commit指向同一個父親

  • 合併:一個commit指向兩個父親

  • git物件圖只儲存變化的檔案對於未發生變化的檔案只儲存一份副本

  1. git命令:
  • 跟蹤新檔案,將修改的檔案放入暫存區:git add
  • 檢查當前檔案狀態,哪些修改了但還沒有暫存,哪些暫存了但還沒提交:git status
  • 檢視已暫存和未暫存的更新,檢視沒有暫存的檔案更新了哪些部分:git diff
  • 檢視已暫存的檔案與上次提交之間的差異:git diff - -cached
  • 提交更新:git commit
  • 跳過使用暫存區域,把所有已經跟蹤過的檔案暫存起來並一併提交,git commit -a
  • 移除檔案:git rm
  • 獲取當前配置的所有遠端倉庫:git remote
  • 新增一個遠端倉庫:git remote add [shortname] [url]
  • 從遠端倉庫抓取資料到本地:git fetch
  • 從一個倉庫或本地的分支拉取並整合程式碼:git pull
  • 將本地倉庫中的資料推送到遠端倉庫: git push [remote-name] [branch-name]
  • 檢視某個遠端倉庫的詳細資訊:git remote show [remote-name]
  • 從本地移除遠端倉庫:git remote rm

廣義的軟體構造過程

  1. 編碼Programming
  2. 程式碼評審Review and static code analysis
  3. 動態程式碼分析Dynamic code analysis
  4. 除錯與測試Debugging and testing
  5. 重構Refactoring