![軟件體系結(jié)構(gòu)描述語言講義_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/cafcf49e-73be-4e04-a9c5-640a56d8048f/cafcf49e-73be-4e04-a9c5-640a56d8048f1.gif)
![軟件體系結(jié)構(gòu)描述語言講義_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/cafcf49e-73be-4e04-a9c5-640a56d8048f/cafcf49e-73be-4e04-a9c5-640a56d8048f2.gif)
![軟件體系結(jié)構(gòu)描述語言講義_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/cafcf49e-73be-4e04-a9c5-640a56d8048f/cafcf49e-73be-4e04-a9c5-640a56d8048f3.gif)
![軟件體系結(jié)構(gòu)描述語言講義_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/cafcf49e-73be-4e04-a9c5-640a56d8048f/cafcf49e-73be-4e04-a9c5-640a56d8048f4.gif)
![軟件體系結(jié)構(gòu)描述語言講義_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/cafcf49e-73be-4e04-a9c5-640a56d8048f/cafcf49e-73be-4e04-a9c5-640a56d8048f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件體系結(jié)構(gòu)描述語言講義軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)(Software Architecture)四、軟件體系結(jié)構(gòu)描述語言四、軟件體系結(jié)構(gòu)描述語言標(biāo)書標(biāo)書 吹噓自己(不溫不火地貶低對手)吹噓自己(不溫不火地貶低對手) 提出自己的設(shè)計(jì)方案(體系結(jié)構(gòu))提出自己的設(shè)計(jì)方案(體系結(jié)構(gòu)) 吹噓自己的方案(不溫不火地貶低對手的吹噓自己的方案(不溫不火地貶低對手的方案)方案)描述和講解體系結(jié)構(gòu)設(shè)計(jì)方案是非常重要的描述和講解體系結(jié)構(gòu)設(shè)計(jì)方案是非常重要的技術(shù)技術(shù)假定你是假定你是Module Designer 你最近加盟一家公司,并被安排在一個新你最近加盟一家公司,并被安排在一個新項(xiàng)目的開發(fā)組中。雖然你富有經(jīng)驗(yàn),但是
2、項(xiàng)目的開發(fā)組中。雖然你富有經(jīng)驗(yàn),但是對此項(xiàng)目所涉及的領(lǐng)域還是一個新手。系對此項(xiàng)目所涉及的領(lǐng)域還是一個新手。系統(tǒng)的高層體系結(jié)構(gòu)設(shè)計(jì)已經(jīng)完成。統(tǒng)的高層體系結(jié)構(gòu)設(shè)計(jì)已經(jīng)完成。 你的老板(項(xiàng)目經(jīng)理)讓你預(yù)計(jì)你將要完你的老板(項(xiàng)目經(jīng)理)讓你預(yù)計(jì)你將要完成的幾個模塊的開發(fā)時間。成的幾個模塊的開發(fā)時間。 你怎么辦?你怎么辦?3/24/2022假定你是假定你是Module Designer 你來開發(fā)你來開發(fā)A2和和A3,怎么開始?,怎么開始?3/24/2022假定你是假定你是Consultant(顧問顧問) 你是一個請來的顧問,對一個體系結(jié)構(gòu)設(shè)你是一個請來的顧問,對一個體系結(jié)構(gòu)設(shè)計(jì)進(jìn)行評估。計(jì)進(jìn)行評估。Mod
3、ifibility和和Performance是是重要的體系結(jié)構(gòu)質(zhì)量因素。重要的體系結(jié)構(gòu)質(zhì)量因素。 你會詢問什么樣的信息?你會詢問什么樣的信息?3/24/2022假定你是假定你是Consultant(顧問顧問) 面對這樣的圖,你會有什么反應(yīng)?面對這樣的圖,你會有什么反應(yīng)?3/24/2022假定你是假定你是Consultant(顧問顧問) 面對這樣的圖,你會有什么反應(yīng)?面對這樣的圖,你會有什么反應(yīng)?體系結(jié)構(gòu)文檔的用處體系結(jié)構(gòu)文檔的用處 軟件開發(fā)過程中各種角色之間交流設(shè)計(jì)思軟件開發(fā)過程中各種角色之間交流設(shè)計(jì)思想的媒介想的媒介 進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可以驗(yàn)證進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可以驗(yàn)證體
4、系結(jié)構(gòu)設(shè)計(jì)方案,精煉或改變必要的方體系結(jié)構(gòu)設(shè)計(jì)方案,精煉或改變必要的方案案 讓別人理解系統(tǒng)的第一手資料讓別人理解系統(tǒng)的第一手資料3/24/2022與與Module Designer交流交流 基本想法是什么?基本想法是什么? 我該做什么我該做什么 (如,實(shí)現(xiàn)哪些需求如,實(shí)現(xiàn)哪些需求) ? 我該在哪做我該在哪做 (如,這項(xiàng)功能實(shí)現(xiàn)在哪里如,這項(xiàng)功能實(shí)現(xiàn)在哪里) ? 我和誰交互?接口是什么?我和誰交互?接口是什么? 有什么可以復(fù)用的代碼?有什么可以復(fù)用的代碼? 必須遵從什么約定必須遵從什么約定(質(zhì)量目標(biāo)、舊體系質(zhì)量目標(biāo)、舊體系/接口、預(yù)算等接口、預(yù)算等)? 有哪些硬性規(guī)定有哪些硬性規(guī)定(設(shè)計(jì)、接口、
5、約束等設(shè)計(jì)、接口、約束等)?3/24/2022與顧問交流與顧問交流 體系結(jié)構(gòu)的必要需求體系結(jié)構(gòu)的必要需求(driving requirement)是什么是什么(如如,performance, availability, security, modifiability, interoperability)? 各種體系結(jié)構(gòu)視圖是如何描述的?各種體系結(jié)構(gòu)視圖是如何描述的? 抽象出來什么?抽象出來什么? 功能怎樣分解?功能怎樣分解? 功能怎樣分配?功能怎樣分配? 使用什么硬件以及軟件怎樣布置在硬件上?使用什么硬件以及軟件怎樣布置在硬件上? 采用了哪些體系結(jié)構(gòu)風(fēng)格?采用了哪些體系結(jié)構(gòu)風(fēng)格?3/24/20
6、22這是什么?這是什么?3/24/2022上圖的毛病上圖的毛病 很多事情沒有說:很多事情沒有說: 組件類型組件類型 連接件類型連接件類型 圓圈和箭頭代表什么?圓圈和箭頭代表什么? 這種布局的意義是什么?這種布局的意義是什么? 為什么為什么CP要放在上層?要放在上層? 只畫出方框和線條不是體系結(jié)構(gòu),只是體只畫出方框和線條不是體系結(jié)構(gòu),只是體系結(jié)構(gòu)的開始系結(jié)構(gòu)的開始好的體系結(jié)構(gòu)文檔的必要元素好的體系結(jié)構(gòu)文檔的必要元素 需求陳述需求陳述 商業(yè)環(huán)境、產(chǎn)品的背景、領(lǐng)域商業(yè)環(huán)境、產(chǎn)品的背景、領(lǐng)域 描述環(huán)境描述環(huán)境 必須和什么系統(tǒng)交互、外部接口必須和什么系統(tǒng)交互、外部接口 使用體系結(jié)構(gòu)圖使用體系結(jié)構(gòu)圖 用恰
7、當(dāng)?shù)木€框用恰當(dāng)?shù)木€框 簡潔的說明簡潔的說明3/24/2022好的體系結(jié)構(gòu)文檔的必要元素好的體系結(jié)構(gòu)文檔的必要元素 考慮實(shí)現(xiàn)時的限制考慮實(shí)現(xiàn)時的限制 但是僅在它們能影響體系結(jié)構(gòu)設(shè)計(jì)的范圍內(nèi)但是僅在它們能影響體系結(jié)構(gòu)設(shè)計(jì)的范圍內(nèi) 被限定的下層結(jié)構(gòu)、處理器需求被限定的下層結(jié)構(gòu)、處理器需求 通常包含其他結(jié)構(gòu)圖通常包含其他結(jié)構(gòu)圖 體系結(jié)構(gòu)設(shè)計(jì)的原理體系結(jié)構(gòu)設(shè)計(jì)的原理 它怎樣去符合需求與約束它怎樣去符合需求與約束 其他的設(shè)計(jì)其他的設(shè)計(jì)3/24/2022其他方面其他方面 風(fēng)格風(fēng)格/產(chǎn)品線問題產(chǎn)品線問題 設(shè)計(jì)可變的尺度設(shè)計(jì)可變的尺度 體系結(jié)構(gòu)的那個方面必須不被改變?體系結(jié)構(gòu)的那個方面必須不被改變? 管理問題管
8、理問題 暗含開發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu)暗含開發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu) 體系結(jié)構(gòu)評審情況體系結(jié)構(gòu)評審情況 其他設(shè)計(jì)問題其他設(shè)計(jì)問題 代碼復(fù)用、標(biāo)準(zhǔn)的運(yùn)用代碼復(fù)用、標(biāo)準(zhǔn)的運(yùn)用 風(fēng)險分析風(fēng)險分析 運(yùn)作、管理和維護(hù)運(yùn)作、管理和維護(hù)3/24/2022軟件體系結(jié)構(gòu)的現(xiàn)狀軟件體系結(jié)構(gòu)的現(xiàn)狀 體系結(jié)構(gòu)的理解停留在直覺、逸事和傳說層面 非形式化描述 框線圖 非形式化的陳述 慣用的詞匯傳遞了豐富的語義 RPC Client-Server Pipe and Filter Layered Distributed OO 該層次的非形式化是嚴(yán)重的問題嗎?體系結(jié)構(gòu)描述語言的必要性體系結(jié)構(gòu)描述語言的必要性 體系結(jié)構(gòu)是降低開發(fā)成本的關(guān)鍵 開發(fā)
9、焦點(diǎn)轉(zhuǎn)移到粗粒度系統(tǒng)成分 形式化的體系結(jié)構(gòu)模型是需要的 體系結(jié)構(gòu)描述語言(ADLs)作為一種可能的解決方案被提出 ACME MetaH Aesop Rapide ArTek SADL C2 UniCon Darwin Weaves LILEANNA Wright 若干原型ADLs被開發(fā)出來ADL及其扮演的角色仍是一個開放的問題ADL扮演的角色扮演的角色 提供了描述構(gòu)件及其交互的模型、符號體系和工具 支持大規(guī)模、高層設(shè)計(jì) 支持體系結(jié)構(gòu)風(fēng)格的理性選擇和應(yīng)用 支持抽象 用戶定義 應(yīng)用特定(application-specific) 支持設(shè)計(jì)的實(shí)現(xiàn) 系統(tǒng)化的 (可能)自動化的語言和環(huán)境之間相互作用 語
10、言使能精確的規(guī)約 環(huán)境使得規(guī)約被復(fù)用4.1體系結(jié)構(gòu)描述方法分類體系結(jié)構(gòu)描述方法分類 圖形表達(dá)工具圖形表達(dá)工具 模塊內(nèi)連接語言模塊內(nèi)連接語言 基于構(gòu)件的系統(tǒng)描述語言基于構(gòu)件的系統(tǒng)描述語言 軟件體系結(jié)構(gòu)描述語言軟件體系結(jié)構(gòu)描述語言 圖形表達(dá)工具圖形表達(dá)工具項(xiàng)目管理測試結(jié)果打印程序復(fù)雜度函數(shù)調(diào)用關(guān)系圖帶時間特性的流程圖復(fù)雜度計(jì)算布圖算法最優(yōu)/最劣時間計(jì)算緩沖測試結(jié)果庫測試配置時間分析器靜態(tài)分析器 模塊內(nèi)連接語言模塊內(nèi)連接語言 采用將一種或幾種傳統(tǒng)程序設(shè)計(jì)語言的模塊連接起來的模塊內(nèi)采用將一種或幾種傳統(tǒng)程序設(shè)計(jì)語言的模塊連接起來的模塊內(nèi)連接語言。由于程序設(shè)計(jì)語言和模塊內(nèi)連接語言具有嚴(yán)格的語連接語言。由于
11、程序設(shè)計(jì)語言和模塊內(nèi)連接語言具有嚴(yán)格的語義基礎(chǔ),因此它們能支持對較大的軟件單元進(jìn)行描述,諸如定義基礎(chǔ),因此它們能支持對較大的軟件單元進(jìn)行描述,諸如定義義/使用和扇入使用和扇入/扇出等操作。例如,扇出等操作。例如,Ada語言采用語言采用use實(shí)現(xiàn)包實(shí)現(xiàn)包的復(fù)用,的復(fù)用,Pascal語言采用過程(函數(shù))模塊的交互等。語言采用過程(函數(shù))模塊的交互等。 MIL方式對模塊化的程序設(shè)計(jì)和分段編譯等程序設(shè)計(jì)與開發(fā)方式對模塊化的程序設(shè)計(jì)和分段編譯等程序設(shè)計(jì)與開發(fā)技術(shù)確實(shí)發(fā)揮了很大的作用。但是由于這些語言處理和描述技術(shù)確實(shí)發(fā)揮了很大的作用。但是由于這些語言處理和描述的軟件設(shè)計(jì)開發(fā)層次過于依賴程序設(shè)計(jì)語言,因此
12、限制了它的軟件設(shè)計(jì)開發(fā)層次過于依賴程序設(shè)計(jì)語言,因此限制了它們處理和描述比程序設(shè)計(jì)語言元素更為抽象的高層次軟件體們處理和描述比程序設(shè)計(jì)語言元素更為抽象的高層次軟件體系結(jié)構(gòu)元素的能力。系結(jié)構(gòu)元素的能力。基于構(gòu)件的系統(tǒng)描述語言基于構(gòu)件的系統(tǒng)描述語言 基于軟構(gòu)件的系統(tǒng)描述語言將軟件系統(tǒng)描述成一種是由許多以特定形式基于軟構(gòu)件的系統(tǒng)描述語言將軟件系統(tǒng)描述成一種是由許多以特定形式相互作用的特殊軟件實(shí)體構(gòu)造組成的組織或系統(tǒng)。相互作用的特殊軟件實(shí)體構(gòu)造組成的組織或系統(tǒng)。例如,一種多變配置語言就可以用來在一個較高的抽象層次上對系統(tǒng)的體系結(jié)例如,一種多變配置語言就可以用來在一個較高的抽象層次上對系統(tǒng)的體系結(jié)構(gòu)建模
13、,最初用作設(shè)計(jì)和構(gòu)造復(fù)雜分布式系統(tǒng)的配置說明語言,因具有動態(tài)特構(gòu)建模,最初用作設(shè)計(jì)和構(gòu)造復(fù)雜分布式系統(tǒng)的配置說明語言,因具有動態(tài)特性,也可用來描述動態(tài)體系結(jié)構(gòu)。性,也可用來描述動態(tài)體系結(jié)構(gòu)。 這種表達(dá)和描述方式雖然也是較好的一種以構(gòu)件為單位的軟件系統(tǒng)描述這種表達(dá)和描述方式雖然也是較好的一種以構(gòu)件為單位的軟件系統(tǒng)描述方法,但是他們所面向和針對的系統(tǒng)元素仍然是一些層次較低的以程序方法,但是他們所面向和針對的系統(tǒng)元素仍然是一些層次較低的以程序設(shè)計(jì)為基礎(chǔ)的通信協(xié)作軟件實(shí)體單元,而且這些語言所描述和表達(dá)的系設(shè)計(jì)為基礎(chǔ)的通信協(xié)作軟件實(shí)體單元,而且這些語言所描述和表達(dá)的系統(tǒng)一般而言都是面向特定應(yīng)用的特殊系統(tǒng)
14、,這些特性使得基于構(gòu)件的系統(tǒng)一般而言都是面向特定應(yīng)用的特殊系統(tǒng),這些特性使得基于構(gòu)件的系統(tǒng)描述仍然不是十分適合軟件體系結(jié)構(gòu)的描述和表達(dá)。統(tǒng)描述仍然不是十分適合軟件體系結(jié)構(gòu)的描述和表達(dá)。 軟件體系結(jié)構(gòu)描述語言軟件體系結(jié)構(gòu)描述語言 軟件體系結(jié)構(gòu)的第四種描述和表達(dá)方法是參照傳統(tǒng)程序設(shè)軟件體系結(jié)構(gòu)的第四種描述和表達(dá)方法是參照傳統(tǒng)程序設(shè)計(jì)語言的設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),重新設(shè)計(jì)、開發(fā)和使用針對軟計(jì)語言的設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),重新設(shè)計(jì)、開發(fā)和使用針對軟件體系結(jié)構(gòu)特點(diǎn)的專門的軟件體系結(jié)構(gòu)描述語言件體系結(jié)構(gòu)特點(diǎn)的專門的軟件體系結(jié)構(gòu)描述語言 由于由于ADL是在吸收了傳統(tǒng)程序設(shè)計(jì)中的語義嚴(yán)格精確的特點(diǎn)基是在吸收了傳統(tǒng)程序設(shè)計(jì)中的
15、語義嚴(yán)格精確的特點(diǎn)基礎(chǔ)上,針對軟件體系結(jié)構(gòu)的整體性和抽象性特點(diǎn),定義和確定礎(chǔ)上,針對軟件體系結(jié)構(gòu)的整體性和抽象性特點(diǎn),定義和確定適合于軟件體系結(jié)構(gòu)表達(dá)與描述的有關(guān)抽象元素,因此,適合于軟件體系結(jié)構(gòu)表達(dá)與描述的有關(guān)抽象元素,因此,ADL是當(dāng)前軟件開發(fā)和設(shè)計(jì)方法學(xué)中一種發(fā)展很快的軟件體系結(jié)是當(dāng)前軟件開發(fā)和設(shè)計(jì)方法學(xué)中一種發(fā)展很快的軟件體系結(jié)構(gòu)描述方法,目前,已經(jīng)有幾十種常見的構(gòu)描述方法,目前,已經(jīng)有幾十種常見的ADL4.2軟件體系結(jié)構(gòu)描述框架標(biāo)準(zhǔn)軟件體系結(jié)構(gòu)描述框架標(biāo)準(zhǔn) 鑒于體系結(jié)構(gòu)描述的概念和實(shí)踐的不統(tǒng)一,鑒于體系結(jié)構(gòu)描述的概念和實(shí)踐的不統(tǒng)一,IEEE于于1995年年8月成立了體系結(jié)構(gòu)工作組月成
16、立了體系結(jié)構(gòu)工作組 IEEE P1471 IEEE P1471于于2000年年9月月21日通過日通過IEEE-SA標(biāo)準(zhǔn)委員會評審標(biāo)準(zhǔn)委員會評審。 IEEE P1471適用于軟件密集的系統(tǒng),其目標(biāo)在于:便于體適用于軟件密集的系統(tǒng),其目標(biāo)在于:便于體系結(jié)構(gòu)的表達(dá)與交流,并通過體系結(jié)構(gòu)要素及其實(shí)踐標(biāo)準(zhǔn)系結(jié)構(gòu)的表達(dá)與交流,并通過體系結(jié)構(gòu)要素及其實(shí)踐標(biāo)準(zhǔn)化,奠定質(zhì)量與成本的基礎(chǔ)?;?,奠定質(zhì)量與成本的基礎(chǔ)。 IEEE P1471詳細(xì)介紹了一套體系結(jié)構(gòu)描述的概念框架,并詳細(xì)介紹了一套體系結(jié)構(gòu)描述的概念框架,并給出建立框架的思路。但如何描述以及具體的描述技術(shù)等給出建立框架的思路。但如何描述以及具體的描述技術(shù)等
17、方面缺乏更進(jìn)一步的指導(dǎo)。方面缺乏更進(jìn)一步的指導(dǎo)。 Rational Rational起草了可復(fù)用的軟件資產(chǎn)規(guī)格說明,專門討論了起草了可復(fù)用的軟件資產(chǎn)規(guī)格說明,專門討論了體系結(jié)構(gòu)描述的規(guī)格說明,提出了一套易于復(fù)用的體系結(jié)體系結(jié)構(gòu)描述的規(guī)格說明,提出了一套易于復(fù)用的體系結(jié)構(gòu)描述規(guī)范。該建議草案已經(jīng)提交構(gòu)描述規(guī)范。該建議草案已經(jīng)提交OMG。 基于基于RUP(Rational United Process)、采用)、采用UML模型描述模型描述軟件的體系結(jié)構(gòu),認(rèn)為體系結(jié)構(gòu)描述的關(guān)鍵是定義視點(diǎn)、視軟件的體系結(jié)構(gòu),認(rèn)為體系結(jié)構(gòu)描述的關(guān)鍵是定義視點(diǎn)、視圖以及建模元素之間的映射關(guān)系。圖以及建模元素之間的映射關(guān)系
18、。 與與IEEE P1471相比,該建議標(biāo)準(zhǔn)的體系結(jié)構(gòu)描述方案涉及面相比,該建議標(biāo)準(zhǔn)的體系結(jié)構(gòu)描述方案涉及面比較窄,所注重的層次比較低,因而更具體。由于將體系結(jié)比較窄,所注重的層次比較低,因而更具體。由于將體系結(jié)構(gòu)的描述限于構(gòu)的描述限于UML和和RUP,具有一定的局限性,但該建議標(biāo),具有一定的局限性,但該建議標(biāo)準(zhǔn)結(jié)合了業(yè)界已經(jīng)廣泛采用的建模語言和開發(fā)過程,因而易于準(zhǔn)結(jié)合了業(yè)界已經(jīng)廣泛采用的建模語言和開發(fā)過程,因而易于推廣,可以有效實(shí)現(xiàn)在跨組織之間復(fù)用體系結(jié)構(gòu)描述結(jié)果。推廣,可以有效實(shí)現(xiàn)在跨組織之間復(fù)用體系結(jié)構(gòu)描述結(jié)果。4.3軟件體系結(jié)構(gòu)描述語言軟件體系結(jié)構(gòu)描述語言ADL是在底層語義模型的支持下
19、,為軟件系統(tǒng)的概念體系結(jié)構(gòu)是在底層語義模型的支持下,為軟件系統(tǒng)的概念體系結(jié)構(gòu)建模提供了具體語法和概念框架。基于底層語義的工具為體系建模提供了具體語法和概念框架?;诘讓诱Z義的工具為體系結(jié)構(gòu)的表示、分析、演化、細(xì)化、設(shè)計(jì)過程等提供支持。其三結(jié)構(gòu)的表示、分析、演化、細(xì)化、設(shè)計(jì)過程等提供支持。其三個基本元素是:構(gòu)件、連接件、體系結(jié)構(gòu)配置。個基本元素是:構(gòu)件、連接件、體系結(jié)構(gòu)配置。主要的體系結(jié)構(gòu)描述語言有主要的體系結(jié)構(gòu)描述語言有Aesop、MetaH、C2、Rapide、SADL、Unicon和和Wright等,盡管它們都描述軟件體系結(jié)構(gòu),等,盡管它們都描述軟件體系結(jié)構(gòu),卻有不同的特點(diǎn)。卻有不同的特點(diǎn)
20、。這些這些ADL強(qiáng)調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對體系結(jié)構(gòu)的研究和應(yīng)用強(qiáng)調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對體系結(jié)構(gòu)的研究和應(yīng)用起到了重要的作用,但也有負(fù)面的影響。每一種起到了重要的作用,但也有負(fù)面的影響。每一種ADL都以獨(dú)立的形都以獨(dú)立的形式存在,描述語法不同且互不兼容,同時又有許多共同的特征式存在,描述語法不同且互不兼容,同時又有許多共同的特征ADL與其他語言的比較與其他語言的比較(1)構(gòu)造能力:構(gòu)造能力:ADL能夠使用較小的獨(dú)立體系結(jié)構(gòu)元素來建造大型軟件系能夠使用較小的獨(dú)立體系結(jié)構(gòu)元素來建造大型軟件系統(tǒng);統(tǒng); 抽象能力:抽象能力:ADL使得軟件體系結(jié)構(gòu)中的構(gòu)件和連接件描述可以只關(guān)注它們的使得軟件體系結(jié)構(gòu)
21、中的構(gòu)件和連接件描述可以只關(guān)注它們的抽象特性,而不管其具體的實(shí)現(xiàn)細(xì)節(jié);抽象特性,而不管其具體的實(shí)現(xiàn)細(xì)節(jié);復(fù)用能力:復(fù)用能力:ADL使得組成軟件系統(tǒng)的構(gòu)件、連接件甚至是軟件體系結(jié)構(gòu)都成為使得組成軟件系統(tǒng)的構(gòu)件、連接件甚至是軟件體系結(jié)構(gòu)都成為軟件系統(tǒng)開發(fā)和設(shè)計(jì)的可復(fù)用部件;軟件系統(tǒng)開發(fā)和設(shè)計(jì)的可復(fù)用部件;組合能力:組合能力:ADL使得其描述的每一系統(tǒng)元素都有其自己的局部結(jié)構(gòu),這使得其描述的每一系統(tǒng)元素都有其自己的局部結(jié)構(gòu),這種描述局部結(jié)構(gòu)的特點(diǎn)使得種描述局部結(jié)構(gòu)的特點(diǎn)使得ADL支持軟件系統(tǒng)的動態(tài)變化組合;支持軟件系統(tǒng)的動態(tài)變化組合;異構(gòu)能力:異構(gòu)能力:ADL允許多個不同的體系結(jié)構(gòu)描述關(guān)聯(lián)存在;允許
22、多個不同的體系結(jié)構(gòu)描述關(guān)聯(lián)存在; 分析和推理能力:分析和推理能力:ADL允許對其描述的體系結(jié)構(gòu)進(jìn)行多種不同的性能和允許對其描述的體系結(jié)構(gòu)進(jìn)行多種不同的性能和功能上的多種推理分析。功能上的多種推理分析。 典型元素含義典型元素含義 常見體系結(jié)構(gòu)元素常見體系結(jié)構(gòu)元素ADL定義定義 定義 ADL是一種語言,提供了對軟件系統(tǒng)概念體系結(jié)構(gòu)進(jìn)行建模的特性(features) 基本特性:對以下成分進(jìn)行顯式規(guī)約 構(gòu)件(components) 連接件(connectors) 配置(configurations)ADL構(gòu)件構(gòu)件 定義 構(gòu)件是計(jì)算或數(shù)據(jù)存儲單元 構(gòu)件是計(jì)算和狀態(tài)的場所 所有的ADLs支持構(gòu)件建模 不同
23、的術(shù)語 構(gòu)件(component) 接口(interface) 進(jìn)程(process)ADL連接件連接件 定義 連接件是組成體系結(jié)構(gòu)的“積木”,用于模型化構(gòu)件之間的交互,以及指導(dǎo)這些交互的規(guī)則 所有的ADLs支持連接件建模 一些ADLs不把連接件作為第一類實(shí)體建模 所有的ADLs至少支持語法連接(interconnection) 不同的術(shù)語 連接件(connector) 連接(connection) 綁定(binding)ADL配置配置 定義 體系結(jié)構(gòu)配置體系結(jié)構(gòu)配置或拓?fù)渫負(fù)涫菢?gòu)件和連接件的連接圖,描述了系統(tǒng)的體系結(jié)構(gòu) 通過定義,ADLs必須顯式地建模配置 配置有助于確保體系結(jié)構(gòu)屬性 構(gòu)件是
24、否正確連接、接口是否匹配、通信是否正確、組合語義是否適合 并發(fā)和分布屬性 遵守設(shè)計(jì)啟發(fā)規(guī)則和風(fēng)格規(guī)則4.4典型軟件體系結(jié)構(gòu)描述語言典型軟件體系結(jié)構(gòu)描述語言ADL實(shí)例實(shí)例 UniConUniCon: Universal Connector languageCMU開發(fā),支持對體系結(jié)構(gòu)的描述。對構(gòu)件交互模式的定位和編碼,并且對需要不同交互模式的構(gòu)件加以區(qū)分。提供對大量構(gòu)件和連接件的統(tǒng)一訪問區(qū)分不同類型的構(gòu)件和連接件以便對體系結(jié)構(gòu)配置進(jìn)行檢查 支持不同的表示方法和不同開發(fā)人員的分析工具支持對現(xiàn)有構(gòu)件的使用通過定義類型、特性列表與用于和連接件相連的交互點(diǎn)來描述構(gòu)件 構(gòu)件的交互點(diǎn)稱為端口連接件的交互點(diǎn)稱為
25、角色系統(tǒng)組合構(gòu)造就是通過定義構(gòu)件端口和連接件角色之間的連接來完成的預(yù)定義的構(gòu)件和連接件類型 構(gòu)件類型:模塊 (module),計(jì)算(computation),過濾器 (filter),進(jìn)程 (process), 連接件類型:管道(pipe),文件IO (file IO),過程調(diào)用 (procedure call),數(shù)據(jù)訪問 (data access),遠(yuǎn)程過程調(diào)用 (remote proc call),為構(gòu)件連接生成“膠水”代碼實(shí)現(xiàn)約束允許非功能屬性規(guī)約UniCon的語法的語法 (1) 一個體系結(jié)構(gòu)是包含以下成分的復(fù)合構(gòu)件(composite component) 原子(atomic)或復(fù)合構(gòu)
26、件類型包括 接口 (interface) 預(yù)定義的演員(players)和屬性(attributes)集合 預(yù)定義的每個演員的屬性集合 實(shí)現(xiàn) (implementation) 連接件類型 協(xié)議 (protocol) 預(yù)定義的角色角色和屬性集合 為每個角色預(yù)定義的屬性集合 實(shí)現(xiàn) (implementation) 構(gòu)件類型和連接件類型的實(shí)例化 (uses) 實(shí)例的配置 (connect)UniCon的語法的語法 (2) UniCon構(gòu)件演員PLAYER input IS StreamInMAXASSOCS (1)MINASSOCS (1)SIGNATURE (“l(fā)ine”)PORTBINDING
27、(pipe.Source)END input UniCon連接件角色約束ROLE output IS SourceMAXCONNS (1)ACCEPT (Filter.StreamIn)END outputUniCon的語法的語法 (3) UniCon配置USES p1 PROTOCOL Unix-pipeUSES sorter INTERFACE Sort-filterCONNECT sorter.output TO p1.sourceUSES p2 PROTOCOL Unix-pipeUSES printer INTERFACE Print-filterCONNECT sorter.inp
28、ut TO p2.sinkADL實(shí)例實(shí)例 Rapide Stanford Uni.開發(fā),可執(zhí)行的ADL。目的在于定義并模仿基于事件的行為對分布式并發(fā)系統(tǒng)建模。 集中于動態(tài)行為的建模和模擬 通過事件的偏序集合刻畫系統(tǒng)的行為 (posets) 構(gòu)件計(jì)算由構(gòu)件接受到的事件觸發(fā),并進(jìn)一步產(chǎn)生事件傳送到其它構(gòu)件,由此觸發(fā)其他的計(jì)算 Rapid模型的執(zhí)行結(jié)果為一個事件的集合,其中的事件滿足一定的因果和時序關(guān)系包含若干子語言類型 (types)語言:定義接口類型和函數(shù)類型,支持通過繼承已有的接口來構(gòu)造新的接口類型模式 (pattern)語言:定義具有因果、獨(dú)立、時序等關(guān)系的事件所構(gòu)成的事件模式體系結(jié)構(gòu) (a
29、rchitecture)語言:通過定義同步和通信連接來描述構(gòu)件之間的事件流 約束 (constraint)語言:定義構(gòu)件行為和體系結(jié)構(gòu)所滿足的形式化約束,其中約束為需要的或禁止的偏序模式可執(zhí)行 (executable)語言:包含描述構(gòu)件行為的控制結(jié)構(gòu)優(yōu)點(diǎn) 提供多種分析工具,基于檢測在某個模擬過程中的事件是否違反了已定義的偏序關(guān)系 基于接口定義體系結(jié)構(gòu),可以在體系結(jié)構(gòu)定義中使用尚未存在的構(gòu)件,只要構(gòu)件符合特定接口就可以了Rapide的語法的語法 (1) 一個體系結(jié)構(gòu)體系結(jié)構(gòu)包括 構(gòu)件類型 (interfaces) 接口元素(functions)的同步通訊 provides requires 接口
30、元素(events)的異步通訊 in action out action 連接件 (connections) 約束 (constraints)Rapide的語法的語法 (2) Rapide事件模式Evt1(?prm) and Evt2(?prm);Evt1Evt2;Evt1 Evt2;Evt1(?prm) where ?prm Results(?M);end Application;C2概述概述(1) C2和其提供的設(shè)計(jì)環(huán)境(和其提供的設(shè)計(jì)環(huán)境(Argo)支持采用基于時間的)支持采用基于時間的風(fēng)格來描述用戶界面系統(tǒng),并支持使用可替換、可復(fù)風(fēng)格來描述用戶界面系統(tǒng),并支持使用可替換、可復(fù)用的構(gòu)件開
31、發(fā)應(yīng)用系統(tǒng)體系結(jié)構(gòu)。用的構(gòu)件開發(fā)應(yīng)用系統(tǒng)體系結(jié)構(gòu)。 在在C2中,連接件負(fù)責(zé)構(gòu)件之間消息的傳遞,而構(gòu)件維中,連接件負(fù)責(zé)構(gòu)件之間消息的傳遞,而構(gòu)件維持狀態(tài)、執(zhí)行操作并通過兩個名字分別為持狀態(tài)、執(zhí)行操作并通過兩個名字分別為“top”和和“bottom”的端口和其它的構(gòu)件交換信息。的端口和其它的構(gòu)件交換信息。 每個接口包含一種可發(fā)送的消息和一組可接收的消每個接口包含一種可發(fā)送的消息和一組可接收的消息。構(gòu)件之間的消息要么是請求其它構(gòu)件執(zhí)行某個息。構(gòu)件之間的消息要么是請求其它構(gòu)件執(zhí)行某個操作的請求消息,要么是通知其他構(gòu)件自身執(zhí)行了操作的請求消息,要么是通知其他構(gòu)件自身執(zhí)行了某個操作或狀態(tài)發(fā)生改變的通知消息
32、。某個操作或狀態(tài)發(fā)生改變的通知消息。C2概述概述(2) 構(gòu)件之間的消息交換不能直接進(jìn)行,而只能通過連接構(gòu)件之間的消息交換不能直接進(jìn)行,而只能通過連接件來完成。每個構(gòu)件接口最多只能和一個連接件相連件來完成。每個構(gòu)件接口最多只能和一個連接件相連,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連。,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連。 請求消息只能向上層傳送而通知消息只能向下層傳送。請求消息只能向上層傳送而通知消息只能向下層傳送。 通知消息的傳遞只對應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消通知消息的傳遞只對應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無關(guān)。息的構(gòu)件的需求無關(guān)。 C2對構(gòu)件和連接件的實(shí)現(xiàn)語言、實(shí)現(xiàn)
33、構(gòu)件的線程控制、對構(gòu)件和連接件的實(shí)現(xiàn)語言、實(shí)現(xiàn)構(gòu)件的線程控制、構(gòu)件的部署以及連接件使用的通訊協(xié)議等都不加限制。構(gòu)件的部署以及連接件使用的通訊協(xié)議等都不加限制。 C2對構(gòu)件接口的描述對構(gòu)件接口的描述 C2對構(gòu)件的描述對構(gòu)件的描述component_message_interface := top_domain_interface bottom_domain_interface top_domain_interface := top_domain is out interface_requests in interface_notifications bottom_domain_interface
34、 := bottom_domain is out interface_notifications in interface_requestsinterface_requests := request; | null; interface_notifications := notification; | null; request := message_name(request_parameters) request_parameters := to component_nameparameter_list notification := message_nameparameter_list 會
35、議安排系統(tǒng)的會議安排系統(tǒng)的C2風(fēng)格風(fēng)格Attendee-1Attendee-M.AttConnImportantAttendee-1ImportantAttendee-N.ImportantAttConnMainConnMeetingInitiator C2對對MeetgingInitiator構(gòu)件的描述構(gòu)件的描述(1)component MeetingInitiator is interface top_domain is out GetPrefSet(); GetExclSet(); GetEquipReqts(); GetLocPrefs(); RemoveExclSet(); Requ
36、estWithdrawal(to Attendee); RequestWithdrawal(to ImportantAttendee); AddPrefDates(); MarkMtg(d:date;l:lov_type); C2對對MeetgingInitiator構(gòu)件的描述構(gòu)件的描述(2) in PrefSet(p:date_mg); ExclSet(e:data_mg); EquipReqts(eq:equip_type); LocPref(l:loc_type); behavior startup always_generate GetPrefSet, GetExclSet, GetE
37、quipReqts, GetLocPrefs; received_messages PrefSet may_generate RemoveExclSet xor RequestWithdrawal xor MarkMtg; received_messages ExclSet may_generate AddPrefDates xor RemoveExclSet xor RequestWithdrawal xor MarkMtg; received_messages EquipReqts may_generate AddPrefDates xor RemoveExclSet xor Reques
38、tWithdrawal xor MarkMtg; received_messages LocPref always_generate null;end MeetingInitiator; C2對對Attendee構(gòu)件的描述構(gòu)件的描述(1) component Attendee is interface bottom_domain is out PrefSet(p:date_mg); ExclSet(e:date_mg); EquipReqts(eq:equip_type); in GetPrefSet(); GetExclSet(); GetEquipReqts(); RemoveExclSe
39、t(); RequestWithdrawal(); AddPrefDates(); MarkMtg(d:date;l:loc_type); C2對對Attendee構(gòu)件的描述構(gòu)件的描述(2) behaviorreceived_messages GetPrefSet always_generate PrefSet;received_messages AddPrefDates always_generate PrefSet;received_messages GetExclSet always_generate ExclSet;received_messages GetEqipReqts alwa
40、ys_generate EqipReqts;received_messages RemoveExclSet always_generate ExclSet;received_messages ReuestWithdrawal always_generate null;received_messages MarkMtg always_generate null;end Attendee; C2對對ImportantAttendee構(gòu)件的描述構(gòu)件的描述component ImportantAttendee is subtype Attendee(in and beh) interface bott
41、om_domain is out LocPrefs(l:loc_type); ExclSet(e:date_mg); EquipReqts(eq:equip_type); in GetLocPrefs(); behaviorreceived_messages GetLocPrefs always_generate LocPrefs;end ImportantAttendee; C2對體系結(jié)構(gòu)的描述對體系結(jié)構(gòu)的描述architecture MeetingScheduler is conceptual_components Attendee;ImportantAttendee;MeetingIni
42、tiator; connectors connector MainConn is message_filter no_filtering; connector AttConn is message_filter no_filtering; connector ImportantAttConn is message_filter no_filtering; architectural_topology connector AttConn connections top_ports Attendee; bottom_ports MainConn; connector ImportantAttCon
43、n connections top_ports ImportantAttendee; bottom_ports MainConn; connector MainConn connections top_ports AttConn;ImportantAttConn; bottom_ports MeetingInitiator;end MeetingScheduler; C2對會議安排系統(tǒng)的描述對會議安排系統(tǒng)的描述 system MeetingScheduler_1 is architecture MeetingScheduler with Attendee instance Att_1,Att_
44、2,Att_3; ImportantAttendee instance ImpAtt_1,ImpAtt_2; MeetingInitiator instance MtgInit_1;end MeetingScheduler_1; ADL實(shí)例實(shí)例 ACMEAcme是一種體系結(jié)構(gòu)交換語言,旨在解決目前出現(xiàn)的眾多ADLs之間的不兼容問題Acme提供了一個統(tǒng)一的結(jié)構(gòu)化框架,描述公共的體系結(jié)構(gòu)信息通過注釋的方法,刻劃特定于某種ADL的信息從不同方面對體系結(jié)構(gòu)進(jìn)行描述 結(jié)構(gòu)屬性約束 類型和風(fēng)格結(jié)構(gòu)結(jié)構(gòu)Acme使用七種成分描述一個系統(tǒng)的體系結(jié)構(gòu): 構(gòu)件(components) 連接件(connectors)
45、 端口(ports) 角色(roles) 系統(tǒng)(systems) 表示(representations) 性質(zhì)(properties)系統(tǒng)成分系統(tǒng)成分在Acme中,軟件體系結(jié)構(gòu)描述了構(gòu)件和構(gòu)件之間的相互關(guān)系。構(gòu)件是實(shí)施計(jì)算和存放狀態(tài)的場所,每個構(gòu)件通過接口規(guī)約(interface specification)定義了一組屬性,包括功能屬性和非功能屬性兩個方面,每個構(gòu)件屬于某個類型或子類型(例如,過濾器、客戶、服務(wù)器等)。連接件是表達(dá)構(gòu)件之間關(guān)系的場所,每個連接件通過協(xié)議規(guī)約(protocol specification)定義了一組屬性,規(guī)定了它能連接的接口類型、事件發(fā)生的順序、對交互的承諾等,每
46、個連接件屬于某個類型或子類型(例如,遠(yuǎn)程過程調(diào)用、管道、消息廣播、事件等)。打個形象的比喻,每個構(gòu)件通過接口規(guī)范定義了一組“演員”,每個連接件通過協(xié)議規(guī)范定義了一組“角色”,只有當(dāng)構(gòu)件中的“演員”和連接件中的“角色”匹配時,它們才能連接在一起。System simple_cs = Component client = Port send-request; Component server = Port receive-request; Connector rpc = Role caller; Role callee; Attachments client.send-request to rpc
47、.caller ; server.receive-request to rpc.callee ACME的例子的例子屬性屬性 記錄一個系統(tǒng)體系結(jié)構(gòu)的非結(jié)構(gòu)屬性取決記錄一個系統(tǒng)體系結(jié)構(gòu)的非結(jié)構(gòu)屬性取決于系統(tǒng)的特性、所需要的分析種類、可以于系統(tǒng)的特性、所需要的分析種類、可以獲得的工具和在描述中所包括的詳細(xì)程度獲得的工具和在描述中所包括的詳細(xì)程度 ACME采用屬性列表對體系結(jié)構(gòu)進(jìn)行注釋采用屬性列表對體系結(jié)構(gòu)進(jìn)行注釋,每個屬性有名稱、可選類型和值,每個屬性有名稱、可選類型和值 利用屬性列表記錄與體系結(jié)構(gòu)相關(guān)的分析利用屬性列表記錄與體系結(jié)構(gòu)相關(guān)的分析和設(shè)計(jì)細(xì)節(jié)和設(shè)計(jì)細(xì)節(jié)System simple_cs =
48、 Component client = Port send-request; Properties request-rate : float = 17.0; source-code : external-file = CODE-LIB/client.c Component server = Port receive-request; Properties boolean = true; max-concurrent-clieidempotence :nts : integer = 1; source-code : external-file = CODE-LIB/server.c Connec
49、tor rpc = Role caller; Role callee; Properties synchronous : boolean = true; max-roles : integer = 2 Attachments client.send-request to rpc.caller ; server.receive-request to rpc.callee 設(shè)計(jì)約束設(shè)計(jì)約束 ACME使用一階謂詞邏輯的約束語言來描使用一階謂詞邏輯的約束語言來描述設(shè)計(jì)約束述設(shè)計(jì)約束 約束可以與任何設(shè)計(jì)元素相關(guān)聯(lián)約束可以與任何設(shè)計(jì)元素相關(guān)聯(lián)Connected (comp1, comp2) 如果構(gòu)件如果構(gòu)
50、件comp1與與comp2之間至少有一個連接件,則取之間至少有一個連接件,則取True,否則取否則取FalseReachable (comp1, comp2) 如果構(gòu)件如果構(gòu)件Comp2處在處在Connected (comp1, *)上,則取上,則取True,否則取,否則取FalseHasProperty (elt, propName) 如果元素如果元素elt有一個屬性,取名為有一個屬性,取名為ProNameHasType (elt, typeName)如果元素如果元素elt有一個類型,取名為有一個類型,取名為TypeName。類型和風(fēng)格類型和風(fēng)格 風(fēng)格允許定義領(lǐng)域特定的或應(yīng)用特定的設(shè)風(fēng)格允許
51、定義領(lǐng)域特定的或應(yīng)用特定的設(shè)計(jì)詞匯,以及如何使用這些詞匯的約束計(jì)詞匯,以及如何使用這些詞匯的約束 ACME風(fēng)格定義中的基本構(gòu)造塊是一個類風(fēng)格定義中的基本構(gòu)造塊是一個類型系統(tǒng)型系統(tǒng) 屬性類型、結(jié)構(gòu)類型和風(fēng)格屬性類型、結(jié)構(gòu)類型和風(fēng)格Component Type Client = Port Request = Property protocol: CSProtocolT; Property Request-rate: Float; Invariant size(self.Ports) =0; Heuristic request-rate 100; 風(fēng)格風(fēng)格 一組結(jié)構(gòu)元素和屬性、一組約束、默認(rèn)結(jié)構(gòu)一組
52、結(jié)構(gòu)元素和屬性、一組約束、默認(rèn)結(jié)構(gòu)Family PipeFilterFam = Componet Type FilterT = Ports stdin; stdput; Property throughout:int; ; Compont Type UnixFilterT extends FilterT with Port stderr; Property implementationFile: String; ; connector Type PineT = roles source; sink property bufferSize:int; Property Type StringMsg
53、FormatT = Record size:int; msg: String; Invariant Forall c in self.Connectors HasType (c, pipeT);軟件體系結(jié)構(gòu)與軟件體系結(jié)構(gòu)與UML UML簡介簡介 UML(Unified Modeling Language)是下面這些最好的建模方是下面這些最好的建模方法中最好部分的集成法中最好部分的集成 商務(wù)流程模型商務(wù)流程模型(Work Flow) 對象建模方法對象建模方法 構(gòu)件建模思想構(gòu)件建模思想 UML是一種用可視化方法對軟件系統(tǒng)進(jìn)行描述、實(shí)施和說是一種用可視化方法對軟件系統(tǒng)進(jìn)行描述、實(shí)施和說明的標(biāo)準(zhǔn)語言。
54、明的標(biāo)準(zhǔn)語言。 適用于各種軟件開發(fā)方法、軟件生命周期的哥哥階段、適用于各種軟件開發(fā)方法、軟件生命周期的哥哥階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,總結(jié)了以往建模技術(shù)各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。 UML簡介簡介 UML簡介簡介 UML簡介簡介Use CaseDiagramsUse CaseDiagrams用例圖ScenarioDiagramsScenarioDiagrams協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖ComponentDiagramsComponentDiagram
55、s部署圖StateDiagramsStateDiagrams對象圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖Use CaseDiagramsUse CaseDiagrams序列圖StateDiagramsStateDiagrams類圖活動圖UML 用例圖用例圖用于顯示若干角色以及這些角色與系統(tǒng)提供的用例之間的連接關(guān)系。用例是系統(tǒng)提供的功能的描述 類圖類圖表示系統(tǒng)中的類和類與類之間的關(guān)系,它是對系統(tǒng)靜態(tài)結(jié)構(gòu)的描述 序列圖序列圖用來反映若干個對象之間的動態(tài)協(xié)作關(guān)系,也就是隨著時間的推移,對象之間是如何交互的 協(xié)作圖協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖跟序列圖相似,顯示對象
56、間的動態(tài)合作關(guān)系。如果強(qiáng)調(diào)時間和順序,則使用序列圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇協(xié)作圖。這兩種圖合稱為交互圖。 狀態(tài)圖狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充 活動圖活動圖描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動 構(gòu)件圖構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各構(gòu)件之間的依賴關(guān)系 部署圖部署圖部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu) 直接使用直接使用UML建模建模元-元模型元模型模型用戶對象元-元模型層定義了元模型層的規(guī)格說明語言,元模型層為給定的建模語言定義規(guī)格說明,模型層用來定義特定軟件系統(tǒng)的模型,用戶對象用來構(gòu)建給定模型的特定
57、實(shí)例。 直接使用直接使用UML建模建模 語義約束語義約束 由對象約束語言由對象約束語言O(shè)CL表示,表示,OCL基于一階謂詞邏輯基于一階謂詞邏輯,每一個,每一個OCL表達(dá)式都處于一些表達(dá)式都處于一些UML模型元素的模型元素的背景下(由背景下(由“self”引用),可使用該元素的屬性和引用),可使用該元素的屬性和關(guān)系作為其項(xiàng)(關(guān)系作為其項(xiàng)(term),同時),同時OCL定義了在集合(定義了在集合(sets)、袋)、袋(bags)等上的公共操作集和遍歷建模元素等上的公共操作集和遍歷建模元素間關(guān)系的構(gòu)造,因此,其它建模元素的屬性也可以間關(guān)系的構(gòu)造,因此,其它建模元素的屬性也可以作為它的項(xiàng)。作為它的項(xiàng)。 直接使用直接使用UML建模建模 類及其屬性、操作和類之間的靜態(tài)關(guān)系,類的包和它的依賴類及其屬性、操作和類之間的靜態(tài)關(guān)系,類的包和它的依賴關(guān)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025嶺南文化創(chuàng)意產(chǎn)業(yè)園項(xiàng)目啟動儀式籌辦服務(wù)合同協(xié)議書
- 2025含破碎錘挖掘機(jī)買賣合同書
- 2025咖啡粉批發(fā)合同
- 2025金屬制品委托加工合同
- 2023三年級英語上冊 Unit 5 Let's eat The first period第一課時說課稿 人教PEP
- 5 應(yīng)對自然災(zāi)害(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治六年級下冊
- 保母阿姨合同范例
- 人用工合同范例
- 上海檢測合同范例
- 金屬防水材料施工方案
- 新人教版高中數(shù)學(xué)必修第二冊第六章平面向量及其應(yīng)用教案 (一)
- 湖南省長沙市一中2024-2025學(xué)年高一生物上學(xué)期期末考試試題含解析
- 碳纖維增強(qiáng)復(fù)合材料在海洋工程中的應(yīng)用情況
- 公司市場分析管理制度
- 焊接材料制造工-國家職業(yè)標(biāo)準(zhǔn)(2024版)
- 江西省2024年中考數(shù)學(xué)試卷(含答案)
- 2024年200MW-400MWh電化學(xué)儲能電站設(shè)計(jì)方案
- 余土外運(yùn)施工方案
- 中考英語1600詞匯對照表-(帶音標(biāo))
- 虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件全套 陳寶文 項(xiàng)目1-8 虛擬化與云計(jì)算導(dǎo)論- 騰訊云服務(wù)
- JJG 705-2014液相色譜儀行業(yè)標(biāo)準(zhǔn)
評論
0/150
提交評論