国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UML描述的軟件體系結(jié)構(gòu)研究

2012-12-28 12:32李庭磊
關(guān)鍵詞:體系結(jié)構(gòu)部件約束

李庭磊

(廣東電網(wǎng)公司惠州供電局,廣東 惠州 516000)

1 概況

軟件體系結(jié)構(gòu)以部件和連接作為基本的建模實(shí)體,對(duì)部件和連接提供了多重接口,可以描述部件間豐富的交互語(yǔ)義,較好地支持軟件系統(tǒng)一級(jí)的重用及軟件的某些特性分析。當(dāng)前軟件體系結(jié)構(gòu)的描述方法主要用ADL等,這些方法不僅難以被開(kāi)發(fā)人員理解,并且目前沒(méi)有應(yīng)用于工業(yè)界。如果將軟件體系結(jié)構(gòu)與面向?qū)ο蟮拈_(kāi)發(fā)方法統(tǒng)一起來(lái),則一方面可以在軟件開(kāi)發(fā)的設(shè)計(jì)階段分析軟件的某些特性,重用軟件的整個(gè)組織結(jié)構(gòu),另一方面又可以利用面向?qū)ο蠓椒ǖ闹С止ぞ?。統(tǒng)一建模語(yǔ)言(UML)是當(dāng)前主流的面向?qū)ο筌浖_(kāi)發(fā)方法,它引入了形式化定義(對(duì)象約束語(yǔ)言O(shè)CL)有利于描述軟件體系結(jié)構(gòu),同時(shí)又具有很好的擴(kuò)充機(jī)制、眾多的工具支持、與具體程序設(shè)計(jì)語(yǔ)言和開(kāi)發(fā)過(guò)程無(wú)關(guān)等特點(diǎn)。本文選擇UML作為描述軟件體系結(jié)構(gòu)的基礎(chǔ),利用UML的半形式化特性(OCL)和嵌入的擴(kuò)充機(jī)制描述了軟件體系結(jié)構(gòu)核心模型。

2 UML元建模及其可擴(kuò)展機(jī)制

2.1 UML元建模簡(jiǎn)介

通常公認(rèn)的元建模的概念框架基于一個(gè)四層的體系結(jié)構(gòu):元元模型、元模型、模型、用戶(hù)對(duì)象。元元建模層構(gòu)成了元建模體系結(jié)構(gòu)的基礎(chǔ)結(jié)構(gòu),主要責(zé)任是定義描述元模型的語(yǔ)言。在元元模型層上的元元對(duì)象的例子有:元類(lèi)、元屬性和元操作。一個(gè)元模型是一個(gè)元元模型的實(shí)例。元模型層的主要責(zé)任是定義描述模型的語(yǔ)言,比定義它的元元模型更加精細(xì)。在元模型層上的元對(duì)象的例子如:類(lèi)、屬性、操作和構(gòu)件。一個(gè)模型是一個(gè)元模型的實(shí)例,主要責(zé)任是定義描述信息論域的語(yǔ)言。用戶(hù)對(duì)象是一個(gè)模型的實(shí)例,主要責(zé)任是描述一個(gè)特定的信息論域。

2.2 UML的擴(kuò)展機(jī)制

UML提供的擴(kuò)展機(jī)制允許建模者在不改變基本建模語(yǔ)言的前提下根據(jù)實(shí)際需求做相應(yīng)的擴(kuò)展。UML提供構(gòu)造型、標(biāo)記值和約束三種擴(kuò)展機(jī)制來(lái)增加模型中的新構(gòu)造塊、創(chuàng)建新特性和描述新語(yǔ)義:

(1)構(gòu)造型:構(gòu)造型可以為UML增加新事物,它是在一個(gè)已定義完好的模型元素基礎(chǔ)上構(gòu)造出一種新的模型元素。

(2)標(biāo)記值:標(biāo)記值擴(kuò)展UML構(gòu)造塊的特性或標(biāo)記其他模型元素,為UML事物增加新特性。標(biāo)記值可以用來(lái)存儲(chǔ)元素的任意信息,也可以用來(lái)存儲(chǔ)有關(guān)構(gòu)造型模型元素的信息。

(3)約束:用于加入新的規(guī)則或修改已經(jīng)存在的規(guī)則,即利用一個(gè)表達(dá)式把約束信息應(yīng)用于元素上。約束是用文字表達(dá)式來(lái)表示元素、依賴(lài)關(guān)系、注釋上的語(yǔ)義限制。

3 軟件體系結(jié)構(gòu)的描述方法

在目前通用的軟件開(kāi)發(fā)方法中,其描述通常是用非形式化的圖和文本,難以被開(kāi)發(fā)人員理解,更不能用來(lái)分析其一致性和完整性等特性。針對(duì)這些問(wèn)題,一些工業(yè)界和學(xué)術(shù)界的研究者提出了體系結(jié)構(gòu)的形式化描述:體系結(jié)構(gòu)描述語(yǔ)言(ADL),用來(lái)表示和分析體系結(jié)構(gòu)的設(shè)計(jì),同時(shí)提供了顯示、分析、模擬軟件體系結(jié)構(gòu)的相應(yīng)工具,主要的體系結(jié)構(gòu)描述語(yǔ)言有Aesop,Meta-H,C2等,盡管它們都描述軟件體系結(jié)構(gòu),但這些ADL強(qiáng)調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對(duì)體系結(jié)構(gòu)的研究起到了重要作用,但也有負(fù)面的影響,每一種ADL都以獨(dú)立的形式存在,描述語(yǔ)法不同且互不兼容,同時(shí)又有許多共同的特征,這使設(shè)計(jì)人員很難選擇一種合適的ADL,若設(shè)計(jì)特定領(lǐng)域的軟件體系結(jié)構(gòu)又需要從頭開(kāi)始描述,因此,下面我們將體系結(jié)構(gòu)的共同特征提取出來(lái)作為核心模型,該模型可以作為各種ADL映射到UML的共同基礎(chǔ),若要映射某一具體的ADL,只需增加其相關(guān)的約束即可。

4 軟件體系結(jié)構(gòu)的核心模型

綜合軟件體系結(jié)構(gòu)概念及風(fēng)格分析,體系結(jié)構(gòu)的核心模型由5種元素組成:構(gòu)件、連接、配置、端口和角色。其中部件、連接和配置是最基本的元素。

(1)構(gòu)件是具有某種功能可重用的軟件模板單元,表示了系統(tǒng)中主要的計(jì)算元素和數(shù)據(jù)存儲(chǔ)。構(gòu)件有兩種:復(fù)合構(gòu)件和原子構(gòu)件。

(2)連接表示了構(gòu)件之間的交互,簡(jiǎn)單的連接如:pipes,procedure call,event broadcast等,更為復(fù)雜的交互如:數(shù)據(jù)庫(kù)和應(yīng)用之間的SQL連接。

(3)配置表示了構(gòu)件和連接的拓?fù)溥壿嫼图s束。

(4)構(gòu)件的接口由一組端口組成,每個(gè)端口表示了構(gòu)件和外部環(huán)境的交互點(diǎn)。通過(guò)不同的端口類(lèi)型,一個(gè)構(gòu)件可以提供多重接口。連接作為建模軟件體系結(jié)構(gòu)的主要實(shí)體,同樣也有接口,連接的接口由一組角色組成,連接的每一個(gè)角色定義了該連接表示的交互的參與者。

5 軟件體系結(jié)構(gòu)核心模型的UML描述

在UML中選擇與軟件體系結(jié)構(gòu)元素語(yǔ)義相近的元類(lèi),定義它之上的StereoType作為該元類(lèi)的實(shí)例,并用對(duì)象約束語(yǔ)言(OCL)描述軟件體系結(jié)構(gòu)的約束,這樣就可以與UML元模型一致并可重用現(xiàn)有的UML相關(guān)工具。構(gòu)件是一個(gè)封裝的實(shí)體,它的實(shí)現(xiàn)部分不具有對(duì)外的接口。接口由一組Port構(gòu)成。在某些軟件體系結(jié)構(gòu)的研究中,連接只是概念上的抽象,它的具體實(shí)現(xiàn)嵌入在部件之中,一般沒(méi)有相應(yīng)的實(shí)體與之對(duì)應(yīng),在這種情況下,當(dāng)一個(gè)構(gòu)件與預(yù)定義的連接不匹配時(shí),只能對(duì)部件進(jìn)行重寫(xiě),或者對(duì)構(gòu)件進(jìn)行包裝以適應(yīng)新的應(yīng)用背景,這就限制了構(gòu)件的重用。因此,如同構(gòu)件一樣,我們把連接也作為軟件體系結(jié)構(gòu)的重要實(shí)體,將表示Port的StereoType定義在UML的Package之上。使用UML表示軟件體系結(jié)構(gòu)的具體實(shí)現(xiàn)如下:

(1)軟件體系結(jié)構(gòu)僅由其構(gòu)件元素構(gòu)成;

(2)每個(gè)構(gòu)件具有Tagged Value,標(biāo)志它是原子構(gòu)件或是復(fù)合構(gòu)件;

(3)構(gòu)件只能通過(guò)Port與其它連接相關(guān)聯(lián),而不能與其它構(gòu)件相關(guān)聯(lián);

(4)每個(gè)構(gòu)件不能沒(méi)有Port;

(5)構(gòu)件在執(zhí)行時(shí)可以有多個(gè)實(shí)例;

(6)每一個(gè)連接至少與兩個(gè)部件相連;

(7)復(fù)合構(gòu)件的子構(gòu)件只能是由"連接"相連的復(fù)合構(gòu)件或原子構(gòu)件;

(8)原子構(gòu)件不能再包含其它構(gòu)件(原子構(gòu)件或子構(gòu)件);

(9)每個(gè)Port至多只能與一個(gè)連接關(guān)聯(lián);

(10)軟件體系結(jié)構(gòu)的構(gòu)件和連接不參加其語(yǔ)義范圍以外的任何關(guān)聯(lián)。

結(jié)論

通過(guò)利用統(tǒng)一建模語(yǔ)言的擴(kuò)展機(jī)制和對(duì)象約束語(yǔ)言,找到了一種用以描述軟件體系結(jié)構(gòu)的一致并可重用的UML相關(guān)工具,使得軟件體系結(jié)構(gòu)與當(dāng)前的面向?qū)ο蠓椒ǖ玫接行У慕Y(jié)合,提高了軟件重用的抽象層次及軟件的開(kāi)發(fā)效率。本文討論的描述方法對(duì)這一方面的研究作了有益的探索,具有一定的理論指導(dǎo)意義。

[1]李代平.軟件工程[M].北京:清華大學(xué)出版社,2008,1.

[2]Mary Shaw,David Garlan.SoftWare Architecture.Pearson Education.2006

[3]UMLDOCUMENTS,Version1.1.URL,http://www.rational.com/uml.1997

[4]Mary Shaw,Garlan D.SoftWare Architecture:Perspectives on an Emerging Discipline.Englewood Cliffs,NJ:Prentice Hall,1996

[5]Garlan D.Higher-Order Connector,URL[DB/OL].http://www.sei.cmu.edu,1998.

[6]Robbins JE,Medvidovic N.Integrating Architecture Description Language with a Standard Design Method,URL[DB/OL].http://www.ics.uci.edu,1997.

[7]張友生.軟件體系結(jié)構(gòu)[M].清華大學(xué)出版社,2006,11.

猜你喜歡
體系結(jié)構(gòu)部件約束
“碳中和”約束下的路徑選擇
約束離散KP方程族的完全Virasoro對(duì)稱(chēng)
基于Siemens NX和Sinumerik的銑頭部件再制造
部件拆分與對(duì)外漢字部件教學(xué)
基于粒計(jì)算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
水輪機(jī)過(guò)流部件改造與節(jié)能增效
基于DODAF的裝備體系結(jié)構(gòu)設(shè)計(jì)
基于云計(jì)算的航天器控制系統(tǒng)自組織體系結(jié)構(gòu)
不等式約束下AXA*=B的Hermite最小二乘解
孝义市| 蒙城县| 监利县| 泸定县| 盐城市| 青铜峡市| 龙陵县| 建阳市| 夏津县| 措勤县| 辽阳市| 汤阴县| 岳普湖县| 廊坊市| 朔州市| 修水县| 京山县| 息烽县| 水富县| 克拉玛依市| 平泉县| 朝阳县| 历史| 雷波县| 乾安县| 治多县| 绩溪县| 元谋县| 泸州市| 乌海市| 阳谷县| 密云县| 揭西县| 安西县| 张家口市| 林口县| 禹州市| 龙陵县| 永登县| 沁源县| SHOW|