軟件體系結(jié)構(gòu)描述語言講義_第1頁
軟件體系結(jié)構(gòu)描述語言講義_第2頁
軟件體系結(jié)構(gòu)描述語言講義_第3頁
軟件體系結(jié)構(gòu)描述語言講義_第4頁
軟件體系結(jié)構(gòu)描述語言講義_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本資料來源軟件體系結(jié)構(gòu)

(SoftwareArchitecture)四、軟件體系結(jié)構(gòu)描述語言標(biāo)書吹噓自己(不溫不火地貶低對手)提出自己的設(shè)計(jì)方案(體系結(jié)構(gòu))吹噓自己的方案(不溫不火地貶低對手的方案)描述和講解體系結(jié)構(gòu)設(shè)計(jì)方案是非常重要的技術(shù)假定你是ModuleDesigner你最近加盟一家公司,并被安排在一個(gè)新項(xiàng)目的開發(fā)組中。雖然你富有經(jīng)驗(yàn),但是對此項(xiàng)目所涉及的領(lǐng)域還是一個(gè)新手。系統(tǒng)的高層體系結(jié)構(gòu)設(shè)計(jì)已經(jīng)完成。你的老板(項(xiàng)目經(jīng)理)讓你預(yù)計(jì)你將要完成的幾個(gè)模塊的開發(fā)時(shí)間。你怎么辦?1/4/2023假定你是ModuleDesigner你來開發(fā)A2和A3,怎么開始?1/4/2023假定你是Consultant(顧問)你是一個(gè)請來的顧問,對一個(gè)體系結(jié)構(gòu)設(shè)計(jì)進(jìn)行評估。Modifibility和Performance是重要的體系結(jié)構(gòu)質(zhì)量因素。你會(huì)詢問什么樣的信息?1/4/2023假定你是Consultant(顧問)面對這樣的圖,你會(huì)有什么反應(yīng)?1/4/2023假定你是Consultant(顧問)面對這樣的圖,你會(huì)有什么反應(yīng)?體系結(jié)構(gòu)文檔的用處軟件開發(fā)過程中各種角色之間交流設(shè)計(jì)思想的媒介進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可以驗(yàn)證體系結(jié)構(gòu)設(shè)計(jì)方案,精煉或改變必要的方案讓別人理解系統(tǒng)的第一手資料1/4/2023與ModuleDesigner交流基本想法是什么?我該做什么(如,實(shí)現(xiàn)哪些需求)?我該在哪做(如,這項(xiàng)功能實(shí)現(xiàn)在哪里)?我和誰交互?接口是什么?有什么可以復(fù)用的代碼?必須遵從什么約定(質(zhì)量目標(biāo)、舊體系/接口、預(yù)算等)?有哪些硬性規(guī)定(設(shè)計(jì)、接口、約束等)?1/4/2023與顧問交交流體系結(jié)構(gòu)構(gòu)的必要要需求(drivingrequirement)是什么(如,performance,availability,security,modifiability,interoperability)?各種體系系結(jié)構(gòu)視視圖是如如何描述述的?抽象出來來什么??功能怎樣樣分解??功能怎樣樣分配??使用什么么硬件以以及軟件件怎樣布布置在硬硬件上??采用了哪哪些體系系結(jié)構(gòu)風(fēng)風(fēng)格?12/29/2022這是什么么?12/29/2022上圖的的毛病病很多事事情沒沒有說說:組件類類型連接件件類型型圓圈和和箭頭頭代表表什么么?這種布布局的的意義義是什什么??為什么么CP要放在在上層層?只畫出出方框框和線線條不不是體體系結(jié)結(jié)構(gòu),,只是是體系系結(jié)構(gòu)構(gòu)的開開始好的體體系結(jié)結(jié)構(gòu)文文檔的的必要要元素素需求陳陳述商業(yè)環(huán)環(huán)境、、產(chǎn)品品的背背景、、領(lǐng)域域描述環(huán)環(huán)境必須和和什么么系統(tǒng)統(tǒng)交互互、外外部接接口使用體體系結(jié)結(jié)構(gòu)圖圖用恰當(dāng)當(dāng)?shù)木€線框簡潔的的說明明12/29/2022好的體體系結(jié)結(jié)構(gòu)文文檔的的必要要元素素考慮實(shí)實(shí)現(xiàn)時(shí)時(shí)的限限制但是僅僅在它它們能能影響響體系系結(jié)構(gòu)構(gòu)設(shè)計(jì)計(jì)的范范圍內(nèi)內(nèi)被限定定的下下層結(jié)結(jié)構(gòu)、、處理理器需需求通常包包含其其他結(jié)結(jié)構(gòu)圖圖體系結(jié)結(jié)構(gòu)設(shè)設(shè)計(jì)的的原理理它怎樣樣去符符合需需求與與約束束其他的的設(shè)計(jì)計(jì)12/29/2022其他方面風(fēng)格/產(chǎn)品線問題題設(shè)計(jì)可變的的尺度體系結(jié)構(gòu)的的那個(gè)方面面必須不被被改變?管理問題暗含開發(fā)團(tuán)團(tuán)隊(duì)的組織織結(jié)構(gòu)體系結(jié)構(gòu)評評審情況其他設(shè)計(jì)問問題代碼復(fù)用、、標(biāo)準(zhǔn)的運(yùn)運(yùn)用風(fēng)險(xiǎn)分析運(yùn)作、管理理和維護(hù)12/29/2022軟件體系結(jié)結(jié)構(gòu)的現(xiàn)狀狀體系結(jié)構(gòu)的的理解停留留在直覺、、逸事和傳傳說層面非形式化描描述框線圖非形式化的的陳述慣用的詞匯匯傳遞了豐豐富的語義義RPCClient-ServerPipeandFilterLayeredDistributedOO該層次的非非形式化是是嚴(yán)重的問問題嗎?體系結(jié)構(gòu)描描述語言的的必要性體系結(jié)構(gòu)是是降低開發(fā)發(fā)成本的關(guān)關(guān)鍵開發(fā)焦點(diǎn)轉(zhuǎn)轉(zhuǎn)移到粗粒粒度系統(tǒng)成成分形式化的體體系結(jié)構(gòu)模模型是需要要的體系結(jié)構(gòu)描描述語言(ADLs)作為一種可可能的解決決方案被提提出ACMEMetaHAesopRapideArTekSADLC2UniConDarwinWeavesLILEANNAWright若干原型ADLs被開發(fā)出來來→ADL及其扮演的的角色仍是是一個(gè)開放放的問題ADL扮演的角色色提供了描述述構(gòu)件及其其交互的模模型、符號號體系和工工具支持大規(guī)模模、高層設(shè)設(shè)計(jì)支持體系結(jié)結(jié)構(gòu)風(fēng)格的的理性選擇擇和應(yīng)用支持抽象用戶定義應(yīng)用特定(application-specific)支持設(shè)計(jì)的的實(shí)現(xiàn)系統(tǒng)化的(可能)自自動(dòng)化的→語言和環(huán)環(huán)境之間相相互作用語言使能精精確的規(guī)約約環(huán)境使得規(guī)規(guī)約被復(fù)用用4.1體系系結(jié)構(gòu)描述述方法分類類圖形表達(dá)工工具模塊內(nèi)連接接語言基于構(gòu)件的的系統(tǒng)描述述語言軟件體系結(jié)結(jié)構(gòu)描述語語言圖形表達(dá)工工具模塊內(nèi)連接接語言采用將一種種或幾種傳傳統(tǒng)程序設(shè)設(shè)計(jì)語言的的模塊連接接起來的模模塊內(nèi)連接接語言。由由于程序設(shè)設(shè)計(jì)語言和和模塊內(nèi)連連接語言具具有嚴(yán)格的的語義基礎(chǔ)礎(chǔ),因此它它們能支持持對較大的的軟件單元元進(jìn)行描述述,諸如定定義/使用和扇入入/扇出等操作作。例如,,Ada語言采用use實(shí)現(xiàn)包的復(fù)復(fù)用,Pascal語言采用過過程(函數(shù)數(shù))模塊的的交互等。。MIL方式對模塊塊化的程序序設(shè)計(jì)和分分段編譯等等程序設(shè)計(jì)計(jì)與開發(fā)技技術(shù)確實(shí)發(fā)發(fā)揮了很大大的作用。。但是由于于這些語言言處理和描描述的軟件件設(shè)計(jì)開發(fā)發(fā)層次過于于依賴程序序設(shè)計(jì)語言言,因此限限制了它們們處理和描描述比程序序設(shè)計(jì)語言言元素更為為抽象的高高層次軟件件體系結(jié)構(gòu)構(gòu)元素的能能力?;跇?gòu)件的的系統(tǒng)描述述語言基于軟構(gòu)件件的系統(tǒng)描描述語言將將軟件系統(tǒng)統(tǒng)描述成一一種是由許許多以特定定形式相互互作用的特特殊軟件實(shí)實(shí)體構(gòu)造組組成的組織織或系統(tǒng)。。例如,一種種多變配置置語言就可可以用來在在一個(gè)較高高的抽象層層次上對系系統(tǒng)的體系系結(jié)構(gòu)建模模,最初用用作設(shè)計(jì)和和構(gòu)造復(fù)雜雜分布式系系統(tǒng)的配置置說明語言言,因具有有動(dòng)態(tài)特性性,也可用用來描述動(dòng)動(dòng)態(tài)體系結(jié)結(jié)構(gòu)。這種表達(dá)和和描述方式式雖然也是是較好的一一種以構(gòu)件件為單位的的軟件系統(tǒng)統(tǒng)描述方法法,但是他他們所面向向和針對的的系統(tǒng)元素素仍然是一一些層次較較低的以程程序設(shè)計(jì)為為基礎(chǔ)的通通信協(xié)作軟軟件實(shí)體單單元,而且且這些語言言所描述和和表達(dá)的系系統(tǒng)一般而而言都是面面向特定應(yīng)應(yīng)用的特殊殊系統(tǒng),這這些特性使使得基于構(gòu)構(gòu)件的系統(tǒng)統(tǒng)描述仍然然不是十分分適合軟件件體系結(jié)構(gòu)構(gòu)的描述和和表達(dá)。軟件體系結(jié)結(jié)構(gòu)描述語語言軟件體系結(jié)結(jié)構(gòu)的第四四種描述和和表達(dá)方法法是參照傳傳統(tǒng)程序設(shè)設(shè)計(jì)語言的的設(shè)計(jì)和開開發(fā)經(jīng)驗(yàn),,重新設(shè)計(jì)計(jì)、開發(fā)和和使用針對對軟件體系系結(jié)構(gòu)特點(diǎn)點(diǎn)的專門的的軟件體系系結(jié)構(gòu)描述述語言由于ADL是在吸收了了傳統(tǒng)程序序設(shè)計(jì)中的的語義嚴(yán)格格精確的特特點(diǎn)基礎(chǔ)上上,針對軟軟件體系結(jié)結(jié)構(gòu)的整體體性和抽象象性特點(diǎn),,定義和確確定適合于于軟件體系系結(jié)構(gòu)表達(dá)達(dá)與描述的的有關(guān)抽象象元素,因因此,ADL是當(dāng)前軟件件開發(fā)和設(shè)設(shè)計(jì)方法學(xué)學(xué)中一種發(fā)發(fā)展很快的的軟件體系系結(jié)構(gòu)描述述方法,目目前,已經(jīng)經(jīng)有幾十種種常見的ADL4.2軟件體系結(jié)結(jié)構(gòu)描述框框架標(biāo)準(zhǔn)鑒于體系結(jié)結(jié)構(gòu)描述的的概念和實(shí)實(shí)踐的不統(tǒng)統(tǒng)一,IEEE于1995年8月成立了體體系結(jié)構(gòu)工工作組IEEEP1471IEEEP1471于2000年9月21日通過IEEE-SA標(biāo)準(zhǔn)委員會(huì)會(huì)評審。IEEEP1471適用于軟件件密集的系系統(tǒng),其目目標(biāo)在于::便于體系系結(jié)構(gòu)的表表達(dá)與交流流,并通過過體系結(jié)構(gòu)構(gòu)要素及其其實(shí)踐標(biāo)準(zhǔn)準(zhǔn)化,奠定定質(zhì)量與成成本的基礎(chǔ)礎(chǔ)。IEEEP1471詳細(xì)介紹了了一套體系系結(jié)構(gòu)描述述的概念框框架,并給給出建立框框架的思路路。但如何何描述以及及具體的描描述技術(shù)等等方面缺乏乏更進(jìn)一步步的指導(dǎo)。。RationalRational起草了可復(fù)復(fù)用的軟件件資產(chǎn)規(guī)格格說明,專專門討論了了體系結(jié)構(gòu)構(gòu)描述的規(guī)規(guī)格說明,,提出了一一套易于復(fù)復(fù)用的體系系結(jié)構(gòu)描述述規(guī)范。該該建議草案案已經(jīng)提交交OMG。基于RUP(RationalUnitedProcess)、采用UML模型描述軟軟件的體系系結(jié)構(gòu),認(rèn)認(rèn)為體系結(jié)結(jié)構(gòu)描述的的關(guān)鍵是定定義視點(diǎn)、、視圖以及及建模元素素之間的映映射關(guān)系。。與IEEEP1471相比,該建建議標(biāo)準(zhǔn)的的體系結(jié)構(gòu)構(gòu)描述方案案涉及面比比較窄,所所注重的層層次比較低低,因而更更具體。由由于將體系系結(jié)構(gòu)的描描述限于UML和RUP,具有一定定的局限性性,但該建建議標(biāo)準(zhǔn)結(jié)結(jié)合了業(yè)界界已經(jīng)廣泛泛采用的建建模語言和和開發(fā)過程程,因而易易于推廣,,可以有效效實(shí)現(xiàn)在跨跨組織之間間復(fù)用體系系結(jié)構(gòu)描述述結(jié)果。4.3軟件件體系結(jié)構(gòu)構(gòu)描述語言言ADL是在底層語語義模型的的支持下,,為軟件系系統(tǒng)的概念念體系結(jié)構(gòu)構(gòu)建模提供供了具體語語法和概念念框架?;诘讓诱Z語義的工具具為體系結(jié)結(jié)構(gòu)的表示示、分析、、演化、細(xì)細(xì)化、設(shè)計(jì)計(jì)過程等提提供支持。。其三個(gè)基基本元素是是:構(gòu)件、、連接件、、體系結(jié)構(gòu)構(gòu)配置。主要的體系系結(jié)構(gòu)描述述語言有Aesop、MetaH、C2、Rapide、SADL、Unicon和Wright等,盡管它它們都描述述軟件體系系結(jié)構(gòu),卻卻有不同的的特點(diǎn)。這些ADL強(qiáng)調(diào)了體系系結(jié)構(gòu)不同同的側(cè)面,,對體系結(jié)結(jié)構(gòu)的研究究和應(yīng)用起起到了重要要的作用,,但也有負(fù)負(fù)面的影響響。每一種種ADL都以獨(dú)立的的形式存在在,描述語語法不同且且互不兼容容,同時(shí)又又有許多共共同的特征征ADL與其他語言言的比較(1)構(gòu)造能力::ADL能夠使用較較小的獨(dú)立立體系結(jié)構(gòu)構(gòu)元素來建建造大型軟軟件系統(tǒng);;抽象能力::ADL使得軟件體體系結(jié)構(gòu)中中的構(gòu)件和和連接件描描述可以只只關(guān)注它們們的抽象特特性,而不不管其具體體的實(shí)現(xiàn)細(xì)細(xì)節(jié);復(fù)用能力::ADL使得組成軟軟件系統(tǒng)的的構(gòu)件、連連接件甚至至是軟件體體系結(jié)構(gòu)都都成為軟件件系統(tǒng)開發(fā)發(fā)和設(shè)計(jì)的的可復(fù)用部部件;組合能力::ADL使得其描述述的每一系系統(tǒng)元素都都有其自己己的局部結(jié)結(jié)構(gòu),這種種描述局部部結(jié)構(gòu)的特特點(diǎn)使得ADL支持軟件系系統(tǒng)的動(dòng)態(tài)態(tài)變化組合合;異構(gòu)能力::ADL允許多個(gè)不不同的體系系結(jié)構(gòu)描述述關(guān)聯(lián)存在在;分析和推理理能力:ADL允許對其描描述的體系系結(jié)構(gòu)進(jìn)行行多種不同同的性能和和功能上的的多種推理理分析。典型元素含含義常見體系結(jié)結(jié)構(gòu)元素ADL定義定義ADL是一種語言言,提供了了對軟件系系統(tǒng)概念體體系結(jié)構(gòu)進(jìn)進(jìn)行建模的的特性(features)基本特性性:對以以下成分分進(jìn)行顯顯式規(guī)約約構(gòu)件(components)連接件(connectors)配置(configurations)ADL構(gòu)件定義構(gòu)件是計(jì)計(jì)算或數(shù)數(shù)據(jù)存儲(chǔ)儲(chǔ)單元構(gòu)件是計(jì)計(jì)算和狀狀態(tài)的場場所所有的ADLs支持構(gòu)件件建模不同的術(shù)術(shù)語構(gòu)件(component)接口(interface)進(jìn)程(process)ADL連接件定義連接件是是組成體體系結(jié)構(gòu)構(gòu)的“積積木”,,用于模模型化構(gòu)構(gòu)件之間間的交互互,以及及指導(dǎo)這這些交互互的規(guī)則則所有的ADLs支持連接接件建模模一些ADLs不把連接接件作為為第一類類實(shí)體建建模所有的ADLs至少支持持語法連連接(interconnection)不同的術(shù)術(shù)語連接件(connector)連接(connection)綁定(binding)ADL配置定義體系結(jié)構(gòu)構(gòu)配置或拓?fù)涫菢?gòu)件和和連接件件的連接接圖,描描述了系系統(tǒng)的體體系結(jié)構(gòu)構(gòu)通過定義義,ADLs必須顯式式地建模模配置配置有助助于確保保體系結(jié)結(jié)構(gòu)屬性性構(gòu)件是否否正確連連接、接接口是否否匹配、、通信是是否正確確、組合合語義是是否適合合并發(fā)和分分布屬性性遵守設(shè)計(jì)計(jì)啟發(fā)規(guī)規(guī)則和風(fēng)風(fēng)格規(guī)則則4.4典型軟件件體系結(jié)結(jié)構(gòu)描述述語言ADL實(shí)例—UniConUniCon:UniversalConnectorlanguageCMU開發(fā),支支持對體體系結(jié)構(gòu)構(gòu)的描述述。對構(gòu)構(gòu)件交互互模式的的定位和和編碼,,并且對對需要不不同交互互模式的的構(gòu)件加加以區(qū)分分。提供對大大量構(gòu)件件和連接接件的統(tǒng)統(tǒng)一訪問問區(qū)分不同同類型的的構(gòu)件和和連接件件以便對對體系結(jié)結(jié)構(gòu)配置置進(jìn)行檢檢查支持不同同的表示示方法和和不同開開發(fā)人員員的分析析工具支持對現(xiàn)現(xiàn)有構(gòu)件件的使用用通過定義義類型、、特性列列表與用用于和連連接件相相連的交交互點(diǎn)來來描述構(gòu)構(gòu)件構(gòu)件的交交互點(diǎn)稱稱為端口口連接件的的交互點(diǎn)點(diǎn)稱為角角色系統(tǒng)組合合構(gòu)造就就是通過過定義構(gòu)構(gòu)件端口口和連接接件角色色之間的的連接來來完成的的預(yù)定義的的構(gòu)件和和連接件件類型構(gòu)件類型型:模塊塊(module),計(jì)算(computation),過濾器器(filter),進(jìn)程(process),……連接件類類型:管管道(pipe),文件IO(fileIO),過程調(diào)調(diào)用(procedurecall),數(shù)據(jù)訪訪問(dataaccess),遠(yuǎn)程過過程調(diào)用用(remoteproccall),……為構(gòu)件連連接生成成“膠水水”代碼碼實(shí)現(xiàn)約束束允許非功功能屬性性規(guī)約UniCon的語法(1)一個(gè)體系系結(jié)構(gòu)是是包含以以下成分分的復(fù)合合構(gòu)件(compositecomponent)原子(atomic)或復(fù)合構(gòu)構(gòu)件類型型包括接口(interface)預(yù)定義的的演員(players)和屬性(attributes)集合預(yù)定義的的每個(gè)演演員的屬屬性集合合實(shí)現(xiàn)(implementation)連接件類類型協(xié)議(protocol)預(yù)定義的的角色和屬性集集合為每個(gè)角角色預(yù)定定義的屬屬性集合合實(shí)現(xiàn)(implementation)構(gòu)件類型型和連接接件類型型的實(shí)例例化(uses)實(shí)例的配配置(connect)UniCon的語法(2)UniCon構(gòu)件演員員PLAYERinputISStreamInMAXASSOCS(1)MINASSOCS(1)SIGNATURE(“l(fā)ine”)PORTBINDING(pipe.Source)ENDinputUniCon連接件角角色約束束ROLEoutputISSourceMAXCONNS(1)ACCEPT(Filter.StreamIn)ENDoutputUniCon的語法(3)UniCon配置USESp1PROTOCOLUnix-pipeUSESsorterINTERFACESort-filterCONNECTsorter.outputTOp1.sourceUSESp2PROTOCOLUnix-pipeUSESprinterINTERFACEPrint-filterCONNECTsorter.inputTOp2.sinkADL實(shí)例—RapideStanfordUni.開發(fā),可可執(zhí)行的的ADL。目的在在于定義義并模仿仿基于事事件的行行為對分分布式并并發(fā)系統(tǒng)統(tǒng)建模。。集中于動(dòng)動(dòng)態(tài)行為為的建模模和模擬擬通過事件件的偏序序集合刻刻畫系統(tǒng)統(tǒng)的行為為(posets)構(gòu)件計(jì)算算由構(gòu)件件接受到到的事件件觸發(fā),,并進(jìn)一一步產(chǎn)生生事件傳傳送到其其它構(gòu)件件,由此此觸發(fā)其其他的計(jì)計(jì)算Rapid模型的執(zhí)執(zhí)行結(jié)果果為一個(gè)個(gè)事件的的集合,,其中的的事件滿滿足一定定的因果果和時(shí)序序關(guān)系包含若干干子語言言類型(types)語言:定定義接口口類型和和函數(shù)類類型,支支持通過過繼承已已有的接接口來構(gòu)構(gòu)造新的的接口類類型模式(pattern)語言:定定義具有有因果、、獨(dú)立、、時(shí)序等等關(guān)系的的事件所所構(gòu)成的的事件模模式體系結(jié)構(gòu)構(gòu)(architecture)語言:通通過定義義同步和和通信連連接來描描述構(gòu)件件之間的的事件流流約束(constraint)語言:定定義構(gòu)件件行為和和體系結(jié)結(jié)構(gòu)所滿滿足的形形式化約約束,其其中約束束為需要要的或禁禁止的偏偏序模式式可執(zhí)行(executable)語言:包包含描述述構(gòu)件行行為的控控制結(jié)構(gòu)構(gòu)優(yōu)點(diǎn)提供多種種分析工工具,基基于檢測測在某個(gè)個(gè)模擬過過程中的的事件是是否違反反了已定定義的偏偏序關(guān)系系基于接口定義義體系結(jié)構(gòu),,可以在體系系結(jié)構(gòu)定義中中使用尚未存存在的構(gòu)件,,只要構(gòu)件符符合特定接口口就可以了Rapide的語法(1)一個(gè)體系結(jié)構(gòu)包括構(gòu)件類型(interfaces)接口元素(functions)的同步通訊providesrequires接口元素(events)的異步通訊inactionoutaction連接件(connections)約束(constraints)Rapide的語法(2)Rapide事件模式Evt1(?prm)andEvt2(?prm);Evt1→Evt2;Evt1<Evt2;Evt1(?prm)where?prm<0;Rapide構(gòu)件typeApplicationisinterfaceinactionRequest(p:params);outactionResults(p:params);behavior(?MinString)Receive(?M)=>Results(?M);endApplication;C2概述(1)C2和其提供的設(shè)設(shè)計(jì)環(huán)境(Argo)支持采用基基于時(shí)間的風(fēng)風(fēng)格來描述用用戶界面系統(tǒng)統(tǒng),并支持使使用可替換、、可復(fù)用的構(gòu)構(gòu)件開發(fā)應(yīng)用用系統(tǒng)體系結(jié)結(jié)構(gòu)。在C2中,連接件負(fù)負(fù)責(zé)構(gòu)件之間間消息的傳遞遞,而構(gòu)件維維持狀態(tài)、執(zhí)執(zhí)行操作并通通過兩個(gè)名字字分別為“top”和“bottom”的端口和其它它的構(gòu)件交換換信息。每個(gè)接口包含含一種可發(fā)送送的消息和一一組可接收的的消息。構(gòu)件件之間的消息息要么是請求求其它構(gòu)件執(zhí)執(zhí)行某個(gè)操作作的請求消息息,要么是通通知其他構(gòu)件件自身執(zhí)行了了某個(gè)操作或或狀態(tài)發(fā)生改改變的通知消消息。C2概述(2)構(gòu)件之間的消消息交換不能能直接進(jìn)行,,而只能通過過連接件來完完成。每個(gè)構(gòu)構(gòu)件接口最多多只能和一個(gè)個(gè)連接件相連連,而連接件件可以和任意意數(shù)目的構(gòu)件件或連接件相相連。請求消息只能能向上層傳送送而通知消息息只能向下層層傳送。通知消息的傳傳遞只對應(yīng)于于構(gòu)件內(nèi)部的的操作,而和和接收消息的的構(gòu)件的需求求無關(guān)。C2對構(gòu)件和連接接件的實(shí)現(xiàn)語語言、實(shí)現(xiàn)構(gòu)構(gòu)件的線程控控制、構(gòu)件的的部署以及連連接件使用的的通訊協(xié)議等等都不加限制制。C2對構(gòu)件接接口的描述C2對構(gòu)件的的描述component_message_interface::=top_domain_interfacebottom_domain_interfacetop_domain_interface::=top_domainisoutinterface_requestsininterface_notificationsbottom_domain_interface::=bottom_domainisoutinterface_notificationsininterface_requestsinterface_requests::={request;}|null;interface_notifications::={notification;}|null;request::=message_name(request_parameters)request_parameters::=[tocomponent_name][parameter_list]notification::=message_name[parameter_list]會(huì)議安排系統(tǒng)統(tǒng)的C2風(fēng)格格C2對MeetgingInitiator構(gòu)件的描述(1)componentMeetingInitiatorisinterfacetop_domainisoutGetPrefSet();GetExclSet();GetEquipReqts();GetLocPrefs();RemoveExclSet();RequestWithdrawal(toAttendee);RequestWithdrawal(toImportantAttendee);AddPrefDates();MarkMtg(d:date;l:lov_type);C2對MeetgingInitiator構(gòu)件的描述(2)inPrefSet(p:date_mg);ExclSet(e:data_mg);EquipReqts(eq:equip_type);LocPref(l:loc_type);behaviorstartupalways_generateGetPrefSet,GetExclSet,GetEquipReqts,GetLocPrefs;received_messagesPrefSetmay_generateRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesExclSetmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesEquipReqtsmay_generateAddPrefDatesxorRemoveExclSetxorRequestWithdrawalxorMarkMtg;received_messagesLocPrefalways_generatenull;endMeetingInitiator;C2對Attendee構(gòu)件的描述(1)componentAttendeeisinterfacebottom_domainisoutPrefSet(p:date_mg);ExclSet(e:date_mg);EquipReqts(eq:equip_type);inGetPrefSet();GetExclSet();GetEquipReqts();RemoveExclSet();RequestWithdrawal();AddPrefDates();MarkMtg(d:date;l:loc_type);C2對Attendee構(gòu)件件的的描描述述(2)behaviorreceived_messagesGetPrefSetalways_generatePrefSet;received_messagesAddPrefDatesalways_generatePrefSet;received_messagesGetExclSetalways_generateExclSet;received_messagesGetEqipReqtsalways_generateEqipReqts;received_messagesRemoveExclSetalways_generateExclSet;received_messagesReuestWithdrawalalways_generatenull;received_messagesMarkMtgalways_generatenull;endAttendee;C2對ImportantAttendee構(gòu)件件的的描描述述componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);ExclSet(e:date_mg);EquipReqts(eq:equip_type);inGetLocPrefs();behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;C2對對體體系系結(jié)結(jié)構(gòu)構(gòu)的的描描述述architectureMeetingSchedulerisconceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;connectorsconnectorMainConnismessage_filterno_filtering;connectorAttConnismessage_filterno_filtering;connectorImportantAttConnismessage_filterno_filtering;architectural_topologyconnectorAttConnconnectionstop_portsAttendee;bottom_portsMainConn;connectorImportantAttConnconnectionstop_portsImportantAttendee;bottom_portsMainConn;connectorMainConnconnectionstop_portsAttConn;ImportantAttConn;bottom_portsMeetingInitiator;endMeetingScheduler;C2對對會(huì)會(huì)議議安安排排系系統(tǒng)統(tǒng)的的描描述述systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;MeetingInitiatorinstanceMtgInit_1;endMeetingScheduler_1;ADL實(shí)例—ACMEAcme是一種種體系系結(jié)構(gòu)構(gòu)交換換語言言,旨旨在解解決目目前出出現(xiàn)的的眾多多ADLs之間的的不兼兼容問問題Acme提供了了一個(gè)個(gè)統(tǒng)一一的結(jié)結(jié)構(gòu)化化框架架,描描述公公共的的體系系結(jié)構(gòu)構(gòu)信息息通過注注釋的的方法法,刻刻劃特特定于于某種種ADL的信息息從不同同方面面對體體系結(jié)結(jié)構(gòu)進(jìn)進(jìn)行描描述結(jié)構(gòu)屬性約束類型和和風(fēng)格格結(jié)構(gòu)Acme使用七七種成成分描描述一一個(gè)系系統(tǒng)的的體系系結(jié)構(gòu)構(gòu):構(gòu)件(components)連接件件(connectors)端口(ports)角色(roles)系統(tǒng)(systems)表示(representations)性質(zhì)(properties)系統(tǒng)成成分在Acme中,軟軟件體體系結(jié)結(jié)構(gòu)描描述了了構(gòu)件件和構(gòu)構(gòu)件之之間的的相互互關(guān)系系。構(gòu)件是是實(shí)施施計(jì)算算和存存放狀狀態(tài)的的場所所,每每個(gè)構(gòu)構(gòu)件通通過接接口規(guī)規(guī)約(interfacespecification)定義了了一組組屬性性,包包括功功能屬屬性和和非功功能屬屬性兩兩個(gè)方方面,,每個(gè)個(gè)構(gòu)件件屬于于某個(gè)個(gè)類型型或子子類型型(例例如,,過濾濾器、、客戶戶、服服務(wù)器器等))。連接件件是表表達(dá)構(gòu)構(gòu)件之之間關(guān)關(guān)系的的場所所,每每個(gè)連連接件件通過過協(xié)議議規(guī)約約(protocolspecification)定義了了一組組屬性性,規(guī)規(guī)定了了它能能連接接的接接口類類型、、事件件發(fā)生生的順順序、、對交交互的的承諾諾等,,每個(gè)個(gè)連接接件屬屬于某某個(gè)類類型或或子類類型((例如如,遠(yuǎn)遠(yuǎn)程過過程調(diào)調(diào)用、、管道道、消消息廣廣播、、事件件等))。打個(gè)形形象的的比喻喻,每每個(gè)構(gòu)構(gòu)件通通過接接口規(guī)規(guī)范定定義了了一組組“演演員””,每每個(gè)連連接件件通過過協(xié)議議規(guī)范范定義義了一一組““角色色”,,只有有當(dāng)構(gòu)構(gòu)件中中的““演員員”和和連接接件中中的““角色色”匹匹配時(shí)時(shí),它它們才才能連連接在在一起起。Systemsimple_cs={Componentclient={Portsend-request;}Componentserver={Portreceive-request;}Connectorrpc={Rolecaller;Rolecallee;}Attachments{client.send-requesttorpc.caller;server.receive-requesttorpc.callee}}ACME的例子子屬性記錄一一個(gè)系系統(tǒng)體體系結(jié)結(jié)構(gòu)的的非結(jié)結(jié)構(gòu)屬屬性取取決于于系統(tǒng)統(tǒng)的特特性、、所需需要的的分析析種類類、可可以獲獲得的的工具具和在在描述述中所所包括括的詳詳細(xì)程程度ACME采采用屬屬性列列表對對體系系結(jié)構(gòu)構(gòu)進(jìn)行行注釋釋,每每個(gè)屬屬性有有名稱稱、可可選類類型和和值利用屬屬性列列表記記錄與與體系系結(jié)構(gòu)構(gòu)相關(guān)關(guān)的分分析和和設(shè)計(jì)計(jì)細(xì)節(jié)節(jié)Systemsimple_cs={Componentclient={Portsend-request;Properties{request-rate:float=17.0;source-code:external-file="CODE-LIB/client.c"}}Componentserver={Portreceive-request;Properties{boolean=true;max-concurrent-clieidempotence:nts:integer=1;source-code:external-file="CODE-LIB/server.c"}}Connectorrpc={Rolecaller;Rolecallee;Properties{synchronous:boolean=true;max-roles:integer=2}}Attachments{client.send-requesttorpc.caller;server.receive-requesttorpc.callee}}設(shè)計(jì)約約束ACME使使用一一階謂謂詞邏邏輯的的約束束語言言來描描述設(shè)設(shè)計(jì)約約束約束可可以與與任何何設(shè)計(jì)計(jì)元素素相關(guān)關(guān)聯(lián)Connected(comp1,comp2)如果構(gòu)構(gòu)件comp1與comp2之間至少有有一個(gè)連接接件,則取取True,否則取FalseReachable(comp1,comp2)如果構(gòu)件Comp2處在Connected(comp1,*)上,則取True,否則取FalseHasProperty(elt,propName)如果元素elt有一個(gè)屬性性,取名為為ProNameHasType(elt,typeName)如果元素elt有一個(gè)類型型,取名為為TypeName。。。類型和風(fēng)格格風(fēng)格允許定定義領(lǐng)域特特定的或應(yīng)應(yīng)用特定的的設(shè)計(jì)詞匯匯,以及如如何使用這這些詞匯的的約束ACME風(fēng)格定義中中的基本構(gòu)構(gòu)造塊是一一個(gè)類型系系統(tǒng)屬性類型、、結(jié)構(gòu)類型型和風(fēng)格ComponentTypeClient={PortRequest={Propertyprotocol:CSProtocolT};PropertyRequest-rate:Float;Invariantsize(self.Ports)<=5;InvariantRequest-rate>=0;Heuristicrequest-rate<100;}風(fēng)格一組結(jié)構(gòu)元元素和屬性性、一組約約束、默認(rèn)認(rèn)結(jié)構(gòu)FamilyPipeFilterFam={ComponetTypeFilterT={Ports{stdin;stdput};Propertythroughout:int;};CompontTypeUnixFilterTextendsFilterTwith{Portstderr;PropertyimplementationFile:String;};connectorTypePineT={roles{source;sink}propertybufferSize:int;}PropertyTypeStringMsgFormatT=Record[size:int;msg:String];InvariantForallcinself.Connectors@HasType(c,pipeT);}軟件體系結(jié)結(jié)構(gòu)與UMLUML簡介UML(UnifiedModelingLanguage)是下面這些些最好的建建模方法中中最好部分分的集成商務(wù)流程模模型(WorkFlow)對象建模方方法構(gòu)件建模思思想U(xiǎn)ML是一種用可可視化方法法對軟件系系統(tǒng)進(jìn)行描描述、實(shí)施施和說明的的標(biāo)準(zhǔn)語言言。適用于各種種軟件開發(fā)發(fā)方法、軟軟件生命周周期的哥哥哥階段、各各種應(yīng)用領(lǐng)領(lǐng)域以及各各種開發(fā)工工具,總結(jié)結(jié)了以往建建模技術(shù)的的經(jīng)驗(yàn)并吸吸收當(dāng)今優(yōu)優(yōu)秀成果的的標(biāo)準(zhǔn)建模模方法。UML簡介介UML簡介介UML簡介介UseCaseDiagramsUseCaseDiagrams用例圖ScenarioDiagramsScenarioDiagrams協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖ComponentDiagramsComponentDiagrams部署圖StateDiagramsStateDiagrams對象圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖UseCaseDiagramsUseCaseDiagrams序列圖StateDiagramsStateDiagrams類圖活動(dòng)圖UML用例圖用于顯示若若干角色以以及這些角角色與系統(tǒng)統(tǒng)提供的用用例之間的的連接關(guān)系系。用例是是系統(tǒng)提供供的功能的的描述類圖表示系統(tǒng)中中的類和類類與類之間間的關(guān)系,,它是對系系統(tǒng)靜態(tài)結(jié)結(jié)構(gòu)的描述述序列圖用來反映若若干個(gè)對象象之間的動(dòng)動(dòng)態(tài)協(xié)作關(guān)關(guān)系,也就就是隨著時(shí)時(shí)間的推移移,對象之之間是如何何交互的協(xié)作圖描述對象間間的協(xié)作關(guān)關(guān)系,協(xié)作作圖跟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論