版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
提綱最早軟件構架的提出構架的概念構架模式、參考模型和參考構架構架為何如此重要構架結構和視圖1.最早的軟件構架最早在軟件開發領域,構架(Architecture)這個詞用來指適用于多個系統的計算機系統的描述1969年,FredBrooks和KenInverson把構架描述為“程序員所看到的….計算機的概念結構”。之前,Blaauw最先提出構架一詞,他認為“構架說明了做什么,而系統實現說明了怎么做”從這些描述中我們可以看到,構架實際上是同類系統的抽象1.1Parnas提出的關于構架的原則70年代,DavidParnas對軟件構架的許多基本原則進行了深入研究,包括:信息隱藏原則[Parnas72]關于只允許通過接口使用元素的原則[72]強調對軟件系統中的不同結構進行考察,不得混淆這些結構[74]在基于組件開發的系統中錯誤處理和檢驗的原則[72,76]1.1Parnas提出的關于構架的原則將每個程序都看作是某個程序族中的一員[Parnas76]認識到系統的結構影響到系統的質量[76]引入使用結構,該原則控制各元素之間的連接,以增強系統的可擴展性[79]Parnas等人的工作為軟件構架理論的建立創造了基礎2軟件構架的概念下面是一個水下聲學模擬系統的簡單線框圖描述,這個圖是系統的構架嗎?我們從中得到了什么?又有哪些我們所關心的問題我們并不能從中知曉
控制處理(CP)
特征損失模型(MODP)回響模型(MODR)噪音模型(MODN)2.1構架的引入我們無法從上面的圖形獲取的信息這些元素本身的實質是什么?這些元素在系統中的作用又是什么?圖中的連線代表什么意義?各個元素在圖中的分布意義是什么,或者說他們的層次關系是什么?我們都無法從該線框圖上了解,因此,這不是一個完整的構架2.2構架的各種定義構架的定義大體上可以分為兩大類:決策派的定義 一組決策的集合組成派的定義 元素+元素的關系2.2.1決策派定義的代表Booch、Rumbaugh和Jacobson的定義
構架是一系列重要決策的集合,這些決策與以下內容相關:軟件的組織、構成系統的結構元素及其接口的選擇,這些元素在相互協作中明確表現的行為,這些結構元素和行為元素進一步組合所構成的更大規模的子系統,以及如何組織這些元素Woods的定義
軟件構架是一系列設計決策,如果作了不正確的決策,你的項目可能最終會被取消2.2.2組成派定義的代表Garlan和Shaw的定義
構架包括組件(Component)、連接器(Connector)和約束(Constrain)三大要素Boehmn的定義
軟件構架包括系統組件、連接件和約束的集合,反映不同涉眾需求的集合和原理的集合IEEE620.12-1990定義
構架是以組件、組件之間的關系、組件與環境之間的關系為內容的某一系統的基本組織結構,以及指導上述內容設計與演化的原理2.2.3本書的定義某個軟件或計算機系統的軟件構架是該系統的一個或多個結構,他們由軟件元素,這些元素之間的外部可見屬性和這些元素之間的關系組成這個概念闡述了以下幾方面的意義2.2.4構架概念的展開構架定義了軟件元素 構架中包含了關于各個元素如何彼此相關的信息,但省略了各個元素中與交互無關的信息,因此不考慮元素的細節,對系統進行了抽象系統可能而且確實由多個結構組成,但其中的任何一個結構都不等同于構架 構架中的不同結構有不同的側重點,有些考慮功能的分解,有些考慮元素在運行時的交互關系等等
2.2.4.1構架的邏輯結構2.2.4.2構架的物理結構2.2.4構架概念的展開具有軟件的每個計算機系統都有一個軟件構架 每個系統都具有元素及其之間的交互,因此都具有構架,但是,并不是所有的人都能夠知道這個構架的存在某個元素的行為可以從其它元素的角度觀察到或區分開,則這個元素的行為就是構架的內容構架的定義中并沒有包含對構架的評價3.構架模式、參考模型和
參考構架在粗略的線框骨架和包含完整信息的系統構架之間,還有很多中間階段。每個階段都是執行一組構架決策的結果三個模型構架模式參考模型參考構架3.1構架模式構架模式是對元素、元素之間關系以及一組對其使用方式的限制的描述 我們可以把構架模式看作是對構架的一組制約條件——即對各元素類型及其交互模式的限制條件,而這些制約條件確定了一組或一系列能滿足他們要求的構架 構架模式最重要的作用是它們展示了已知的質量屬性3.1.1客戶服務器-構架模式電子商務網站3.1.2客戶服務器-構架模式門戶網站3.1.3客戶服務器-構架模式搜索引擎網站3.2參考模型參考模型是一種考慮數據流的功能劃分 參考模型對已知問題進行分解,分解得到的各個部分相互協作,構成問題的解決方案網絡參考模型3.3參考構架參考構架是映射到軟件元素及元素之間數據流上的參考模型 參考模型實現了系統的功能劃分,而參考構架則將這種功能劃分與系統分解對應起來,這種對應一般是一一對應關系,也可能不是參考模型構架模式參考構架軟件構架模型之間的關系4.軟件構架為和如此重要我們可以從技術的角度討論軟件構架的重要性構架是涉眾之間交流的手段構架是系統的早期設計決策構架是可傳遞的系統抽象4.1構架是涉眾交流的手段涉眾(Stakeholder):我們把與構建軟件系統相關的人員稱為涉眾軟件系統的各個涉眾——客戶、最終用戶、市場營銷人員,項目經理、程序員、維護人員以及構架設計師,他們站在不同的角度考慮系統4.1.1構架起到交流作用這些涉眾之間具有不同的知識結構,他們如何對同一系統進行交流討論?如何相互理解彼此的意思?用自然語言?程序語言還是圖形?構架提供了一種共同的語言,有關各方可借助它表達和協商各自的需求,并理性地找到解決方案4.2構架是早期設計決策的體現構架明確了對系統實現的約束條件構架決定了開發組織的組織結構架阻止或支持系統的質量屬性的實現通過研究構架可以預測系統的質量構架使推理判斷和控制更改更簡單構架有助于循序漸進的原型設計可以通過構架進行更準確的成本和進度估計4.2.1構架明確了對系統實現的約束條件系統實現應該體現構架設計的特色,在設計構架時首先應該考慮到構架的約束條件比如,系統會運行在什么樣的資源環境下,獨立的PC機,手機還是分布式系統硬件環境是一個約束條件4.2.2構架決定了開發組織的組織結構構架不僅規定了所開發軟件系統的結構,而且也影響著項目開發的組織結構建立工作分解結構的一個副作用是,它限定了軟件構架的某些方面,比如更改工作小組系統由不同組件構成4.2.3架阻止或支持系統的質量屬性的實現為了支持高可靠性系統,通常采用冗余體系結構為了支持可修改性,會使用分層結構,而這又會阻止高性能的實現帶有冗余功能的軟件結構4.2.4構架使推理判斷和控制更改更簡單軟件系統的成本大約有80%會花費在初次部署之后的維護階段好的構架使修改更加容易,每個構架的修改可以分為:本地的、非本地的和構架上的,我們應將系統的修改控制在最容易修改的地方4.2.5構架有助于循序漸進的原型設計一旦確定了構架,就可以對其進行分析,并將其原型構造為一個骨架系統在產品生命的早期就能得到一個可執行的系統,以后使用使用結構對系統進行擴充使系統在早期可執行的一個特例就是在產品生命期的早期確定潛在的需求問題4.2.6可以通過構架進行更準確的成本和進度估計成本和進度估計是一個重要的管理工具,它能夠使管理人員獲得必要的資源并了解項目開發中是否遇到困難。與了解整個系統相比,了解系統的某些部分本質上可以使成本和進度的估計更加準確4.3構架是可傳遞、可重用的模型構架的重用為開發組織帶來巨大的效益產品線共享一個公共的構架系統開發可以使用大型的由其它組織開發的元素在一定的范圍內限制,使構架可以獲得更廣泛的重用構架使基于模板的開發成為可能構架可以作為培訓的基礎4.3.1產品線共享一個公共的構架軟件產品線或家族是一組軟件密集型系統,這些系統共享一個公共的、可管理的特性集,滿足了特定市場或任務的具體需要,是按照規定的方式根據一組公共的核心資產開發的在這些核心資產中,主要部分就是設計用來處理整個家族需要的構架微軟的Windows操作系統是很好利用產品線開發的例子4.3.2系統開發可以使用大型的由其它組織開發的元素基于構架的開發強調各元素的組合或裝配,而這些元素很可能已分別甚至是完全獨立地開發實現了商業組件、子系統、兼容的通信結構都是基于互換性原則的各種可互換使用的Grid組件4.3.3少就是多,限制構架選擇范圍盡管計算機程序可以無限組合,但涉及到程序的協調和交互時,有意識地限制選擇可以得到更多的重用比如采用客戶機\服務器模式,可以產生各種不同的實際系統4.3.4構架可以作為培訓的基礎在對項目新成員介紹所開發的系統時,可以首先介紹系統的構架,以及對組件之間如何交互從而實現系統需求的高層次描述,這可以更好地培訓新成員5.構架結構和視圖現代的軟件系統非常復雜,我們很難一下子就理解他們。正確的做法是任何時刻我們只關注軟件系統的一個或幾個結構。這正如不同的醫生關注病人的不同部分視圖是構架元素內聚集的表述,由系統涉眾編寫和閱讀,它由一個元素集合表示和元素之間的關系組成,用于表示構架中的某個結構從不同角度看到的人體視圖5.1構架結構結構——結構是元素本身的集合,他們存在于軟件和硬件中,比如,模塊結構是系統的模塊和其組織的結構,模塊視圖是該結構的表示構架結構根據元素的主要特性可以分為三類模塊結構組件—連接器結構分配結構5.2軟件結構常見的軟件構架結構模塊分解類使用分層組件-連接器客戶機/服務器共享數據并發進程分配工作分配實現部署5.2.1模塊結構模塊結構的元素是模塊,模塊表示一種考慮系統的基于功能的劃分模塊結構要回答的問題:分配給每個模塊的主要功能責任允許模塊使用的其它軟件元素它實際使用的其它軟件是什么什么模塊通過泛化和特化(類的繼承)關系與其它模塊相關5.2.1.1分解結構基于模塊的結構包括如下內容:分解結構(任務分解) 分解結構通過“是一個子模塊”的關系將彼此關聯起來,它展示了如何將大的模塊分解為小模塊,直到很容易理解為止 該方法適用于資源分配、項目結構化和規劃,信息隱藏等5.2.1.2使用結構使用結構(調用關系) 使用結構也是模塊、過程或模塊結構上的資源,這些單元通過“使用”關系彼此關聯 該結構單元用于設計子集、設計擴展等,便于系統的增量式開發 比如,我們為一個系統設計數據處理,我們可能有很多處理被調用,但開始時我們只完成有限的實際處理單元,然后再擴展5.2.1.3分層結構分層結構(特殊的使用關系)
當以一種特定的方式小心地控制該結構中的使用關系時,就出現了由層組成的系統,在該系統中,一個層就是相關功能的一個一致的集合。在一個嚴格的分層結構中,第n層只能使用第n-1層提供的服務 分層結構適用于增量式開發,在“虛擬機”上實現可移植性,操作系統多采用分層結構5.2.1.5類結構類或泛化
該結構中的模塊單元是類,關系是“繼承自”或“是一個實例” 該結構適用于面向對象的編程中,從一個公共的模板中產生快速的、相近的實現5.2.2組件——連接器結構該結構的元素是運行時的組件和連接器該結構回答如下問題:什么是主要的執行組件,它們之間如何交互什么是主要的共享數據存儲數據在系統中經過了哪些地方系統的哪些部分可以并行運行系統執行時,其結構可能發生的變化5.2.2.1進程或通信進程進程或通信進程 此處的單元為通過通信、同步和/或排除操作將彼此相連的進程或線程 該結構用于調度分析;性能分析等順序圖5.2.2.2并發并發 該結構能夠使設計師確定并行的機會以及可能出現的資源爭用的位置 單元是組件,連接器是“邏輯線程” 其適用于確定存在資源爭用,線程交叉、連接、被創建或被殺死的位置活動圖5.2.2.3共享數據或存貯庫共享數據或存貯庫 該結構由創建、存儲和訪問持久數據的組件和連接器組成 該結構展示了軟件元素如何產生數據和使用數據,可以使用該結構確保良好的性能和數據完整性5.2.2.4客戶機/服務器客戶機/服務器 組件是客戶機和服務器,連接器是協議以及它們共享來執行系統工作的消息 該結構適用于關注點的分離(支持可修改性)、物理分布和負載平衡5.2.3分配結構分配結構展示了軟件元素,創建并執行軟件的一個或多個外部環境中的元素之間的關系它回答如下問題:每個軟件元素在什么處理器上執行在開發、測試和系統構建期間,每個元素都存儲在什么文件中分配給開發小組的軟件元素是什么5.2.3.1部署結構部署 該結構展示了如何將軟件分配給硬件處理和通信元素 該結構的元素是軟件、硬件和通信路徑;關系是“分配給”和“移植到” 該結構用于工程人員對性能、數據完整性、可用性和安全性進行推斷5.2.3.2實現結構實現 該結構展示了軟件元素是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站應急救援預案
- 學生食堂廚師長崗位職責
- (2026)度零售定點藥店醫保培訓考核考試題庫及答案
- 醫務人員職業暴露考試試卷及答案
- 二次結構及裝修施工方案技術交底
- 2026年醫師定期考核通關題庫含答案詳解(綜合卷)
- 面試題及答案2021
- 初中化學常見實驗注意事項
- 公路工程竣(交)工驗收辦法
- 企業年金發展現狀與發展趨勢
- 《豬生產》課程標準
- 高一入學分班考試-數學試題含答案
- 華為光傳送網(OTN)G.709培訓教材
- 2021年全國普通高等學校體育單招真題英語(含答案解析)
- 上海市黃浦區2023年中考語文一模試卷附答案
- GB/T 3623-2022鈦及鈦合金絲
- GB/T 6887-2019燒結金屬過濾元件
- GB/T 20051-2006無動力類游樂設施技術條件
- GB/T 13542.6-2006電氣絕緣用薄膜第6部分:電氣絕緣用聚酰亞胺薄膜
- CB/T 3768-1996方形導纜孔
- 貴州省安順市各縣區鄉鎮行政村村莊村名明細及行政區劃劃分代碼居民村民委員會
評論
0/150
提交評論