標籤:軟體開發 架構模式 架構分析 概述
架構分析:
架構分析工作主要從宏觀上考慮一個軟體系統應該如何組織。通常,在架構分析工作中,我們需要確定一些策略性的設計方針,原則和基本模式。在它們的指導下,我們可以高屋建瓴地分析軟體系統的宏觀結構,認識軟體系統由哪些組件構成,瞭解組件之間的介面和協作關係。架構分析的結果對於後續的物件導向設計工作也是一種約束,有助於消除設計和實現過程中的隨意性。因此,架構分析有時也被稱為策略設計
組件指的是一組對象構成的,有固定介面的有機體,當設計者的觀察視角不同,組件的規模不同或者組件內部的封裝度程度不同時,這些有機體可能表現為不同的形式,如軟體架構中的層,包或者子系統,架構分析的目的是通過科學的解析,將整個軟體系統劃分為不同的組件,並且準確定義出組件和組件之間的介面
在軟體的實現層面,不同類型的組件,如層,包或者子系統等,也可能有不同的表現形式。例如,它們可以表現為java程式中的一個包,也可以是c++項目中的一個原始碼目錄。在軟體發布和配置時,一個或者對個組件可以串連成一個可執行程式,可以表現為一個動態連結程式庫,也可以表現為ActiveX空間或EJB組件
架構分析的作用:
架構分析工作預先為軟體定義程式了科學的結構和規則,通過這些結構和規則,人們能有效地控制軟體的複雜性,是軟體易於理解實現和管理
好的的軟體架構既可以分析軟體中的不同組件,又可以精確定義組件之間的介面,這可以是軟體系統中大部分組件具備較好的可複用性,同時通過架構分析工作,也可以實現更大範圍的軟體複用,即直接服用那些有代表性的軟體架構
架構分析的結果也是多重專案組進行協作的基礎。在軟體架構有效分離的組件可以被分配給不同的項目組開發,只要保證組件的介面定義不變,組件內部的變化不會對整個系統的繼承產生影響
避免走入功能分解的誤區:
功能分解和物件導向是格格不入的兩種思維方式,功能呢個分解會嚴重妨害對系統組件及組件關係的理解。物件導向分析和設計的基本原則強調對資料和相關操作的封裝,根據這一要求,耦合度強,在邏輯上關係密切的資料以及操作這些資料的方法應該被封裝在同一個類中。如果在物件導向分析之前,就採用功能分解的方法將軟體系統肢解為多個功能模組,那麼操作同一個資料的方法可能被分拆到不同的模組中,不同模組裡的對象也會產生很強的耦合性
子系統設計應該屬於物件導向設計工作的一部分,應該在物件導向分析之後進行。在子系統設計過程中,設計者應該基於物件導向分析的結果來劃分子系統,儘可能避免按功能劃分的做法
架構分析的準備工作
在架構之前應該明白軟體的類型是互動類型的軟體還是系統類別型的軟體。架構分析在軟體的整個生命週期裡是一個迭代的過程,在物件導向分析和物件導向設計等不同的階段中,軟體系統的架構被一步步細化和完善
架構模式:
架構模式就是那些在開發過程中通過積累獲得的,經實踐檢驗行之有效.可複用的軟體架構
軟體開發架構分析和架構模式一