第二章軟件體系結構建模_第1頁
第二章軟件體系結構建模_第2頁
第二章軟件體系結構建模_第3頁
第二章軟件體系結構建模_第4頁
第二章軟件體系結構建模_第5頁
免費預覽已結束,剩余29頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章軟件體系結構的基本概念與建模方法(續)本章內容2.1軟件體系結構的概念及其概念模型2.2軟件體系結構的“4+1視圖”模型2.3軟件體系結構的生命周期模型2.4構件、連接件定義2.5軟件體系結構定義2.6基于UML的軟件體系結構建模方法2.4構件、連接件定義構件是具有一定功能和可明確辯識的軟件單位構件應該具備以下特點:語義完整性、語法正確性和可重用性在結構上,構件是語義描述、通信接口和實現代碼的復合體,是計算和數據存儲單元,是計算與狀態存在的場所典型的構件包括:客戶(Client)構件、服務器(Server)構件、過濾器(Filter)構件和數據庫(Database)構件等2.4構件、連接件定義構件可以小到只有一個過程,也可以大到包含一個應用程序,可以包含函數、對象、進程、二進制對象、類庫和數據包等構件之間是相互獨立的,構件隱藏了其具體實現細節,通過接口來提供服務構件內部包含多種屬性,例如:端口、類型、語義、約束、演化和非功能屬性等2.4構件、連接件定義構件的形式化定義:構件是一個計算和數據存儲單元,由構件接口和構件實現模塊組成。構件接口是構件與外部接觸點的集合,即<Port1,Port2,…,Portn>.每個Port有一個8元組定義<ID,PUBli,

Extei,

Privi,

Behai,

Msgsi,

Consi,

Non-Funci>.元素語義元素語義ID構件標示Behai構件第i個接觸點行為語義描述PUBli構件第i個接觸點能提供給環境或其它構件的功能集合Msgsi構件第i個接觸點所產生消息的集合Extei構件第i個接觸點所需環境或其它構件的功能集合Consi對構件第i個接觸點行為約束,通常包括構件運行的初始條件、前置/后置條件Privi構件第i個接觸點私有屬性集合Non-Funci構件第i個接觸點非功能說明2.4構件、連接件定義構件模型:是指構件的本質特征以及構件間關系的抽象描述。有描述、組裝以及實現等各方面的模型。描述方面的著名模型是3C模型:概念(Concept)主要描述構件“做什么”,用抽象的概念去理解構件的功能;又分為接口規約和語義描述;內容(content)是概念的具體實現,描述構件如何完成概念刻畫的功能;語境(context)是構件和外圍環境在概念級和內容級的關系。2.4構件、連接件定義組裝方面的構件模型:主要有構件接口和特性約束兩方面。構件接口主要描述構件提供給使用者的信息,又分為功能規約和接入點(對應3C的概念和概念級語境)。特性約束主要包括構件自身結構的語法約束、語義模型以及其它方面的服務特性(對應3C中的內容)。2.4構件、連接件定義構件組合應該遵循以下三個原則:使參與組合的構件保持自身的獨立性,從而有利于構件和所形成的復合構件具有更強的復用能力和演化能力構件之間的組合應該由構件以外的實體來實施,例如:連接件,實質上,構件組合就是構件之間的交互,而不是構件服務的簡單羅列構件組合與單個構件分開,意味著構件的交互與計算分離,降低了構件之間的耦合,有利于構件和交互模式的復用2.4構件、連接件定義構件組合應有助于根據參與組合的構件的行為和性質來推導復合構件的行為和性質,從而有助于基于可復用構件的應用系統的開發在軟件體系結構中,連接件是用來建立構件之間交互和支配這些交互規則的構造模塊構件之間的交互包括消息和信號量的傳遞,功能和方法的調用,數據的傳送和轉換,以及構件之間的同步關系和依賴關系等2.4構件、連接件定義常見的連接件有:管道-過濾器體系結構風格中的管道(pipe)、客戶/服務器體系結構風格中的通信協議和通信機制、以及數據庫和應用程序之間的SQL連接等連接件的接口是其所關聯構件的一組交互點,這些交互點被稱為角色角色代表了參與連接的構件的作用和地位,體現了連接所具有的方向性角色有主動和被動、請求和響應之分2.4構件、連接件定義對于構件而言,連接件是粘合劑,是構件交互的實現連接件和構件之間的區別主要在于它們在軟件體系結構中承擔著不同的作用連接件也是一組對象,把不同的構件連接起來,形成體系結構的一部分約束(Constraint)是構件與其關系之間所必須滿足的條件和限制,描述了系統的配置關系和拓撲結構,確定了體系結構調整的構件和連接件的關聯關系2.4構件、連接件定義連接件的主要特性是:可擴展性、互操作性、動態連接性和請求響應性連接件的可擴展性是指:連接件允許動態地改變被關聯的構件集合和交互關系互操作性是指:被連接的構件通過連接件對其它構件進行直接或間接操作動態連接性是指:對連接的動態約束,連接件對所關聯的構件可以實施不同的動態處理請求響應性是指響應的并發性和時序性2.4構件、連接件定義軟件體系結構,又被稱為架構,指可預制和可重構的軟件框架結構構件是可預制和可重用的軟件元素,是組成體系結構的基本計算單元和數據存儲單元連接件也是可預制和可重用的軟件元素,是構件之間的連接單元構件和連接件之間的關系用約束來表示2.4構件、連接件定義約束是基于規則和參數進行描述的體系結構約束提供了相關限制,以確定構件是否正確、連接接口是否匹配、以及連接件的通信是否正確,同時,說明了實現要求行為的語義組合約束將軟件體系結構與系統需求緊密地聯系起來,在體系結構約束中,要求構件端口和連接件角色之間是顯示連接的本章內容2.1軟件體系結構的概念及其概念模型2.2軟件體系結構的“4+1視圖”模型2.3軟件體系結構的生命周期模型2.4構件、連接件定義2.5軟件體系結構定義2.6基于UML的軟件體系結構建模方法2.5軟件體系結構定義軟件體系結構核心模型(SoftwareArchitectureCoreModel)=構件(Components)+連接件(Connectors)+約束(Constraints)構件作為一個封裝的實體,僅通過其接口與外部環境進行交互,而構件的接口是由一組端口組成的,每個端口表示構件與外部環境之間的交互點2.5軟件體系結構定義連接件作為軟件體系結構建模的主要實體,同樣也有接口,連接件的接口是由一組角色構成的,每個角色定義了該連接所表示交互的參與者軟件體系結構::=軟件體系結構核心模型|軟件體系結構風格軟件體系結構核心模型::=(構件,連接件,約束)構件::={端口1,端口2,…,端口N}2.5軟件體系結構定義連接件::={角色1,角色2,…,角色M}約束::={(端口i,角色j),…}軟件體系結構風格::={管道-過濾器,客戶/服務器,倉庫,…}本章內容2.1軟件體系結構的概念及其概念模型2.2軟件體系結構的“4+1視圖”模型2.3軟件體系結構的生命周期模型2.4構件、連接件定義2.5軟件體系結構定義2.6基于UML的軟件體系結構建模方法2.6基于UML的軟件體系結構建模方法在描述軟件的框架結構時,常用的方法主要有兩種:實踐派風格,使用通用的建模符號,將軟件體系結構設計與描述同傳統的系統建模視為一體學院派風格,使用了體系結構描述語言(ArchitectureDescriptionLanguage,ADL),側重于軟件體系結構形式化理論的研究2.6基于UML的軟件體系結構建模方法實踐派風格包括:圖形表示方法、模塊內連接語言、基于構件的系統描述語言和UML描述方法圖形表示方法,使用矩形來代表系統的過程、模塊和子系統,利用有向線段來描述它們之間的關系,這樣,就形成了所謂的線框圖模塊內連接語言,采用一種或幾種程序設計語言的模塊連接起來的模塊內連接語言,具有程序設計語言的嚴格語義基礎,但是,在開發層次上過于依賴程序設計語言,限制了處理和描述高層次軟件體系結構元素的能力2.6基于UML的軟件體系結構建模方法基于構件的系統描述語言,將軟件描述成由許多特定形式、相互作用的特殊實體所形成的組織或系統,一般而言,這種描述方法都是針對特定領域的特殊問題,不太適合描述和表達一般意義上的軟件體系結構UML描述方法,可以將Kruchten的“4+1”模型映射到UML圖上,邏輯視圖利用類圖來表示,過程視圖映射成活動圖,開發視圖使用構件圖來描述,物理視圖映射為配置圖,場景用順序圖和協作圖來表示2.6基于UML的軟件體系結構建模方法用例圖是從用戶的角度來描述系統功能,指出各功能的操作者,用于捕獲業務需求類圖描述了系統中類的靜態結構,定義了類的內部結構以及類之間的關聯關系包圖描述了系統的層次結構,用于捕獲系統的邏輯結構活動圖描述了滿足用例要求所要進行的活動以及活動之間的約束關系合作圖描述對象之間的協作,顯示對象之間的動態合作關系2.6基于UML的軟件體系結構建模方法順序圖描述對象之間的動態合作關系,強調對象之間的消息發送順序,顯示對象之間的交互關系狀態圖描述了一類對象所具有的可能狀態及狀態之間的轉移關系組件圖描述了程序代碼的物理結構配置圖定義了軟、硬件的物理體系結構,用于捕獲系統硬件資源和軟件資源之間的映射關系2.6基于UML的軟件體系結構建模方法2.6基于UML的軟件體系結構建模方法在使用UML描述體系結構時,主要存在著三種途徑:不改變UML的用法,將UML看作是一種軟件體系結構描述語言,直接對體系結構進行建模利用UML的擴展機制,約束UML元模型以支持體系結構建模需求對UML元模型進行擴充,增加體系結構建模元素,這種方法是對UML的元模型進行擴展,使UML具有新的建模能力2.6基于UML的軟件體系結構建模方法對于每種體系結構元素,在UML中幾乎都能找到與之相對應的元素:UML的用例、類、組件、結點、包和子系統與體系結構中的構件相對應UML的關系支持體系結構中的連接件UML的接口支持體系結構中的接口UML中的規則相當于體系結構中的約束軟件體系結構的配置可以使用UML的包圖、組件圖和配置圖來描述2.6基于UML的軟件體系結構建模方法UML預定義及用戶自己擴展的構造型,例如:精化和復制等,能夠較好地表達體系結構的行為邏輯視圖可以采用UML用例圖來實現在開發視圖中,使用UML的類圖、對象圖和構件圖來表示模塊,用包來表示子系統,利用連接表示模塊或子系統之間的關聯過程視圖可以采用UML的狀態圖、順序圖和活動圖來實現2.6基于UML的軟件體系結構建模方法物理視圖定義了功能單元的分布狀況,描述用于執行用例和保存數據的業務地點,可以使用UML的配置圖來實現在選擇UML來描述軟件體系結構時,會有以下幾方面的優點:UML是當前主流的面向對象開發語言,已經被越來越多的人所采用,容易被人們接受UML是一個開發標準,具有良好的擴展機制2.6基于UML的軟件體系結構建模方法UML引入了形式化定義(對象約束語言),是一種半形式化的建模語言UML有豐富的支持工具,與程序設計語言和開發過程無關UML支持多視圖結構,能夠從不同角度來刻畫軟件體系結構,可以有效地用于分析、設計和實現過程UML提供了豐富的建模概念和表示符號,能夠滿足典型的軟件開發過程UML的語義比較豐富,是一種通用和標準的建模語言,易于理解和交流,發展已經非常成熟2.6基于UML的軟件體系結構建模方法在選擇UML來描述軟件體系結構時,也存在著一些問題:對體系結構的構造性建模能力不強,具體來說,UML還缺乏對體系結構風格和顯式連接件的直接支持對體系結構的描述只能到達非形式化的層次,不能保證軟件開發過程的可靠性,不能充分地表現軟件體系結構的本質2.6基于UML的軟件體系結構建模方法基于UML的軟件體系結構(UML-BasedSoftwareArchitecture,UBSA),是由一組互相協作的組件構成通過組件及其之間的協作關系來定義軟件系統的體系結構在UBSA中,通過擴展點(ExtensionPoints)來組裝用戶開發的組件,以適應用戶需求領域的不斷變化2.6基于UML的軟件體系結構建模方法UBSA={Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論