1、12Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz Chapter 2軟體程序軟體程序22Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 學習目標學習目標u軟體程序簡介軟體程序簡介uETVXMETVXM架構架構 u軟體程序的輪廓軟體程序的輪廓 u預先開發程序預先開發程序 u軟體開發程序軟體開發程序 32Software Engineering An Engineering Ap
2、proach, James F. Peters & Witold Pedrycz 學習目標學習目標u軟體生命周期模型軟體生命周期模型 u同步與穩定模型同步與穩定模型 u無塵室程序模型無塵室程序模型 u將通用軟體程序模型特殊化將通用軟體程序模型特殊化 42Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 軟體程序簡介軟體程序簡介u通用等級通用等級 u精練等級精練等級 u基元等級基元等級 52Software Engineering An Engineering Approach, Jame
3、s F. Peters & Witold Pedrycz 圖圖2.12.1軟體程序的等級與架構軟體程序的等級與架構62Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.22.2軟體程序的回饋系統軟體程序的回饋系統 72Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz ETVXMETVXM架構架構u最早由最早由Watts HumphreyWatts Humphrey於於198
4、91989年年所提出所提出 u圖圖2.22.2中的裁定因子、效應因子與中的裁定因子、效應因子與測量,定義出一個伴隨著回饋的測量,定義出一個伴隨著回饋的ETVXMETVXM程序架構(程序架構(EntryEntry、TaskTask、VerifyVerify、ExitExit、MeasureMeasure) 82Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.32.3回饋與回饋與ETVXMETVXM間的關聯間的關聯 92Software Engineering An Enginee
5、ring Approach, James F. Peters & Witold Pedrycz 圖圖2.42.4預先設計的效應因子程序預先設計的效應因子程序 102Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.52.5設計的效應因子程序設計的效應因子程序 112Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 軟體程序的輪廓軟體程序的輪廓u軟體的驗證與確認軟體的驗證與確
6、認 u軟體進化軟體進化 u軟體生命周期程序軟體生命周期程序 122Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.82.8V&VV&V程序的應用程序的應用 132Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.92.9軟體文件的進化軟體文件的進化 142Software Engineering An Engineering Approach, James F.
7、Peters & Witold Pedrycz 圖圖2.102.10進化樣式的框架進化樣式的框架 152Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.122.12SLCMSLCM的範例的範例 162Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 預先開發程序預先開發程序u概念探索概念探索 u系統配置系統配置 l分析功能分析功能 l定義架構定義架構 l取得欲開發系統的硬
8、體與軟體需求取得欲開發系統的硬體與軟體需求 172Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 軟體開發程序軟體開發程序u需求需求:決定系統必須的功能、活決定系統必須的功能、活動、風險與測試計劃動、風險與測試計劃 u設計設計:確定系統的運算方式、明確定系統的運算方式、明確的功能及結構確的功能及結構 u實作實作:產生程式碼(產生程式碼(source codesource code)、文件及測試;確認與驗證文件及測試;確認與驗證 182Software Engineering An En
9、gineering Approach, James F. Peters & Witold Pedrycz 軟體生命周期模型軟體生命周期模型u瀑布、增量及螺旋式模型瀑布、增量及螺旋式模型 u系統風險評估系統風險評估 u雙贏的螺旋模型雙贏的螺旋模型 u進化式模型進化式模型 u塑型式模型塑型式模型 u物件導向模型物件導向模型 u嵌入式系統程序模型嵌入式系統程序模型 192Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.132.13瀑布模型瀑布模型 202Software Engine
10、ering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.142.14增量式生命周期模型增量式生命周期模型 212Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.152.15螺旋式生命周期模型螺旋式生命周期模型 222Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 表表2.32.3風險評估表風
11、險評估表 來源來源風險的種類風險的種類風險等級風險等級採購租用的資料採購租用的資料成本(超支的可能性)成本(超支的可能性)中中資源(設備短缺的可能性)資源(設備短缺的可能性)高高責任歸屬(萬一設備、工具瑕疵?)責任歸屬(萬一設備、工具瑕疵?)低低系統限制系統限制技術層面(無法取得產品功能)技術層面(無法取得產品功能)低低技術層面(產品功能具潛在危險)技術層面(產品功能具潛在危險)中中法律層面(產品功能違反專利權)法律層面(產品功能違反專利權)高高經濟層面(產品功能太昂貴)經濟層面(產品功能太昂貴)高高經營層面(產品的壽命太短)經營層面(產品的壽命太短)低低需求的敘述需求的敘述(預先開發)(預先
12、開發)技術層面(功能難以實現)技術層面(功能難以實現)低低技術層面(資源不足)技術層面(資源不足)中中原型原型技術層面(導致系統自毀)技術層面(導致系統自毀)高高232Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 風險評估時考量的因子風險評估時考量的因子 u不當事件可能發生的機率不當事件可能發生的機率 p p (0 = p = 10 = p = 1) u不當事件發生時,預估的損失不當事件發生時,預估的損失 L L(如:軟體瑕疵造成的損失、喪如:軟體瑕疵造成的損失、喪失生命的數量)失生
13、命的數量) 242Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.162.16A A雙贏的螺旋模型雙贏的螺旋模型 252Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.162.16B B雙贏的協商模型雙贏的協商模型 262Software Engineering An Engineering Approach, James F. Peters & Witold
14、Pedrycz 圖圖2.172.17進化式生命周期模型進化式生命周期模型 272Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.182.18軟體開發的塑型方法軟體開發的塑型方法 282Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.192.19物件導向生命周期模型物件導向生命周期模型 292Software Engineering An Engineering
15、Approach, James F. Peters & Witold Pedrycz 同步與穩定模型同步與穩定模型u計劃階段計劃階段 u設計階段設計階段 u穩定化階段穩定化階段 302Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 圖圖2.232.23同步與穩定模型同步與穩定模型312Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 無塵室程序模型無塵室程序模型uEntryEnt
16、ry(進入):展開工作前須符進入):展開工作前須符合的條件合的條件 uFeedbackFeedback(回饋):對於一個工回饋):對於一個工作,來自其它程序的輸入;工作作,來自其它程序的輸入;工作的輸出作為其它程序之輸入的輸出作為其它程序之輸入 uTaskTask(工作):須完成的是什麼工作):須完成的是什麼,由誰、如何及何時去完成,由誰、如何及何時去完成 322Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 無塵室程序模型無塵室程序模型uVerificationVerificatio
17、n(驗證):確認工作驗證):確認工作的完成,檢查工作產品是否符合的完成,檢查工作產品是否符合規規 uExitExit(離開):結束工作前須符離開):結束工作前須符合的結果、格式及準則合的結果、格式及準則 uMeasurementMeasurement(測量):必要的工測量):必要的工作測量、輸出與回饋作測量、輸出與回饋332Software Engineering An Engineering Approach, James F. Peters & Witold Pedrycz 將通用軟體程序模型特殊化將通用軟體程序模型特殊化u能引導軟體增量工作依序進行能引導軟體增量工作依序進行u揭示展開工作所需要的細節揭示展開工作所需要的細節 u如何與何時進行結果的測量如何與何時進行結果的測量 u每個程序預期的產出結果每個程序預期的產出結果