Chapter 1 軟體工程概觀 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
學習目標 軟體工程簡介 軟體工程的金塊:元件 工程方法 軟體開發的問題 軟體品質的計量 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
學習目標 採購取代建構 增量式開發 能力成熟度模型 軟體標準 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體工程簡介 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體工程的金塊:元件 元件 框架 經過測試、具有特殊用途的軟體單元 元件式軟體開發技術 元件式程式設計 元件的組合體,可用來簡化程式的架構,且亦可外掛於程式 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
工程方法 實用的 循序的 計量的 因為它構築在許多經過證明的方法及實作基礎上 活動及產品之先後順序與定義,可透過「軟體程序模型」來安排 每一個階段,都必須應用軟體度量去量測已完成的產品 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體開發的問題 概念性的問題 表現性的問題 如何制定、設計與測試一個軟體系統的概念結構 如何描述、表現軟體及測試此表現方式的精確度 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.1 軟體工程的革新技術 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.4 香草框架 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體品質的計量 測量軟體品質的方法 步驟1:選定用來測量某個軟體因子(software factor)的準則 步驟2:決定每個準則的權重(weight)w(通常0≦w≦1) 步驟3:決定每個準則分數(criteria score)的尺度(例如:0≦準則分數≦10) 步驟4:選定每個準則分數的最大及最小目標值 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體品質的計量 測量軟體品質的方法(續) 步驟5:選定每個因子分數(factor score)的最大及最小目標值 步驟6:為每個準則給定一個分數 步驟7:計算加權後的總和 步驟8:將加權總和與之前設定的因子分數之最大-最小範圍作比較 步驟9:若加權總和落在最大-最小分數的範圍以外,則將每個準則的分數單獨與設定的準則分數範圍作比較 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
範例:可重覆使用性的準則 可重覆使用 的準則 Steersman分數 Ucontrol分數 權重 自我描述能力(SD) 5 1 w1 = 0.8 模組化(M) 7 w2 = 0.9 可攜性(P) 9 3 w3 = 0.2 平台獨立性 (PI) Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.4 可重覆使用性的評估 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.5 軟體產品的加權分數 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.6 Kiviat圖形 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
採購取代建構 重複使用、擴展或精鍊現存的軟體產品 軟體工廠 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
增量式開發 Humphrey法則 無塵室工程 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.5 增量式開發方法 需求階段 觸發事件:軟體需求的增量步驟已完成 回應方式:凍結需求 編號:1 表1.5 增量式開發方法 需求階段 觸發事件:軟體需求的增量步驟已完成 回應方式:凍結需求 編號:1 Humphrey法則:在開始設計前,凍結每個增量步驟的需求 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.5 增量式開發方法(續) 需求與設計階段 觸發事件:準備增量 回應方式:選定增量以支持將來的增量 編號:2 表1.5 增量式開發方法(續) 需求與設計階段 觸發事件:準備增量 回應方式:選定增量以支持將來的增量 編號:2 Humphrey法則:選定每個增量以支持未來的增量,並且(或者)增進對需求的了解 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.5 增量式開發方法(續) 設計階段 觸發事件:產品的需求定義已趨穩定 回應方式:選擇規格較小的增量進行實現 編號:3 表1.5 增量式開發方法(續) 設計階段 觸發事件:產品的需求定義已趨穩定 回應方式:選擇規格較小的增量進行實現 編號:3 Humphrey法則:以小幅度、增量式的步驟製作軟體產品 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.5 增量式開發方法(續) 設計階段 觸發事件:需求改變的發生 回應方式:將改變延期 編號:4 表1.5 增量式開發方法(續) 設計階段 觸發事件:需求改變的發生 回應方式:將改變延期 編號:4 Humphrey法則:在製作期間若需求發生改變,設法將這些改變延至未來的增量再作實現 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
表1.5 增量式開發方法(續) 設計階段 觸發事件:急迫的需求改變發生 回應方式:停止開發,重新審視及修訂軟體需求規格(SRS) 編號:5 表1.5 增量式開發方法(續) 設計階段 觸發事件:急迫的需求改變發生 回應方式:停止開發,重新審視及修訂軟體需求規格(SRS) 編號:5 Humphrey法則:若改變相當急迫,停止開發工作,修改需求,修訂計劃,然後再由設計階段開始 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.7 無塵室工程的基本步驟 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.8 無塵室工程的指引結構 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
能力成熟度模型 測量成熟度等級 能力成熟度等級的內部結構 清單方法 關鍵程序區 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
圖1.9 軟體程序管理的成熟度 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
關鍵程序區:等級2 需求管理 軟體專案規劃 軟體專案追蹤與監督 軟體轉包管理 軟體品質保證 軟體組態管理 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
關鍵程序區:等級3 組織程序聚焦 組織程序定義 訓練計劃 整合式軟體管理 軟體產品工程 群組協調 同儕複審 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
關鍵程序區:等級4 量化的程序管理 軟體品質管理 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
關鍵程序區:等級5 缺點預防 技術變更管理 程序變更管理 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz
軟體標準 電子電機工程師協會 國際標準組織 美國國家標準組織 美國國防部 英國標準組織 英國電子工程師協會 CORBA 物件管理組織 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz