第一章 軟體工程概論
大綱 何謂軟體工程 軟體的危機 軟體工程知識體 軟體流程 結論
何謂軟體工程 何謂軟體 軟體的實際應用 何謂軟體工程 軟體工程的基本原則 傳統的軟體工程 物件導向的軟體工程
何謂軟體1 軟體包含 電腦程式 執行時可以提供所需功能及效能的指令。 資料與資料結構 使電腦程式可以適當的處理資訊的資料結構。 文件 描述程式操作及使用的文件。
軟體的實際應用1 軟體實際應用的範圍包含 : 系統軟體 用來服務其他程式所組成的軟體。 即時處理軟體 在事件發生時加以監督 / 控制 / 分析的程式。
軟體的實際應用2 商業軟體 專用於商業的資訊處理是最大的軟體應用領域。 工程軟體 具有處理大資料量的演算法特性。 內嵌軟體 內嵌式軟體放在硬體的唯讀記憶體內。
軟體的實際應用3 人工智慧 利用非結構化、模擬人類思維的演算法來解決複雜化的問題。 網路專用軟體 利用瀏覽器擷取的網頁結合執行指令及資料的 軟體。
何謂軟體工程1 軟體工程 真實世界的需求 軟體世界的解決方案
何謂軟體工程2 三個階段 定義 : What 發展 : How 維護 : Changes
何謂軟體工程3 軟體工程 軟體工程的核心目標,在於以系統化、規範化、數量 化的原則與方法,進行軟體開發及維護。 整合軟體發展的方法、工具、流程的一門學科。 廣義的軟體工程也涵蓋軟體專案管理 包含專案規畫、專案執行、專案監控、軟體度量、風險管理等
軟體工程的基本原則1 軟體工程的核心,從抽象的問題發展出具體的解答,可以協助解決問題、提高工作效率的基本原則。 基本原則包含如下 情況最簡化 把最主要的問題展開,分解成多種不同的主 題,在把焦點專注於其中,在慢慢的逐一解決
軟體工程的基本原則2 抽象化表示 將物件的最主要部份,從相對不重要的細節中 區分,以方便管理其複雜度。 系統模組化 將一個系統分解成簡單並且容易處理的模組, 所以會變成模組化的系統。 軟體設計通用性 針對複雜問題,嘗試用一般化的解決辦法
軟體工程的基本原則3 預視改變 軟體方便修改,故預視改變是一種軟體工程獨 有的特徵。 遞增法 描繪出一個按部就班逐步前進的過程,利用連 續型的逐漸趨近目標。
傳統的軟體工程 系統分析與設計 流程 資料 行為 資料流程圖 實體關聯圖 狀態圖
物件導向的軟體工程 系統分析與設計 … 行為 物件 互動 類別圖 循序圖 狀態圖
軟體的危機 何謂軟體危機。 軟體危機的問題。 成本的改變。 真實案例。 軟體的問題。 軟體、硬體的特色。 硬體故障曲線。 軟體故障曲線。
何謂軟體危機1 軟體的重要性急速地提高的同時,軟體技術、人員教育訓練及企業軟體制度來不及建立下,進而產生的危機。 軟體的生產力過低 硬體的成長率每年大約30%,軟體每年只勉強以4~7%速度在成長,資訊系統的交付日期一再延後,許多待開發的軟體系統無法如期開始。
何謂軟體危機2 軟體生產成本高 1960年代軟體開發成本佔總成本的20%以下; 1970年代軟體成本已佔總成本的80%以上, 軟體維護費用在軟體成本中竟然高達65%。 軟體品質低落 1986年公佈的數據所有驗收的外包軟體中,竟然只有 4%是可用而其餘的96%卻是不堪一用。大部分的企業自行開發的資訊系統中,有四分之三也是功敗垂成。因此軟體維護成本居高不下,軟體產品品質低落是最主要的原因。
軟體危機的問題1 根據數據的調查,目前現階段的軟體專案項目沒有在預計的時間以及預算範圍內沒有完成的大致上佔了84%。 統計在1995年美國的8000軟體專案項目。 有30%以上的軟體專案項目被取消。 超過預算的有189%。
軟體危機的問題2 關鍵問題 軟體公司經常被迫去執行不切實際的最後完成 日期。 客戶總是在專案快要完成之前要求新的功能,以 及需求不明確。 軟體本身非常的複雜。 開發過程充滿不確定性。
改變的成本 60-100x 成本 1.5-6x 1x 時間 定義 開發 釋出後
真實案例1 美國銀行的主網路系統 1982商業信託系統開發。 一個指標性系統,花費18個月的深入研究與分析 原先的預算: 2000萬美元。 原先計劃的時程: 九個月,完工於1984/12/31。 但是,直到1987年的三月才完成,共花費6000萬。 期間失去了6億的業務。 最後還是放棄了此系統,以及轉走了340億的信託帳戶。
真實案例2 類似案例 Explosion of Ariane 5 prototype in 1996 Explosion of Boeing’s Delta III rocket
軟體的問題 普遍性的議題 軟體的特性 軟體不易維護 從無開始做起,導致生產力低落
軟體特性 軟體 硬體 邏輯性系統元素 實體系統元素 工程化開發 製造 不會損壞但性能會降低 會損壞 沒有備用零件 有備用零件 通常是客製化居多 以現有的元件組裝
硬體故障曲線 壞掉 故障率 初期的缺陷 時間
軟體故障曲線 由於邊際效益 造成故障率的提升 故障率 改變 實際曲線 理想曲線 時間
軟體工程知識體 簡介 軟體工程知識體
簡介 單純只是了解軟體工程的定義與說明,對 實務來說基本原理是不夠用的,軟體工程 的核心知識需要許多需要克服的困難,而 要解決這些問題需要一些具備軟體工程的 知識內涵,統稱為軟體工程知識體。
軟體工程知識體1 軟體的需求 (Software requirements) 軟體的設計 (Software design) 找出並確認軟體所需具備的功能,加以分析並撰 寫成正式的文件。 軟體的設計 (Software design) 定義軟體系統的基本結構,包括每一層的細節, 將系統細分成模組,找出模組的介面,並且設計 出每個模組所需的演算法。
軟體工程知識體2 軟體的建構 (Software construction) 軟體的實作,包含細部的設計、程式撰寫與除錯 以及單元測試。 軟體測試 (Software test) 執行軟體測試並而發現軟體缺陷,評估軟體 效能。
軟體工程知識體3 軟體更新及維護 (Software maintenance) 修改或提升現有軟體的功能,並且同時更新相關 軟體建構管理 文件,進行合適的測試。 軟體建構管理 (Software Configuration Management) 包含與軟體相關的修改以及版本控制
軟體工程知識體4 軟體工程管理 (Software engineering management) 追蹤、規劃以及控制軟體專案的進行或軟體的 團隊。 軟體開發流程 (Software development process) 關於改善軟體開發的品質、時效、生產力或其 他代表專案績效因子的活動。
軟體工程知識體5 軟體工程方法及工具 可以支援軟體開發的工具與方法。 軟體品質 (Software Quality) 評估軟體的品質、確定軟體具備足夠可靠性 的活動。
軟體流程 何謂軟體流程 軟體開發流程模式 軟體流程改善模式
何謂軟體流程1 何謂流程 (Process) 何謂軟體流程 泛指一系列的步驟包含:活動、限制、使用的資源等。 流程也可以稱作是過程,是為了執行某一個 特定目的的一種一系列行動。 整合人、程序、方法以及工具在一起。 何謂軟體流程 為了達成特定目標而執行的一系列步驟 包含 :軟體定義、分析、設計、建置、測試。 軟體流程還會包含到每個活動的說明。
何謂軟體流程2 軟體流程的抽象化表示,從一般角度描述 組織專案活動,並且分成兩種 描述型 (Descriptive) 協助思考,幫助企業抉擇哪些工作先須完成。 規範型 (Prescriptive) 有一個規範的準則,並須按部就班完成。
何謂軟體流程3 何謂流程模式 一套通用的程序要求,蒐集最佳化作法、實際知識,以指導為優先,並且描述出特徵。 建立出一個基準找出需要改進的地方。 衡量應該著手改進的活動。
軟體開發流程模式1 描述軟體開發過程的一系列步驟及其執行 程序。 開發的過程依循系統化、邏輯化的步驟進 行時,將有利於標準、規範與政策之推行 和建立,而且開發過程將更有效率,更能 確保品質,也更容易管理。 不同的開發模式,適用於不同情況的系統 開發。
軟體開發流程模式2 編碼與修正模式。 階段模式。 瀑布模式。 漸增模式。 雛型模式。 螺旋模式。 同步模式。 RUP模式。
軟體開發流程模式3 各種開發模式之演進年代
編碼與修正模式1 無方法論可言,主要包含兩個步驟 先寫部分程式。 再修正程式中之問題。
編碼與修正模式2 主要問題: 過程中沒有規劃(plan)、分析及設計,故經過 幾次修正之後,程式碼的邏輯變得難以理解。 無使用者需求分析與確認,軟體雖設計得很 好,但可能並不符合使用者的需求。
階段模式1 具有方法論之雛型。 改善了編碼與修正模式之問題並強調 系統開發前要有規劃(plan)。 程式編碼(coding)前要有分析與設計。 系統上線前要有測試(testing)。
階段模式2
階段模式3 雖已改善了編碼與修正模式之問題,但使 用上仍衍生以下之問題: 不論系統之大小或複雜程度均需經歷八階段。 各階段之進行是循序的且階段間沒有回饋。 各階段均需考量完整的系統範圍,不可僅考量 部份系統。 假設使用者需求可完整且清楚的描述。
瀑布模式1 開發的過程分成幾個階段,且劃分上較有 彈性。 每個階段清楚定義要做那些工作及交付那 些文件,使系統開發之工作更明確及容易 掌握。 可允許階段間之回饋,若在各階段發現錯 誤,能儘早修正以減少系統修改或重做之 成本。 各階段循序的執行且僅循環一次。
瀑布模式2 當系統較小或較單純,劃分的階段可能少 至三個,例如分析、設計、實作 (Implementation)等階段。
瀑布模式3
瀑布模式4 分析 設計 實作 若面對較大或複雜之系統時,其階段可再被細分成更多個階段: 可行性分析 概念性設計 程式編輯與單元測試 需求分析 細部設計 整合測試 系統分析 安裝與系統測試 教育訓練 操作與維護
瀑布模式5
瀑布模式6 瀑布模式的一些問題: 假設在專案開始時,需求可完整且清楚描述。 所有需求在各階段均需同時考量,且系統開發 在一個週期內完成。 在程式編輯前過於強調完整的分析與設計文 件,故一但需求變更,文件需大幅修改。 程式編輯於系統開發週期之後段才開始,故風 險較高,且失敗之成本亦較高。
瀑布模式7 系統開發週期較長且過程中使用者參與不足。
漸增模式1 把需求分成幾個部分,然後將每個部分的 需求之開發訂為一個開發週期,每個週期 可依序或平行開發。 每個週期之階段清楚定義要做那些工作及 交付那些文件。 每個週期內,各階段循序進行且僅循環一 次。
漸增模式2
漸增模式3 特色: 系統被分成幾個子系統或功能,各子系統可獨 立依序或平行開發。 系統開發可由多個週期完成,每個週期均有分 析設計、程式編輯及測試,每個週期完成不同 版本之系統。 使用者參與程度高,每個週期均參與,故相較 於瀑布模式,漸增模式之風險較低。
漸增模式4 漸增模式適用之情況: 目標與需求可完全與清楚描述。 預算需分期編列。 需要時間來熟悉和接受新科技。
雛型模式1 此方法先針對使用者需求較清楚的部分或資訊人 員較能掌握之部份,依分析、設計與實施等步驟 快速進行雛型系統開發。 過程中,強調儘早以雛型系統做為使用者與資訊 人員需求溝通與學習之工具,雙方透過雛型之操 作與回饋,以釐清、修改及擴充需求,並藉以修 改與擴充雛型系統。 上述步驟反覆進行,直到系統符合雙方約定 為止。 雛型系統有時是一個:只有使用者界面,而沒有 核心部分的軟體。
雛型模式2 當使用者需求無法完整且清楚的描述時
雛型模式3 主要特性與原則: 強調雛型之儘早開發及使用者高度的參與。 強調以雛型作為使用者及系統開發者之需求溝通與學習機制。 從需求最清楚部分著手開發雛型,並透過使用者對雛型之操作與回饋,反覆修改與擴充,每次反覆之週期要儘可能縮短。
雛型模式4 有兩種常見之應用策略: 演進式雛型 (Evolutionary Prototyping) 用後丟棄式雛型 (Rapid Throwaway Prototyping)
雛型模式5 演進式雛型策略 將所有需求看成一個整體,從需求最清楚的部分快速的經歷一開發週期,以完成初版雛型系統。 再利用該雛型與使用者溝通以確定、修改和擴充需求,並藉以做為下一週期雛型演進之依據。 該週期不斷的反覆進行,一直到雛型系統符合雙方約定為止。
雛型模式6 系統開發週期、雛型版本、及需求之演進
雛型模式7 用後丟棄式雛型策略 以一種快而粗糙(Quick and Dirty)的方式建 立雛型,以促使使用者能夠儘快藉由與雛型之 互動來決定需求項目,或資訊人員藉以研發問 題之解決方法與資訊科技之應用。 應用該策略開發之雛型,不需考慮系統之運用 效率、可維護性與容錯能力等。
雛型模式8 用後丟棄式雛型丟棄的原因如下 開發工具不同。 作業系統不相容。 設計方法不相容。
雛型模式9 用後丟棄式雛型策略 僅實施在風險程度最高的地方,例如需求或解 決問題之知識、概念與資訊科技整合最不清楚 的情況。因為雛型之丟棄也意味著成本的 浪費。 其它情況則盡可能的採用演進式雛型策略。
螺旋模式1 導入專案管理的概念與方法,為一風險導向的模式。 由三個步驟形成一週期: 此週期反覆進行,直到系統開發完成為止 找出系統的目標、可行之實施方案與限制。 依目標與限制評估方案,解決風險。 並由剩下之相關風險,決定該步驟該如何進行 此週期反覆進行,直到系統開發完成為止
螺旋模式2
螺旋模式3 步驟一、找出系統的目標、可行之實施方案與限制。 找出系統的目標 系統目標之評核因素很多,例如系統的績效、 功能與容忍改變之能力等。 找出系統之實施方案 系統實施方案會因問題而異,例如找出之方案 有設計A、設計B、重用、購買等。 實施方案之限制 可能為專案之成本、時程、系統介面等。
螺旋模式4 步驟二、依目標與限制評估方案, 解決風險。 主要是找出各方案之不確定處,並設法解 決,其步驟如下: 找出專案風險之重要來源。 解決風險來源: 可用雛型、模擬、標竿 (Benchmarking)、參 考點檢查 (Reference Checking)、問卷、分 析模式、上述之綜合或其它技術以解決風險。
螺旋模式5 步驟三、由剩下之風險決定該步驟 若系統的績效或使用者介面風險將強力影響程式開發或內部介面控制,則此步驟可能是採取演進式雛型。 若該雛型使用性佳且夠強韌(Robust),足以當做未來系統發展之基礎,則往後將是一系列的雛型演進。 假如先前之雛型努力已解決了所有的績效或使用者介面之風險,則此一步將遵循基本的瀑布模式,亦可適當的修飾以整合漸增模式。
螺旋模式6 特色與應用原則: 在高風險部分之設計尚未穩定前,規格之發展 不需要一致、詳盡或正式,以避免不必要之設 計修改。 在開發之任一階段,螺旋模式可選擇整合雛型 模式以降低風險。 不同週期,可能採用不同的開發模式。 當更吸引人之方案被找出,或新風險需被解決 時,可整合重做或回到前面之階段。
螺旋模式7 包含了現有模式之大部分優點,其風險導向之方法解決了許多模式之問題。在某些條件下,螺旋模式相當於某一現有之模式。 若專案在系統的績效或使用者介面需求方面屬於低風險,且在預算及時程控制方面屬於高風險,則這些風險之考量會使螺旋模式之執行相當於瀑布模式或漸增模式。 若專案在預算及時程控制、大型系統之整合或需求變動方面之風險較低,且在系統的績效、使用者介面或使用者決策支援需求方面之風險較高,則這些風險之考量會使螺旋模式之執行類似於雛型模式。
同步模式1 主要是為了縮短系統開發時間,加速版本之更新,因應商業套裝軟體的市場競爭。 適用情形: 需求可明確與完整的描述。 有足夠的人力參與。 團隊間有良好的溝通、資訊交換與專案管理。
同步模式2 優點: 缺點: 開發時間的縮短可提高產品的競爭力。 緊湊的步驟及頻繁的資訊溝通,使得專案管理的複雜度大幅提高,人力成本也相對提高。 若沒有輔以良好的工具及管理方法,則不易達成目標。
同步模式3 基於三個主要的構想來達到時程縮短的目標: 多個團隊同時開發。這種多組人同時工作的方式稱為活動同步(Activity Concurrency)。
同步模式4 同步模式之執行程序
同步模式5 資訊同步。不同團隊的資訊互相交流與共享稱為資訊同步(Information Concurrency) 資訊同步有三個技巧: 向前傳遞(Front Loading) 向後傳遞(Flying) 建立有效資訊交換網路及群體工作的支援環境 整合性的管理系統。同步開發方法的管理方法比一般的系統開發複雜,必須開發一個管理系統以協調人員、資源、過程和產品間複雜的互動關係
同步模式6 同步開發與循序開發方法之比較
同步模式7 同步開發與循序開發方法之比較
同步模式8 開發活動跨越不同版本
RUP模式1 RUP (Rational Unified Process) 模式於1998由Ivar Jacobson、Grady Booch和James Rumbaugh提出。 以架構為中心(Architecture-Centric)的開發模式。 結合螺旋模式的概念,以「反覆式」(Iterative)與「漸增式」(Incremental)的軟體發展原理進行軟體開發。 反覆式意指重複用相同的的一系列操作或步驟以進行軟體開發。 漸增式意指每一次在軟體產品上新增工功能、模組、元件或子系統等。
RUP模式2 每一次的反覆需產出一個可運作的系統版 本,並在每一個反覆週期評估風險,以儘 早發現問題。 不需假設專案開始時,使用者需求可完整 且清楚描述。 可由動態與靜態兩個構面來說明系統開發 專案之實施階段與核心工作。
RUP模式3 動態構面把軟體開發依序分成四個主要階 段:初始、詳述、建構與轉移。 靜態構面主要表達成九個核心工作流程 這四個階段構成一個週期,週期可反覆進行, 每個週期內之各階段也可以視情況反覆進行。 靜態構面主要表達成九個核心工作流程 (Workflows)或過程(Processes): 有六項屬於軟體工程工作:企業模型、需求、 分析與設計、實作、測試、配置(Deployment) 三項屬於管理支援工作:專案管理、組態管理 與變動管理、環境。
RUP模式4
第四代技術1 第四代技術(4th Generation Techniques, 4GT)指的是輸入圖形(diagrams)或特殊語 言,可以自動產生原始程式碼的技術。 圖形(diagrams)或特殊語言主要是用來描 述軟體的特性與行為,4GT根據這些描述來 產生原始程式碼。 這些輸入就是所謂的第四代語言(4GL)。
第四代技術2 採用4GT開發軟體,還是要經過分析、設 計、編碼、測試、維護等階段。 採用4GT開發的方式,必須使得軟體易於 維護。 擷取的階段跳到實施(Implementation)的階段。 若和元件開發方式合用,4GT可能便變成軟體開發 的主要方法。
第四代技術3 優點 缺點 支持者聲稱可加快開發的速度,提升生產力。 反對者聲稱4GT的工具不比程式語言簡單, 產生的原始程式碼執行效率差,
快速應用軟體開發1 快速應用軟體開發 (Rapid Application Development, RAD)強調以極短時間(約60-90天)完成軟體的開發。 程式的產生儘可能使用元件開發方式及第四代技術縮短開發時間。 主要用於開發需求可完整且清楚描述的資訊系統。 分數個週期平行開發,每一週期由一個團隊完成一功能組(模組)。
快速應用軟體開發2 一個週期包含: 商業塑模(business modeling) 資料塑模(data modeling) 處理塑模(processing modeling) 程式的產生(application generation) 測試及修改(testing and turnover)
快速應用軟體開發3 缺點 大型軟體需有足夠的人力參與。 不適合開發技術風險高的軟體。 只適合能模組化的軟體。 使用者與資訊人員雙方都必須要有決心,互相配合,以便在極短時間內完成軟體的開發。
六個系統開發模式之比較 模式 年代 基本假設 / 適用情況 主要特徵 瀑布模式 1970 使用者可以完整且清楚的敘述需求 軟/ 硬體之技術與支援沒問題 重視設計與規劃之文件 強調先有完整的設計與規劃 階段的完成需通過驗證,才進到下階段 漸增模式 1971 同上 開發階段要有清楚的定義 開發週期反覆進行 雛型模式 1977 使用者無法完整定義出所需的需求 軟/ 硬體之技術與支援不確定 系統開發階段無清楚之分界線 不要強調先有完整的設計與規劃 強調快速的完整雛型且儘早使用 螺旋模式 1986 上述各情況均可 雛型模式的主要特徵之綜合 強調各開發週期之規劃與風險評估 同步模式 1993 需求可明確且完整敘述 有足夠的人力參與 開發工作分隔並同時進行 整合及系統測試不可分隔 RUP 1998 強調反覆與漸增式開發 強調流程、工作產出與專案管理
資訊系統特性與適用之開發模式 資訊系統種類 資訊系統特色 適用之系統開發模式 交易處理系統 管理資訊系統 決策支援系統 企業資源規劃系統 針對大量交易處理之自動化,其處理程序及資訊需求是非常結構化的,且一經決定就不常改變。 瀑布模式、漸增模式 雛型模式、螺旋模式 同步模式、RUP模式 管理資訊系統 提供給不同層級的管理者,有關組織營運狀況不同摘述程度之報表,且報表之格式是預定的。一般來說,這些資料之處理與報表產生,不常改變。 決策支援系統 主要是用來支援決策者半結構化、非結構化之決策。資訊內容與報表內容通常不固定。 RUP模式 企業資源規劃系統 主要能及時整合與規劃分散於企業各據點資源,可以隨時彈性處理企業資訊的系統
軟體流程改善模式 CMMI 的基本認知 流程改善週期
CMMI 基本認知1 CMM與CMMI的演進 由美國卡內基美隆大學所發展出一套認證制度 1987年 1989年 1991年 為CMM(Capability Maturity Model)能力成熟模式發表一篇報告 1989年 出版了一本書軟體成熟度框架 1991年 發展出CMM V. 1.0軟體 1993 / 1994 發展出CMM V. 1.1軟體 SEI開發出個人軟體流程 (PSP) 1995 SEI開發出新的軟體專用CMM,包含: SA-CMM 、 SE-CMM 、 IPD-CMM 、 People-CMM。
CMMI 基本認知2 CMM與CMMI的演進 1996年 SEI開發出團隊軟體流程(TSP)。 1997年 2000年 發展出CMMI V. 1.02 2001年 發展出CMMI V. 1.1 2006年 發展出CMMI-DEV V. 1.2 2007年 發展出CMMI-ACQ V. 1.2 2009年 CMMI-SVC發展中
CMMI 基本認知3 CMMI的發展 由美國國防部以及美國國防工業發展協會共同制定的標準。 超過100個人的參與內包含: 共同努力一同制定。 SEI 政府 企業 共同努力一同制定。
CMMI 基本認知4 CMMI模式的表述,有兩種流程改善的方法 組織成熟度方法:階段式表述。 流程能力方法:連續式表述。 成熟度等級在企業流程改善中是一個已定義的演進水準,每個成熟度等級會使一個重要的組織流程子集合更加成熟,為提升到下一個成熟度作準備。 流程能力方法:連續式表述。 能力度等級包含與流程領域有關的一般目標及相關的一般執行方法,可以改善流程領域有關的組織流程。
CMMI 基本認知5 階段式表述。 連續式表述。 ML 1.初始級。 ML 2.管理級。 ML 3.已定義級。 ML 4.量化管理級。
CMMI 基本認知6 連續型 階段式
CMMI 基本認知7 階段式改善層級 最佳化層 ML5 量化管理層 ML4 定義層 ML3 管理層 ML2 ML1 未執行 (0) 連續 流程 最佳化層 ML5 階段式改善層級 可預測的 流程 量化管理層 ML4 標準, 一致 流程 定義層 ML3 訓練 流程 管理層 ML2 初始層 ML1 未執行 (0)
CMMI基本認知8 Staged Organization of 25 PAs Level Focus 25個流程領域 組織創新與推展 (OID) 原因分析與解決方案 (CAR) 5 最佳化層 連續流程 改善 4 量化管理層 量化管理 組織流程績效 (OPP) 量化專案管理 (QPM) 3 定義層 流程標準化 需求發展 (RD) 技術解決方案 (TS) 產品整合 (PI) 驗證 (VER) 確認 (VAL) 組織流程專注 (OPF) 組織流程定義 (OPD) 組織訓練 (OT) 整合的專案管理 (IPM) 風險管理 (RSKM) 整合團隊合作 (IT) 整合的供應商管理 (ISM) 決策分析與解決方案 (DAR) 適於整合之組織環境 (OEI) 2 管理層 基本的 專案管理 需求管理 (REQM) 專案規劃 (PP) 專案監控 (PMC) 供應商協議管理 (SAM) 度量與分析 (MA) 流程與產品品質保證 (PPQA) 建構管理 (CM) 1 初始層 Staged Organization of 25 PAs Level Focus 25個流程領域 (PA, Process Area)
流程改善週期1 流程改善的週期 對管理階層的承諾,並進行評估。 從評估的結果,找出行動計畫。 計畫完成後,並進行進一步的評估。 並且繼續循環。
流程改善週期2 流程改善的應用: IDEAL Model
結論 本章首先介紹何謂軟體及軟體工程,狹義的軟體僅指電腦程式,這是一般大眾的認知,然而,在軟體工程領域,軟體包含電腦程式、文件、資料與資料結構 。 目前,影響專案失敗的因素還是太多,且難以控制,因此失敗率還是太高,軟體的危機尚未解除。 本章還介紹軟體工程所包含的相關知識體。 最後,介紹軟體流程模式,包含各種軟體開發流程模式,與軟體流程改善模式。