版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 軟件體系結(jié)構(gòu)建模,本章內(nèi)容,2.1軟件體系結(jié)構(gòu)建模概述 2.2軟件體系結(jié)構(gòu)模型 2.3軟件體系結(jié)構(gòu)的形式化描述 2.4軟件體系結(jié)構(gòu)的生命周期 2.5軟件體系結(jié)構(gòu)的建模語言 2.6基于軟件體系結(jié)構(gòu)的開發(fā),2.1軟件體系結(jié)構(gòu)建模概述,模型是對(duì)現(xiàn)實(shí)問題的邏輯抽象,能夠從某些側(cè)面來顯示系統(tǒng)的重要性質(zhì),忽略其相關(guān)細(xì)節(jié) 軟件體系結(jié)構(gòu)建模,就是建立軟件體系結(jié)構(gòu)模型的方法和過程 軟件體系結(jié)構(gòu)模型以具體的形式來表現(xiàn)系統(tǒng)的框架結(jié)構(gòu) 軟件體系結(jié)構(gòu)模型能夠幫助人們從全局的角度來把握整個(gè)系統(tǒng)的框架結(jié)構(gòu),2.2軟件體系結(jié)構(gòu)模型,不同的風(fēng)險(xiǎn)承擔(dān)者有著不同的軟件質(zhì)量屬性需求,他們所關(guān)注的問題是不相同的 不同的人從框架
2、結(jié)構(gòu)中所獲取的信息也是不相同的,所以,軟件體系結(jié)構(gòu)模型應(yīng)該是多維的,而不是一種單一的結(jié)構(gòu) 軟件體系結(jié)構(gòu)模型分為5種:結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過程模型和功能模型,2.2軟件體系結(jié)構(gòu)模型,結(jié)構(gòu)模型:以構(gòu)件、連接件及其之間的關(guān)聯(lián)關(guān)系為基礎(chǔ)來刻畫系統(tǒng)的框架結(jié)構(gòu),力圖通過結(jié)構(gòu)來反映系統(tǒng)的語義 框架模型:框架模型與結(jié)構(gòu)模型很類似,但是,它不太側(cè)重框架的細(xì)節(jié),而是更多地考慮了系統(tǒng)的整體結(jié)構(gòu) 動(dòng)態(tài)模型:動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)模型和框架模型的補(bǔ)充,描述系統(tǒng)的“大顆粒”行為特性,例如:系統(tǒng)的重新配置和重新演化,2.2軟件體系結(jié)構(gòu)模型,過程模型:說明構(gòu)造系統(tǒng)的步驟和過程,過程模型以某種過程腳本的形式來體現(xiàn) 功能模型
3、:該模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成的,下層構(gòu)件向上層構(gòu)件提供服務(wù),可以看作是一種特殊的框架模型 5種模型各有所長(zhǎng),只有將5種模型有機(jī)地結(jié)合起來,才能形成一個(gè)完整的模型來刻畫軟件的框架結(jié)構(gòu),2.2軟件體系結(jié)構(gòu)模型,“4+1”視圖模型,2.2軟件體系結(jié)構(gòu)模型,邏輯視圖,也稱概念視圖,主要是支持系統(tǒng)功能需求的抽象描述,即系統(tǒng)最終將提供給用戶什么樣的服務(wù),邏輯視圖描述了系統(tǒng)的功能需求及其之間的相互關(guān)系 開發(fā)視圖,也稱模塊視圖,主要側(cè)重于描述系統(tǒng)的組織,與邏輯視圖密切相關(guān),都描述了系統(tǒng)的靜態(tài)結(jié)構(gòu) 過程視圖,主要側(cè)重于描述系統(tǒng)的動(dòng)態(tài)行為,即系統(tǒng)運(yùn)行時(shí)所表現(xiàn)出來的相關(guān)特性,著重解決系統(tǒng)的可靠性、
4、吞吐量、并發(fā)性、分布性和容錯(cuò)性,2.2軟件體系結(jié)構(gòu)模型,物理視圖,描述如何把系統(tǒng)軟件元素映射到硬件上,通常要考慮系統(tǒng)的性能、規(guī)模和容錯(cuò)等問題,展示了軟件在生命周期的不同階段中所需要的物理環(huán)境、硬件配置和分布狀況 場(chǎng)景視圖,場(chǎng)景是用戶需求和系統(tǒng)功能實(shí)例的抽象,設(shè)計(jì)者通過分析如何滿足每個(gè)場(chǎng)景所要求的約束來分析軟件的體系結(jié)構(gòu) 邏輯視圖定義了系統(tǒng)的目標(biāo),開發(fā)視圖和過程視圖提供了詳細(xì)的系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)方案,物理視圖解決了系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、安裝和通信問題,場(chǎng)景反映了完成上述任務(wù)的組織結(jié)構(gòu),2.2軟件體系結(jié)構(gòu)模型,“4+1”視圖模型的不足: “4+1”視圖不能體現(xiàn)體系結(jié)構(gòu)的構(gòu)造是多層次抽象的過程,不能充分表達(dá)系統(tǒng)
5、的體系結(jié)構(gòu)風(fēng)格 數(shù)據(jù)作為系統(tǒng)的重要組成部分,在“4+1”視圖中沒有得到充分地體現(xiàn) “4+1”視圖不能充分地反映系統(tǒng)要素之間的聯(lián)系,例如:構(gòu)件、功能和角色之間的關(guān)聯(lián) 在實(shí)現(xiàn)體系結(jié)構(gòu)模型時(shí),缺乏構(gòu)造視圖和建立視圖之間關(guān)系的指導(dǎo)信息,2.2軟件體系結(jié)構(gòu)模型,軟件體系結(jié)構(gòu)模型分解為三類視圖:模塊視圖、組件-連接件視圖和分配視圖 模塊視圖描述的是每個(gè)模塊的功能和模塊之間的相互關(guān)系,在模塊視圖下,又包括:分解視圖、使用視圖、分層視圖和類視圖等多個(gè)子視圖 分配視圖反映了軟件元素在創(chuàng)建環(huán)境和執(zhí)行環(huán)境中的分配關(guān)系,在分配視圖下,又包括:部署視圖、實(shí)現(xiàn)視圖和工作分配視圖等多個(gè)子視圖,2.2軟件體系結(jié)構(gòu)模型,在組件
6、-連接件視圖中,組件是計(jì)算的主要單元,連接件是組件之間相互通信的工具,組件根據(jù)其接口定義其所提供和需要的操作,而連接件則封裝了兩個(gè)或多個(gè)組件之間的互連協(xié)議,在組件-連接件視圖下,又包括:進(jìn)程視圖、并發(fā)視圖和共享數(shù)據(jù)視圖等多個(gè)子視圖 各種視圖為軟件質(zhì)量屬性的實(shí)現(xiàn)提供了依據(jù),同時(shí),軟件質(zhì)量屬性的實(shí)現(xiàn)最終也要在各個(gè)視圖中得以體現(xiàn),各種視圖構(gòu)成了一個(gè)有機(jī)的整體,從不同的側(cè)面來描述軟件體系結(jié)構(gòu)模型,2.3軟件體系結(jié)構(gòu)的形式化描述,軟件體系結(jié)構(gòu),又被稱為架構(gòu),指可預(yù)制和可重構(gòu)的軟件框架結(jié)構(gòu) 構(gòu)件是可預(yù)制和可重用的軟件元素,是組成體系結(jié)構(gòu)的基本計(jì)算單元和數(shù)據(jù)存儲(chǔ)單元 連接件也是可預(yù)制和可重用的軟件元素,是構(gòu)
7、件之間的連接單元 構(gòu)件和連接件之間的關(guān)系用約束來表示,2.3軟件體系結(jié)構(gòu)的形式化描述,軟件體系結(jié)構(gòu)核心模型(Software Architecture Core Model)=構(gòu)件(Components)+連接件(Connectors)+約束(Constraints) 構(gòu)件作為一個(gè)封裝的實(shí)體,僅通過其接口與外部環(huán)境進(jìn)行交互,而構(gòu)件的接口是由一組端口組成的,每個(gè)端口表示構(gòu)件與外部環(huán)境之間的交互點(diǎn),2.3軟件體系結(jié)構(gòu)的形式化描述,連接件作為軟件體系結(jié)構(gòu)建模的主要實(shí)體,同樣也有接口,連接件的接口是由一組角色構(gòu)成的,每個(gè)角色定義了該連接所表示交互的參與者 軟件體系結(jié)構(gòu):=軟件體系結(jié)構(gòu)核心模型|軟件體系
8、結(jié)構(gòu)風(fēng)格 軟件體系結(jié)構(gòu)核心模型:=(構(gòu)件,連接件,約束) 構(gòu)件:=端口1,端口2,端口N,2.3軟件體系結(jié)構(gòu)的形式化描述,連接件:=角色1,角色2,角色M 約束:=(端口i,角色j), 軟件體系結(jié)構(gòu)風(fēng)格:=管道-過濾器,客戶/服務(wù)器,倉庫,,2.3軟件體系結(jié)構(gòu)的形式化描述,軟件體系結(jié)構(gòu)的形式化描述,2.3軟件體系結(jié)構(gòu)的形式化描述,構(gòu)件是具有一定功能和可明確辯識(shí)的軟件單位 構(gòu)件應(yīng)該具備以下特點(diǎn):語義完整性、語法正確性和可重用性 在結(jié)構(gòu)上,構(gòu)件是語義描述、通信接口和實(shí)現(xiàn)代碼的復(fù)合體,是計(jì)算和數(shù)據(jù)存儲(chǔ)單元,是計(jì)算與狀態(tài)存在的場(chǎng)所 典型的構(gòu)件包括:客戶(Client)構(gòu)件、服務(wù)器(Server)構(gòu)件、
9、過濾器(Filter)構(gòu)件和數(shù)據(jù)庫(Database)構(gòu)件等,2.3軟件體系結(jié)構(gòu)的形式化描述,構(gòu)件可以小到只有一個(gè)過程,也可以大到包含一個(gè)應(yīng)用程序,可以包含函數(shù)、對(duì)象、進(jìn)程、二進(jìn)制對(duì)象、類庫和數(shù)據(jù)包等 構(gòu)件之間是相互獨(dú)立的,構(gòu)件隱藏了其具體實(shí)現(xiàn)細(xì)節(jié),通過接口來提供服務(wù) 構(gòu)件內(nèi)部包含多種屬性,例如:端口、類型、語義、約束、演化和非功能屬性等,2.3軟件體系結(jié)構(gòu)的形式化描述,構(gòu)件組合應(yīng)該遵循以下三個(gè)原則: 使參與組合的構(gòu)件保持自身的獨(dú)立性,從而有利于構(gòu)件和所形成的復(fù)合構(gòu)件具有更強(qiáng)的復(fù)用能力和演化能力 構(gòu)件之間的組合應(yīng)該由構(gòu)件以外的實(shí)體來實(shí)施,例如:連接件,實(shí)質(zhì)上,構(gòu)件組合就是構(gòu)件之間的交互,而不是
10、構(gòu)件服務(wù)的簡(jiǎn)單羅列 構(gòu)件組合與單個(gè)構(gòu)件分開,意味著構(gòu)件的交互與計(jì)算分離,降低了構(gòu)件之間的耦合,有利于構(gòu)件和交互模式的復(fù)用,2.3軟件體系結(jié)構(gòu)的形式化描述,構(gòu)件組合應(yīng)有助于根據(jù)參與組合的構(gòu)件的行為和性質(zhì)來推導(dǎo)復(fù)合構(gòu)件的行為和性質(zhì),從而有助于基于可復(fù)用構(gòu)件的應(yīng)用系統(tǒng)的開發(fā) 在軟件體系結(jié)構(gòu)中,連接件是用來建立構(gòu)件之間交互和支配這些交互規(guī)則的構(gòu)造模塊 構(gòu)件之間的交互包括消息和信號(hào)量的傳遞,功能和方法的調(diào)用,數(shù)據(jù)的傳送和轉(zhuǎn)換,以及構(gòu)件之間的同步關(guān)系和依賴關(guān)系等,2.3軟件體系結(jié)構(gòu)的形式化描述,常見的連接件有:管道-過濾器體系結(jié)構(gòu)風(fēng)格中的管道(pipe)、客戶/服務(wù)器體系結(jié)構(gòu)風(fēng)格中的通信協(xié)議和通信機(jī)制、以
11、及數(shù)據(jù)庫和應(yīng)用程序之間的SQL連接等 連接件的接口是其所關(guān)聯(lián)構(gòu)件的一組交互點(diǎn),這些交互點(diǎn)被稱為角色 角色代表了參與連接的構(gòu)件的作用和地位,體現(xiàn)了連接所具有的方向性 角色有主動(dòng)和被動(dòng)、請(qǐng)求和響應(yīng)之分,2.3軟件體系結(jié)構(gòu)的形式化描述,連接件的主要特性是:可擴(kuò)展性、互操作性、動(dòng)態(tài)連接性和請(qǐng)求響應(yīng)性 連接件的可擴(kuò)展性是指:連接件允許動(dòng)態(tài)地改變被關(guān)聯(lián)的構(gòu)件集合和交互關(guān)系 互操作性是指:被連接的構(gòu)件通過連接件對(duì)其它構(gòu)件進(jìn)行直接或間接操作 動(dòng)態(tài)連接性是指:對(duì)連接的動(dòng)態(tài)約束,連接件對(duì)所關(guān)聯(lián)的構(gòu)件可以實(shí)施不同的動(dòng)態(tài)處理 請(qǐng)求響應(yīng)性是指響應(yīng)的并發(fā)性和時(shí)序性,2.3軟件體系結(jié)構(gòu)的形式化描述,對(duì)于構(gòu)件而言,連接件是粘
12、合劑,是構(gòu)件交互的實(shí)現(xiàn) 連接件和構(gòu)件之間的區(qū)別主要在于它們?cè)谲浖w系結(jié)構(gòu)中承擔(dān)著不同的作用 連接件也是一組對(duì)象,把不同的構(gòu)件連接起來,形成體系結(jié)構(gòu)的一部分 約束(Constraint)是構(gòu)件與其關(guān)系之間所必須滿足的條件和限制,描述了系統(tǒng)的配置關(guān)系和拓?fù)浣Y(jié)構(gòu),確定了體系結(jié)構(gòu)調(diào)整的構(gòu)件和連接件的關(guān)聯(lián)關(guān)系,2.3軟件體系結(jié)構(gòu)的形式化描述,約束是基于規(guī)則和參數(shù)進(jìn)行描述的 體系結(jié)構(gòu)約束提供了相關(guān)限制,以確定構(gòu)件是否正確、連接接口是否匹配、以及連接件的通信是否正確,同時(shí),說明了實(shí)現(xiàn)要求行為的語義組合 約束將軟件體系結(jié)構(gòu)與系統(tǒng)需求緊密地聯(lián)系起來,在體系結(jié)構(gòu)約束中,要求構(gòu)件端口和連接件角色之間是顯示連接的,2
13、.4軟件體系結(jié)構(gòu)的生命周期,軟件體系結(jié)構(gòu)工程=形式化模型+軟件技術(shù)+軟件工程 其中,形式化模型指軟件體系結(jié)構(gòu)模型 軟件體系結(jié)構(gòu)生命周期是指:軟件體系結(jié)構(gòu)在整個(gè)生存期間所經(jīng)歷的階段和步驟 軟件體系結(jié)構(gòu)的非形式化描述,經(jīng)常用于軟件體系結(jié)構(gòu)產(chǎn)生的初期,其思想通常是非常簡(jiǎn)單的,常常由軟件工程人員使用自然語言來表示它的概念和原則,2.4軟件體系結(jié)構(gòu)的生命周期,軟件體系結(jié)構(gòu)的規(guī)范化描述和分析,通過使用合適的數(shù)學(xué)理論模型對(duì)非形式化描述進(jìn)行規(guī)范,得到了軟件體系結(jié)構(gòu)的形式化定義,使軟件體系結(jié)構(gòu)的描述精確、無歧義 軟件體系結(jié)構(gòu)的求精與驗(yàn)證,大型系統(tǒng)的體系結(jié)構(gòu)總是從抽象到具體,逐步求精而得到的 軟件體系結(jié)構(gòu)的實(shí)施,
14、將求精后的軟件體系結(jié)構(gòu)應(yīng)用于系統(tǒng)設(shè)計(jì)過程中,將構(gòu)件和連接件有機(jī)地組織在一起,形成系統(tǒng)的設(shè)計(jì)框架,2.4軟件體系結(jié)構(gòu)的生命周期,軟件體系結(jié)構(gòu)的演化和擴(kuò)展,系統(tǒng)需求的變化會(huì)引起體系結(jié)構(gòu)的擴(kuò)展和改動(dòng),這就是軟件體系結(jié)構(gòu)的演化 軟件體系結(jié)構(gòu)的評(píng)價(jià)和度量,以體系結(jié)構(gòu)為基礎(chǔ),開展系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)工作,根據(jù)系統(tǒng)的運(yùn)行情況,對(duì)體系結(jié)構(gòu)進(jìn)行定性的評(píng)價(jià)和定量的度量,為體系結(jié)構(gòu)重用提供依據(jù),并從中取得經(jīng)驗(yàn)教訓(xùn) 軟件體系結(jié)構(gòu)的終結(jié),如果一個(gè)系統(tǒng)的體系結(jié)構(gòu)經(jīng)過了多次演化和修改,其框架結(jié)構(gòu)已經(jīng)變得難以理解,更重要的是不能滿足軟件設(shè)計(jì)要求,2.4軟件體系結(jié)構(gòu)的生命周期,軟件體系結(jié)構(gòu)的生命周期,2.5軟件體系結(jié)構(gòu)的建模語言,
15、在描述軟件的框架結(jié)構(gòu)時(shí),常用的方法主要有兩種: 實(shí)踐派風(fēng)格,使用通用的建模符號(hào),將軟件體系結(jié)構(gòu)設(shè)計(jì)與描述同傳統(tǒng)的系統(tǒng)建模視為一體 學(xué)院派風(fēng)格,使用了體系結(jié)構(gòu)描述語言(Architecture Description Language,ADL) ,側(cè)重于軟件體系結(jié)構(gòu)形式化理論的研究,2.5軟件體系結(jié)構(gòu)的建模語言,實(shí)踐派風(fēng)格包括:圖形表示方法、模塊內(nèi)連接語言、基于構(gòu)件的系統(tǒng)描述語言和UML描述方法 圖形表示方法,使用矩形來代表系統(tǒng)的過程、模塊和子系統(tǒng),利用有向線段來描述它們之間的關(guān)系,這樣,就形成了所謂的線框圖 模塊內(nèi)連接語言,采用一種或幾種程序設(shè)計(jì)語言的模塊連接起來的模塊內(nèi)連接語言,具有程序設(shè)計(jì)
16、語言的嚴(yán)格語義基礎(chǔ),但是,在開發(fā)層次上過于依賴程序設(shè)計(jì)語言,限制了處理和描述高層次軟件體系結(jié)構(gòu)元素的能力,2.5軟件體系結(jié)構(gòu)的建模語言,基于構(gòu)件的系統(tǒng)描述語言,將軟件描述成由許多特定形式、相互作用的特殊實(shí)體所形成的組織或系統(tǒng),一般而言,這種描述方法都是針對(duì)特定領(lǐng)域的特殊問題,不太適合描述和表達(dá)一般意義上的軟件體系結(jié)構(gòu) UML描述方法,可以將Kruchten的“4+1”模型映射到UML圖上,邏輯視圖利用類圖來表示,過程視圖映射成活動(dòng)圖,開發(fā)視圖使用構(gòu)件圖來描述,物理視圖映射為配置圖,場(chǎng)景用順序圖和協(xié)作圖來表示,2.5軟件體系結(jié)構(gòu)的建模語言,在學(xué)院派風(fēng)格中,倡導(dǎo)使用體系結(jié)構(gòu)描述語言來刻畫軟件的框架
17、結(jié)構(gòu) ADL是使用語言學(xué)方法對(duì)體系結(jié)構(gòu)進(jìn)行形式化描述的一種有效手段,可以解決非形式化描述的不足和缺陷 在設(shè)計(jì)ADL的構(gòu)件描述規(guī)范時(shí),應(yīng)該考慮以下幾個(gè)方面的內(nèi)容:,2.5軟件體系結(jié)構(gòu)的建模語言,接口:構(gòu)件通過接口與外界進(jìn)行交互,接口定義了構(gòu)件所提供的屬性、服務(wù)、消息和操作,為了對(duì)構(gòu)件和包含該構(gòu)件的體系結(jié)構(gòu)進(jìn)行分析,ADL應(yīng)能描述構(gòu)件對(duì)外界環(huán)境的需求 類型:構(gòu)件類型將構(gòu)件功能抽象為可復(fù)用的模塊,一個(gè)構(gòu)件類型在一個(gè)體系結(jié)構(gòu)中可以被多次實(shí)例化,一個(gè)構(gòu)件類型也可以在多個(gè)體系結(jié)構(gòu)中被使用,針對(duì)這一特性,ADL應(yīng)該提供相應(yīng)的支持,2.5軟件體系結(jié)構(gòu)的建模語言,語義:構(gòu)件語義是關(guān)于構(gòu)件行為的高層描述,可用于分
18、析軟件體系結(jié)構(gòu)、判斷約束是否滿足以及保證不同層次體系結(jié)構(gòu)之間的一致性,ADL應(yīng)該提供相應(yīng)的實(shí)現(xiàn)機(jī)制 約束:約束是系統(tǒng)及其組成部分的某種屬性描述,破壞約束將導(dǎo)致不可接受的錯(cuò)誤,ADL應(yīng)該提供相應(yīng)的描述方法 演化:構(gòu)件演化是指對(duì)接口、行為和實(shí)現(xiàn)的修改,ADL應(yīng)該保證這種修改以系統(tǒng)化的方式來進(jìn)行,2.5軟件體系結(jié)構(gòu)的建模語言,非功能特性:構(gòu)件的非功能特性包括安全性、可移植性和穩(wěn)定性等,通常無法用行為規(guī)范來進(jìn)行描述,因此,ADL應(yīng)該提供描述非功能特性的相關(guān)手段 配置關(guān)系描述了構(gòu)件和連接件之間的關(guān)聯(lián)關(guān)系 配置關(guān)系的描述可以使我們對(duì)系統(tǒng)的分布性、并發(fā)性、可靠性、安全性和穩(wěn)定性有更加清楚的認(rèn)識(shí),2.5軟件體
19、系結(jié)構(gòu)的建模語言,在設(shè)計(jì)ADL的配置關(guān)系描述規(guī)范時(shí),應(yīng)該考慮以下幾個(gè)方面的內(nèi)容: 可理解性:在使用ADL描述配置關(guān)系時(shí),應(yīng)該使所有的參與者都能夠得到明確的系統(tǒng)結(jié)構(gòu)信息 組合能力:ADL應(yīng)該能夠提供層次化的抽象機(jī)制,在不同的層次上對(duì)軟件體系結(jié)構(gòu)進(jìn)行描述,這將有利于構(gòu)件的復(fù)用 對(duì)異構(gòu)的支持:ADL應(yīng)該具有開放性,能夠集成異構(gòu)的構(gòu)件和連接件,2.5軟件體系結(jié)構(gòu)的建模語言,可伸縮能力:ADL應(yīng)該能夠?qū)砜赡軘U(kuò)大規(guī)模的軟件系統(tǒng)規(guī)范和開發(fā)提供直接的支持 進(jìn)化能力:在配置關(guān)系上,ADL應(yīng)該提供進(jìn)化的描述手段,例如:對(duì)配置進(jìn)行增、刪、替換和重連接的說明 動(dòng)態(tài)支持:在系統(tǒng)執(zhí)行時(shí),對(duì)體系結(jié)構(gòu)能夠進(jìn)行修改,在某些
20、情況下,ADL應(yīng)該提供相應(yīng)的支持 基于UML的軟件體系結(jié)構(gòu)描述 UML模型由多種視圖組成,每種視圖從不同的角度和側(cè)面來描述應(yīng)用系統(tǒng),2.5軟件體系結(jié)構(gòu)的建模語言,用例圖是從用戶的角度來描述系統(tǒng)功能,指出各功能的操作者,用于捕獲業(yè)務(wù)需求 類圖描述了系統(tǒng)中類的靜態(tài)結(jié)構(gòu),定義了類的內(nèi)部結(jié)構(gòu)以及類之間的關(guān)聯(lián)關(guān)系 包圖描述了系統(tǒng)的層次結(jié)構(gòu),用于捕獲系統(tǒng)的邏輯結(jié)構(gòu) 活動(dòng)圖描述了滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)之間的約束關(guān)系 合作圖描述對(duì)象之間的協(xié)作,顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,2.5軟件體系結(jié)構(gòu)的建模語言,順序圖描述對(duì)象之間的動(dòng)態(tài)合作關(guān)系,強(qiáng)調(diào)對(duì)象之間的消息發(fā)送順序,顯示對(duì)象之間的交互關(guān)系 狀態(tài)圖描述了
21、一類對(duì)象所具有的可能狀態(tài)及狀態(tài)之間的轉(zhuǎn)移關(guān)系 組件圖描述了程序代碼的物理結(jié)構(gòu) 配置圖定義了軟、硬件的物理體系結(jié)構(gòu),用于捕獲系統(tǒng)硬件資源和軟件資源之間的映射關(guān)系,2.5軟件體系結(jié)構(gòu)的建模語言,2.5軟件體系結(jié)構(gòu)的建模語言,在使用UML描述體系結(jié)構(gòu)時(shí),主要存在著三種途徑: 不改變UML的用法,將UML看作是一種軟件體系結(jié)構(gòu)描述語言,直接對(duì)體系結(jié)構(gòu)進(jìn)行建模 利用UML的擴(kuò)展機(jī)制,約束UML元模型以支持體系結(jié)構(gòu)建模需求 對(duì)UML元模型進(jìn)行擴(kuò)充,增加體系結(jié)構(gòu)建模元素,這種方法是對(duì)UML的元模型進(jìn)行擴(kuò)展,使UML具有新的建模能力,2.5軟件體系結(jié)構(gòu)的建模語言,對(duì)于每種體系結(jié)構(gòu)元素,在UML中幾乎都能找到與
22、之相對(duì)應(yīng)的元素: UML的用例、類、組件、結(jié)點(diǎn)、包和子系統(tǒng)與體系結(jié)構(gòu)中的構(gòu)件相對(duì)應(yīng) UML的關(guān)系支持體系結(jié)構(gòu)中的連接件 UML的接口支持體系結(jié)構(gòu)中的接口 UML中的規(guī)則相當(dāng)于體系結(jié)構(gòu)中的約束 軟件體系結(jié)構(gòu)的配置可以使用UML的包圖、組件圖和配置圖來描述,2.5軟件體系結(jié)構(gòu)的建模語言,UML預(yù)定義及用戶自己擴(kuò)展的構(gòu)造型,例如:精化和復(fù)制等,能夠較好地表達(dá)體系結(jié)構(gòu)的行為 邏輯視圖可以采用UML用例圖來實(shí)現(xiàn) 在開發(fā)視圖中,使用UML的類圖、對(duì)象圖和構(gòu)件圖來表示模塊,用包來表示子系統(tǒng),利用連接表示模塊或子系統(tǒng)之間的關(guān)聯(lián) 過程視圖可以采用UML的狀態(tài)圖、順序圖和活動(dòng)圖來實(shí)現(xiàn),2.5軟件體系結(jié)構(gòu)的建模語言
23、,物理視圖定義了功能單元的分布狀況,描述用于執(zhí)行用例和保存數(shù)據(jù)的業(yè)務(wù)地點(diǎn),可以使用UML的配置圖來實(shí)現(xiàn) 在選擇UML來描述軟件體系結(jié)構(gòu)時(shí),會(huì)有以下幾方面的優(yōu)點(diǎn): UML是當(dāng)前主流的面向?qū)ο箝_發(fā)語言,已經(jīng)被越來越多的人所采用,容易被人們接受 UML是一個(gè)開發(fā)標(biāo)準(zhǔn),具有良好的擴(kuò)展機(jī)制,2.5軟件體系結(jié)構(gòu)的建模語言,UML引入了形式化定義(對(duì)象約束語言),是一種半形式化的建模語言 UML有豐富的支持工具,與程序設(shè)計(jì)語言和開發(fā)過程無關(guān) UML支持多視圖結(jié)構(gòu),能夠從不同角度來刻畫軟件體系結(jié)構(gòu),可以有效地用于分析、設(shè)計(jì)和實(shí)現(xiàn)過程 UML提供了豐富的建模概念和表示符號(hào),能夠滿足典型的軟件開發(fā)過程 UML的語
24、義比較豐富,是一種通用和標(biāo)準(zhǔn)的建模語言,易于理解和交流,發(fā)展已經(jīng)非常成熟,2.5軟件體系結(jié)構(gòu)的建模語言,在選擇UML來描述軟件體系結(jié)構(gòu)時(shí),也存在著一些問題: 對(duì)體系結(jié)構(gòu)的構(gòu)造性建模能力不強(qiáng),具體來說,UML還缺乏對(duì)體系結(jié)構(gòu)風(fēng)格和顯式連接件的直接支持 對(duì)體系結(jié)構(gòu)的描述只能到達(dá)非形式化的層次,不能保證軟件開發(fā)過程的可靠性,不能充分地表現(xiàn)軟件體系結(jié)構(gòu)的本質(zhì),2.5軟件體系結(jié)構(gòu)的建模語言,基于UML的軟件體系結(jié)構(gòu)(UML-Based Software Architecture,UBSA),是由一組互相協(xié)作的組件構(gòu)成 通過組件及其之間的協(xié)作關(guān)系來定義軟件系統(tǒng)的體系結(jié)構(gòu) 在UBSA中,通過擴(kuò)展點(diǎn)(Exte
25、nsion Points)來組裝用戶開發(fā)的組件,以適應(yīng)用戶需求領(lǐng)域的不斷變化,2.5軟件體系結(jié)構(gòu)的建模語言,UBSA=Components, Connectors, Configurations, Interfaces, Roles, Ports, Extension Points,2.5軟件體系結(jié)構(gòu)的建模語言,基于ADL的軟件體系結(jié)構(gòu)描述語言 ACME、Unicon、Wright、Darwin、Aesop、SADL、MetaH、Rapide和C2 ACME ACME是一種體系結(jié)構(gòu)互換語言,支持從一種ADL向另一種ADL的規(guī)格說明轉(zhuǎn)換 ACME的核心概念包括7種類型實(shí)體:構(gòu)件、連接件、系統(tǒng)、端
26、口、角色、表述和表述圖,2.5軟件體系結(jié)構(gòu)的建模語言,2.5軟件體系結(jié)構(gòu)的建模語言,Unicon Unicon的設(shè)計(jì)緊緊圍繞著構(gòu)件和連接件這兩個(gè)基本概念 構(gòu)件代表系統(tǒng)的計(jì)算單元和數(shù)據(jù)存儲(chǔ)場(chǎng)所,用于實(shí)現(xiàn)計(jì)算和數(shù)據(jù)存儲(chǔ)的分離,將系統(tǒng)分解為多個(gè)獨(dú)立的部分,每一部分都有完善的語義和行為 連接件是實(shí)現(xiàn)構(gòu)件交互的類,在構(gòu)件交互中起中介作用 在Unicon中,定義構(gòu)件的語法如下:,2.5軟件體系結(jié)構(gòu)的建模語言,在Unicon中,定義連接件的語法如下: 使用Unicon來描述客戶/服務(wù)器體系結(jié)構(gòu):,2.5軟件體系結(jié)構(gòu)的建模語言,Wright Wright的主要思想是把連接件定義為明確的語義實(shí)體,這些實(shí)體用協(xié)議
27、的集合來表示,協(xié)議代表了交互的各個(gè)參與角色及其相互作用 Wright提供了顯式和獨(dú)立的連接件規(guī)約,同時(shí)支持復(fù)雜連接的定義 Wright定義連接件和構(gòu)件的實(shí)例,在相應(yīng)的端口和角色之間建立連接(Attachment),從而得到系統(tǒng)的配置關(guān)系,2.5軟件體系結(jié)構(gòu)的建模語言,在Wright語言中,體系結(jié)構(gòu)描述分為三個(gè)部分: 第一部分定義了構(gòu)件和連接件的類型,構(gòu)件類型利用端口(ports)和構(gòu)件規(guī)格(component-spec)來說明,每一個(gè)端口定義了該構(gòu)件與其所處環(huán)境之間的邏輯交互點(diǎn) 第二部分是構(gòu)件和連接件實(shí)例的集合 在第三部分中,通過描述構(gòu)件的哪個(gè)端口與連接件的哪個(gè)角色相關(guān)聯(lián),來定義構(gòu)件實(shí)例和連接
28、件實(shí)例的組合方式,2.5軟件體系結(jié)構(gòu)的建模語言,使用Wright語言描述的客戶/服務(wù)器體系結(jié)構(gòu)示例:,2.5軟件體系結(jié)構(gòu)的建模語言,Darwin Darwin使用接口來定義構(gòu)件類型,接口包括提供服務(wù)接口和請(qǐng)求服務(wù)接口 系統(tǒng)配置定義了構(gòu)件實(shí)例,給出了提供服務(wù)接口和請(qǐng)求服務(wù)接口之間的綁定關(guān)系 Darwin沒有提供顯式的連接件,在定義體系結(jié)構(gòu)風(fēng)格時(shí),通常給出它的交互模型,把構(gòu)件的定義留給體系結(jié)構(gòu)設(shè)計(jì)師,2.5軟件體系結(jié)構(gòu)的建模語言,Aesop Aesop采用了產(chǎn)生式方法,將一組風(fēng)格描述和一個(gè)普遍使用的共享工具包聯(lián)系在一起 其目標(biāo)是建立一個(gè)工具包,為特定領(lǐng)域的體系結(jié)構(gòu)快速構(gòu)建提供設(shè)計(jì)支持環(huán)境,2.5軟
29、件體系結(jié)構(gòu)的建模語言,SADL SADL語言明確區(qū)分了多種體系結(jié)構(gòu)對(duì)象,例如:構(gòu)件和連接件,明確了它們的使用目的和適用范圍 SADL語言不僅定義了體系結(jié)構(gòu)的功能,而且也定義了體系結(jié)構(gòu)特定類的約束 SADL的一個(gè)獨(dú)特方面是對(duì)體系結(jié)構(gòu)層次的表示和推理,2.5軟件體系結(jié)構(gòu)的建模語言,MetaH MetaH主要支持實(shí)時(shí)、容錯(cuò)、安全、多處理和嵌入式軟件系統(tǒng)的分析、驗(yàn)證以及開發(fā) MetaH不僅能夠使用文本方式的語法來表示體系結(jié)構(gòu),還能以圖形方式來描述體系結(jié)構(gòu) 在MetaH規(guī)格說明中,實(shí)體種類分為低層實(shí)體和高層實(shí)體,低層實(shí)體描述了源代碼模塊(例如:子程序和包)和硬件元素(諸如:內(nèi)存和處理器),高層實(shí)體說明了
30、如何利用已定義的實(shí)體來組合形成新實(shí)體(例如:宏、系統(tǒng)和應(yīng)用程序),2.5軟件體系結(jié)構(gòu)的建模語言,Rapide Rapide是一種可執(zhí)行的ADL,其目的在于:通過定義模擬基于事件的行為,來對(duì)分布式并發(fā)系統(tǒng)進(jìn)行建模 通過事件偏序集來刻畫系統(tǒng)的行為 構(gòu)件計(jì)算由構(gòu)件接收的事件來觸發(fā),并進(jìn)一步產(chǎn)生事件傳送到其它構(gòu)件,由此觸發(fā)了其它計(jì)算 Rapide模型的執(zhí)行結(jié)果是一個(gè)事件集合,其中的事件滿足一定的因果和時(shí)序關(guān)系,2.5軟件體系結(jié)構(gòu)的建模語言,C2 在C2語言中,連接件負(fù)責(zé)構(gòu)件之間的消息傳遞 構(gòu)件維持狀態(tài),執(zhí)行操作,通過top和bottom端口和其它構(gòu)件進(jìn)行信息交互 構(gòu)件之間的消息交換不能直接進(jìn)行,只能通過連接件來完成 每個(gè)構(gòu)件端口最多只能和一個(gè)連接件相連,而連接件可以和任意數(shù)目的構(gòu)件和連接件相連,2.5軟件體系結(jié)構(gòu)的建模語言,使用C2來描述會(huì)議安排系統(tǒng),其體系結(jié)構(gòu)如下所示:,2.5軟件體系結(jié)構(gòu)的建模語言,ADL的優(yōu)點(diǎn): 能為軟件建立精確和無二義性的模型,有效地支持體系結(jié)構(gòu)的求精和驗(yàn)證 ADL的缺點(diǎn): 研究尚處于初級(jí)階段,ADL自身所能提供的技術(shù)支持還很有限 沒有統(tǒng)一可用的形式化描述規(guī)范和集成開發(fā)工具,還不能對(duì)軟件工程生命周期的各個(gè)階段提供全面的支持,2.5軟件體系結(jié)構(gòu)的建模語言,易用性比UML差,不利于開發(fā)人員的溝通和理解,作為新興技術(shù),發(fā)展比較緩慢 每種ADL都有各自的適用領(lǐng)域
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州石化職業(yè)技術(shù)大學(xué)《中國(guó)智慧》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西科技職業(yè)學(xué)院《地理學(xué)科教學(xué)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 集寧師范學(xué)院《石油化工工藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院《海外市場(chǎng)調(diào)研與數(shù)據(jù)分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南工程學(xué)院應(yīng)用技術(shù)學(xué)院《跨境電商概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 衡水健康科技職業(yè)學(xué)院《風(fēng)景園林建筑設(shè)計(jì)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶幼兒師范高等??茖W(xué)?!妒袌?chǎng)調(diào)查分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶健康職業(yè)學(xué)院《數(shù)字音視頻技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院《先進(jìn)陶瓷材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州食品工程職業(yè)學(xué)院《自然地理學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 急救藥品的序號(hào)及作用課件
- 中藥飲片培訓(xùn)課件
- 林區(qū)防火專用道路技術(shù)規(guī)范
- 2023社會(huì)責(zé)任報(bào)告培訓(xùn)講稿
- 2023核電廠常規(guī)島及輔助配套設(shè)施建設(shè)施工技術(shù)規(guī)范 第8部分 保溫及油漆
- 2025年蛇年春聯(lián)帶橫批-蛇年對(duì)聯(lián)大全新春對(duì)聯(lián)集錦
- 表B. 0 .11工程款支付報(bào)審表
- 警務(wù)航空無人機(jī)考試題庫及答案
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說明以及簡(jiǎn)單故障處理
- 新生兒窒息復(fù)蘇正壓通氣課件
- 法律顧問投標(biāo)書
評(píng)論
0/150
提交評(píng)論