構件內建模型利用子產品化方法将整個系統子產品化,并在一定構件模型的支援下重用構件庫中的軟體構件,通過組合手段提高應用軟體系統過程的效率和品質。建構內建模型融合了螺旋模型的許多特征,本質上是演化型的,開發過程是疊代的。基于構件的開發模型由軟體的需求分析和定義、體系結構設計、構件庫建立、應用軟體建構及測試和釋出5個階段組成。采用這種開發模型的軟體過程如圖3-4所示。

基于構件的開發活動從辨別候選構件開始,通過搜查已有構件庫,确認所需要的構件是否已經存在。如果已經存在,則從構件庫中提取出來重用,否則采用面向對象方法開發它。之後利用提取出來的構件通過文法和語義檢查後将這些構件通過膠合代碼組裝到一起實作系統,這個過程是疊代的。基于構件的開發方法使得軟體開發不再一切從頭開發,開發的過程就是構件組裝的過程,維護的過程就是構件更新、替換和擴充的過程。其優點是構件內建模型導緻了軟體的重用,提高了軟體開發的效率。
由于采用自定義的組裝結構标準,缺乏通用的組裝結構标準,這樣就引入了比較大的風險。可重用性和軟體高效性不容易協調,這就需要比較有開發經驗的開發人員,而一般的開發人員很難開發出令客戶滿意的軟體。由于過分依賴于構件,是以構件庫的品質影響着産品品質。
構件內建模型融合了螺旋模型的很多特征,支援軟體開發的疊代方法。這種面向重用的過程模型,最明顯的優勢是減少了需要開發的軟體數量,加快了軟體傳遞,進而降低了開發成本,同時降低了開發風險。當然,它的成功主要是依賴與可以存取的可重用軟體構件,以及能內建這些軟體構件的架構。
統一過程模型(unified process,up)是風險驅動的、基于用例技術的、以架構為中心的、疊代的、可配置的軟體開發流程。up是一個面向對象且基于網絡的程式開發方法論。根據rational rose和統一模組化語言的開發者的說法,它可以為所有方面和層次的程式開發提供指導方針、模闆以及用例支援。
統一過程模型是一個軟體開發過程,是一個通用的過程架構,可以用于各類軟體系統和應用領域。統一過程模型是在重複一系列組成系統生存周期的循環。每一次循環包括4個階段:初始、細化、構造和移交,每個階段又進一步細分為多次疊代的過程,如圖3-5所示。每次循環疊代會産生一個新的版本,每個版本都是一個準備傳遞的産品。
初始階段。在初始階段将一個好的想法發展為最終産品的一個構想,提出了該産品的業務執行個體。該階段要完成:系統向它的每個重要使用者提供的基本功能是什麼?該系統的邏輯架構大概是什麼樣子?開發該産品的計劃如何?開銷多大?在該階段主要建立關鍵用例的簡化用例模型,用于刻畫系統主要功能。架構是實驗性的,通常包括主要子系統的大緻輪廓。要确定最主要的風險及其優先次序,對細化階段進行詳細規劃,并對項目進行粗略估算。
細化階段。在細化階段,詳細說明該系統的絕大多數用例,并設計出系統的架構。架構可以表示為系統中所有模型的不同視圖,合起來表示整個系統,即架構包括用例模型、分析模型、設計模型、實作模型和實施模型的視圖。在細化階段末期,要規劃完成項目的活動,估算完成項目所需的資源。關鍵問題是用例、架構和計劃是否足夠穩定、可靠,風險是否得到控制,以便按照合同的規定完成整個開發任務。該階段的結果是架構基線。
構造階段。構造階段将構造出最終産品—軟體。在該階段,架構基線逐漸發展成為完善的系統,将消除所需要的大部分資源,架構可以進行微調,但系統架構是穩定、可靠的。要回答的問題是早期傳遞給客戶的産品是否完全滿足使用者的需求。
移交階段。移交階段包括産品進入分析後期的整個階段,使用者使用分析法發現産品的缺陷和不足,開發人員改正問題及完善系統形成更通用的版本。該階段包括諸如制作、使用者教育訓練、提供線上支援以及改正傳遞之後發現的缺陷活動。
統一過程模型在定義4個階段及其疊代過程時,又給出了5個核心工作流:需求、分析、設計、實作和測試。每個工作流在各個階段所處的地位和工作不同。圖3-6給出了統一過程模型的核心工作流。
需求。需求工作流的目的是緻力于開發正确的系統。需求工作流要求足夠詳細地描述系統需求,使客戶和開發人員在系統應該做什麼、不應該做什麼方面達到共識。
分析。分析工作流的目的是更精确地了解需求,也是為了得到一個易于維護且有助于确定系統結構的需求描述。與需求工作流相比,分析工作流可以使用開發人員的語言來描述群組織。需求捕獲階段的需求,探究系統内部,解決用例間的幹擾以及類似的問題。分析得到的需求結構可用做構造整個系統的基本輸入。分析工作流使用分析模型表達系統的本質。
設計。設計工作流的目的是深入了解與非功能性需求和限制相聯系的程式設計語言、構件使用、作業系統、分布與并發技術、資料庫技術、使用者界面技術和事務管理技術等相關問題。設計工作流把實作工作劃分成更易于管理的各個部分,捕獲早期子系統之間的主要接口,建立對系統實行的無縫抽象。
實作。實作工作流探讨如何用源代碼、腳本、二進制代碼、可執行體等構件來實作系統。實作工作流的目的是規劃每次疊代中所要求的系統內建,通過把可執行構件映射到實施模型中的結點的方式來分布系統,實作設計過程中發現的設計類和子系統,對構件進行單元測試。
測試。測試工作流通過測試每一個構造來驗證實作的結構。測試工作流的目的是規劃每一次疊代需要的測試工作,包括內建測試和系統測試。設計和實作測試,執行各種測試并系統地處理每個測試的結果。
統一過程模型也存在一些缺點:統一過程模型隻是一個開發過程,并沒有涵蓋軟體過程的全部内容,如它在軟體運作和支援等方面的内容略有不足。此外,它不支援多項目的開發結構,這在一定程度上降低了在開發組織内大範圍實作重用的可能性。統一過程模型是一個非常好的開端,但并不完美,在實際的應用中可以根據需要對其進行改進,并可以用其他軟體過程的相關模型對統一過程模型進行補充和完善。