軟件過程重點知識梳理


title: 軟件過程重點知識梳理 date: 2018-12-28 08:52:02 tags: 軟件開發過程


高級軟件開發過程重點知識

1. 緒論

  • 軟件過程定義:從軟件需求定義開始到軟件廢棄爲止,跨越整個生命週期內的系統開發、運行、維護等全部活動及其相關項的總和。
  • 軟件發展三階段:程序設計、軟件工程、軟件過程
  • 軟件過程能力評估標準和改進方案:CMM, ISO, 6 西格瑪
  • 生命週期模型:瀑布模型、原型模型、螺旋模型、噴泉模型
  • 軟件過程與軟件工程的關係:包含關係
  • 軟件過程模式的意義
  • 四要素
  • 快速把握軟件過程的本質、原則、規範、特點、策略等
  • 分析優缺點

2. Rational 統一開發過程

  • 三大特點
  • 用力驅動
  • 以架構爲中心
  • 迭代與增量
  • 工作流程不僅僅指活動,還表明了角色、活動、工件是一個邏輯整體。
  • RUP 二維結構圖

v2-e60a64d80d232359c23ba38ad51cfcf5_b.jpg


  • 靜態特徵:縱軸的內容組織
  • 動態特徵:橫軸的時間組織
  • RUP 獨特的地方
    • 並行化
    • 階段內部迭代
    • 工作流中多出的幾個新的概念
    • 明確的里程碑

  • 九大核心工作流程
  • 核心過程
    • 業務建模
    • 需求
    • 分析設計
    • 實施
    • 測試
    • 部署
  • 核心支持
    • 配置、變更管理
    • 項目管理
    • 環境

  • 工件:模型、元素、文檔、源代碼、可執行文件、工具等。
  • 四階段
  • 先啓(目標)
  • 精化(架構)
  • 構建(初始化、產品是否穩定、迭代次數最多)
  • 產品化(產品發佈、用戶是否滿意)
  • 五大角色
  • 分析員
  • 開發人員
  • 測試員
  • 經理
  • 其他角色
  • 角色的意義(兩步走):
  • 迭代計劃時,確定角色
  • 人員計劃時,考慮個體的技能特長,分配角色
  • 角色方面的缺陷:未給出角色的組織管理方式、角色之間的地位和交互關係。
  • 用例的缺點及其解決方法:非功能性需求表現不足,可用補充說明文檔解決。
  • 架構視圖
  • 用例模型視圖
  • 分析模型視圖
  • 設計模型視圖
  • 實施模型視圖
  • 實現模型視圖
  • 補充【架構必須留有複用和進化空間
  • RUP 的優點
  • 二維迭代,有利於降低風險,適應新需求
  • 可配置,具有通用性
  • 包含四要素的詳盡的闡述
  • 有現成的使用工具,具有操作性、可實現性
  • RUP 的缺點
  • 四要素關係及其優先級未給出
  • 生命週期各元素的關旭和優先級未給出
  • 人員之間的優先級和協作方式未給出
  • 產品和方法之間的優先級未給出

3. 敏捷開發過程

  • 4 條基本價值觀
  • 個體和交互勝過過程和工具(人員、生命週期、方法)
  • 可以工作的軟件勝過面面俱到的文檔(產品)
  • 客戶合作勝過合同談判(人員)
  • 響應變化勝過遵循計劃(方法)
  • 12 條基本原則 1、我們的最高目標是,通過儘早和持續地交付有價值的軟件來滿足客戶。 2、歡迎對需求提出變更——即使是在項目開發後期。要善於利用需求變更,幫助客戶獲得競爭優勢。 3、要不斷交付可用的軟件,週期從幾周到幾個月不等,且越短越好。 4、項目過程中,業務人員與開發人員必須在一起工作。 5、要善於激勵項目人員,給他們以所需要的環境和支持,並相信他們能夠完成任務。 6、無論是團隊內還是團隊間,最有效的溝通方法是面對面的交談。 7、可用的軟件是衡量進度的主要指標。 8、敏捷過程提倡可持續的開發。項目方、開發人員和用戶應該能夠保持恆久穩定的進展速度。 9、對技術的精益求精以及對設計的不斷完善將提升敏捷性。 10、要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術。 11、最佳的架構、需求和設計出自於自組織的團隊。 12、團隊要定期反省如何能夠做到更有效,並相應地調整團隊的行爲。
  • 分類:
    • 生命週期(1,3,7,8)
    • 人員(4,5,6,11,12)
    • 產品(無)
    • 方法(2,9,10)

  • 計劃遊戲(制定細緻度逐漸降低的計劃)
  • 持續集成
  • 結對編程
  • 隱喻(全局視圖、未來影像)

4. 微軟開發過程

  • 術語
  • 項目前景與項目範圍
  • 功能說明書
  • 程序經理
  • 過程原則
  • 制定計劃時兼顧未來的不確定因素
  • 通過有效的風險管理減少不確定因素的影響
  • 經常生成過度版本,並進行快速測試來提高產品的穩定性和可預測性
  • 快速循環、遞進的開發過程
  • 從產品特性和成本能控制出發創造性的工作
  • 創建確定的進度表
  • 使用小型項目組併發的完成工作,並設置多個同步點
  • 將大型項目分解爲多個可管理的單元,以便快速的發佈產品
  • 用產品的前景目標和概要說明指導項目開發工作——先基線化,後凍結
  • 避免產品走形
  • 使用原型驗證概念,進行開發前的測試
  • 零缺陷觀念
  • 非責難式的里程碑評審會
  • 組隊原則
  • 小型的、多元化的項目組
  • 角色依賴、職責共享
  • 專深的技術水平和業務技能
  • 以產品發佈爲中心
  • 明確的目標
  • 客戶的主動參與
  • 分享產品的前景
  • 所有人都參與設計
  • 認真從過去的項目中吸取經驗
  • 共同管理、共同決策
  • 項目組成員在同一地點辦公
  • 大型項目組也像小型項目組那樣運作
  • 微軟過程生命週期
相當於 RUP 的生命週期的精簡版,但是微軟生命週期的特色在於其每個階段設置的緩衝時間
  • 構想(先啓)
  • 計劃(精化)
  • 開發(精化)
  • 穩定(構建)
  • 發佈(產品化)
  • 微軟角色劃分
以前的項目經理被拆分爲產品經理和程序經理,因爲這項目經理往往身兼兩個角色,而這兩個角色之間存在着矛盾。
  • 產品經理
  • 程序經理
  • 開發工程師
  • 測試工程師
  • 用戶體驗人員
  • 發佈管理人員
  • 角色間的關係
  • 對等
  • 相互協作的方式是交流和溝通


v2-bfccb6fd2e341a723b51915434199dff_b.jpg


  • 角色合併原則
  • 開發人員不能兼任其他角色
  • 不能試圖合併兩個有明顯利益衝突或制約關係的職能角色


v2-321552f594e69f72da53f1bd6ef81eb6_b.jpg


  • 角色合併結論
  • 最小的項目組需要 3 個成員:產品經理、程序經理、開發工程師
  • 微軟均衡三角形
結論:四要素之間相互制約,任何一條邊的改變都會對剩餘的邊造成影響。


v2-9e31e956fdb2490df7666d697ff64430_b.jpg


  • 微軟項目均衡矩陣

v2-1acda0af9b98a1814c798e265c474484_b.jpg


  • 執行方法


v2-cae8e52f4f040be33626b00ee3cde56e_b.jpg


  • RUP/AP/微軟過程的關係
三者相互交叉、相互重疊,又相互區別互不包含


v2-da5ec319f24eaf74de484a979356a7cc_b.jpg


  • 微軟每日編譯生成機制
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章