《軟體工程方法與實踐》 3 4 物件導向模型

2021-09-23 16:47:58 字數 2669 閱讀 4611

3.4.1 構件整合模型

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

基於構件的開發活動從標識候選構件開始,通過搜查已有構件庫,確認所需要的構件是否已經存在。如果已經存在,則從構件庫中提取出來重用,否則採用物件導向方法開發它。之後利用提取出來的構件通過語法和語義檢查後將這些構件通過膠合**組裝到一起實現系統,這個過程是迭代的。基於構件的開發方法使得軟體開發不再一切從頭開發,開發的過程就是構件組裝的過程,維護的過程就是構件公升級、替換和擴充的過程。其優點是構件整合模型導致了軟體的重用,提高了軟體開發的效率。

由於採用自定義的組裝結構標準,缺乏通用的組裝結構標準,這樣就引入了比較大的風險。可重用性和軟體高效性不容易協調,這就需要比較有開發經驗的開發人員,而一般的開發人員很難開發出令客戶滿意的軟體。由於過分依賴於構件,所以構件庫的質量影響著產品質量。

構件整合模型融合了螺旋模型的很多特徵,支援軟體開發的迭代方法。這種面向重用的過程模型,最明顯的優勢是減少了需要開發的軟體數量,加快了軟體交付,從而降低了開發成本,同時降低了開發風險。當然,它的成功主要是依賴與可以訪問的可重用軟體構件,以及能整合這些軟體構件的框架。

3.4.2 統一過程模型

統一過程模型(unified process,up)是風險驅動的、基於用例技術的、以架構為中心的、迭代的、可配置的軟體開發流程。up是乙個物件導向且基於網路的程式開發方**。根據rational rose和統一建模語言的開發者的說法,它可以為所有方面和層次的程式開發提供指導方針、模板以及用例支援。

統一過程模型是乙個軟體開發過程,是乙個通用的過程框架,可以用於各類軟體系統和應用領域。統一過程模型是在重複一系列組成系統生存週期的迴圈。每一次迴圈包括4個階段:初始、細化、構造和移交,每個階段又進一步細分為多次迭代的過程,如圖3-5所示。每次迴圈迭代會產生乙個新的版本,每個版本都是乙個準備交付的產品。

初始階段。在初始階段將乙個好的想法發展為最終產品的乙個構想,提出了該產品的業務例項。該階段要完成:系統向它的每個重要使用者提供的基本功能是什麼?該系統的邏輯架構大概是什麼樣子?開發該產品的計畫如何?開銷多大?在該階段主要建立關鍵用例的簡化用例模型,用於刻畫系統主要功能。架構是實驗性的,通常包括主要子系統的大致輪廓。要確定最主要的風險及其優先次序,對細化階段進行詳細規劃,並對專案進行粗略估算。

細化階段。在細化階段,詳細說明該系統的絕大多數用例,並設計出系統的架構。架構可以表示為系統中所有模型的不同檢視,合起來表示整個系統,即架構包括用例模型、分析模型、設計模型、實現模型和實施模型的檢視。在細化階段末期,要規劃完成專案的活動,估算完成專案所需的資源。關鍵問題是用例、架構和計畫是否足夠穩定、可靠,風險是否得到控制,以便按照合同的規定完成整個開發任務。該階段的結果是架構基線。

構造階段。構造階段將構造出最終產品—軟體。在該階段,架構基線逐步發展成為完善的系統,將消除所需要的大部分資源,架構可以進行微調,但系統架構是穩定、可靠的。要回答的問題是早期交付給客戶的產品是否完全滿足使用者的需求。

統一過程模型在定義4個階段及其迭代過程時,又給出了5個核心工作流:需求、分析、設計、實現和測試。每個工作流在各個階段所處的地位和工作不同。圖3-6給出了統一過程模型的核心工作流。

需求。需求工作流的目的是致力於開發正確的系統。需求工作流要求足夠詳細地描述系統需求,使客戶和開發人員在系統應該做什麼、不應該做什麼方面達到共識。

分析。分析工作流的目的是更精確地理解需求,也是為了得到乙個易於維護且有助於確定系統結構的需求描述。與需求工作流相比,分析工作流可以使用開發人員的語言來描述和組織。需求捕獲階段的需求,**系統內部,解決用例間的干擾以及類似的問題。分析得到的需求結構可用做構造整個系統的基本輸入。分析工作流使用分析模型表達系統的本質。

設計。設計工作流的目的是深入理解與非功能性需求和約束相聯絡的程式語言、構件使用、作業系統、分布與併發技術、資料庫技術、使用者介面技術和事務管理技術等相關問題。設計工作流把實現工作劃分成更易於管理的各個部分,捕獲早期子系統之間的主要介面,建立對系統實行的無縫抽象。

實現。實現工作流**如何用源**、指令碼、二進位制**、可執行體等構件來實現系統。實現工作流的目的是規劃每次迭代中所要求的系統整合,通過把可執行構件對映到實施模型中的結點的方式來分布系統,實現設計過程中發現的設計類和子系統,對構件進行單元測試。

測試。測試工作流通過測試每乙個構造來驗證實現的結構。測試工作流的目的是規劃每一次迭代需要的測試工作,包括整合測試和系統測試。設計和實現測試,執行各種測試並系統地處理每個測試的結果。

統一過程模型也存在一些缺點:統一過程模型只是乙個開發過程,並沒有涵蓋軟體過程的全部內容,如它在軟體執行和支援等方面的內容略有不足。此外,它不支援多專案的開發結構,這在一定程度上降低了在開發組織內大範圍實現重用的可能性。統一過程模型是乙個非常好的開端,但並不完美,在實際的應用中可以根據需要對其進行改進,並可以用其他軟體過程的相關模型對統一過程模型進行補充和完善。

軟體工程 理論 方法與實踐 之 物件導向設計

軟體工程 理論 方法與實踐 之 面相物件設計 在面相物件分析階段,需要著重考慮的是系統做什麼,而在設計階段,將集中研究系統的軟體實現問題,包括體系結構設計 詳細設計 使用者介面設計和資料庫設計等。對於大型複雜系統而言,軟體體系結構設計顯得尤為重要,它的好壞往往會成為乙個系統設計成敗的關鍵。通常,軟體...

軟體工程 物件導向方法學

question 組合語言編寫程式,高階語言的結構化程式設計和物件導向程式設計之間的比較 根本目標 實現工業化,自動化,批量生成 組合語言,接近機器語言 面對物件 物件 類 繼承 計算機處理實體物件 面對物件方法 這裡的物件是指,資料以及可以加工這些資料之上的操作所構成的統一體。結構化的方法 通過物...

《軟體工程方法與實踐》 2 5 軟體工程活動

在軟體工程的概念被提出來之前,開發人員錯誤地認為,軟體就是開發活動,或者極端地認為其就是編碼,至於分析和設計等都是次要的。隨著軟體規模的不斷增大,軟體開發活動中暴露出很多問題。軟體工程是為克服這些問題而被提出,並在實踐中不斷地探索它的原理 技術和方法。軟體工程的工程化思想讓開發人員看到,軟體工程活動...