《基于任務(wù)驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目七_(dá)第1頁
《基于任務(wù)驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目七_(dá)第2頁
《基于任務(wù)驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目七_(dá)第3頁
《基于任務(wù)驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目七_(dá)第4頁
《基于任務(wù)驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目七_(dá)第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項目七認(rèn)識UML任務(wù)一認(rèn)識UML的發(fā)展任務(wù)二認(rèn)識UML的結(jié)構(gòu)任務(wù)三認(rèn)識UML的視圖

任務(wù)一認(rèn)識UML的發(fā)展

軟件工程領(lǐng)域在1995年至1997年取得了前所未有的進(jìn)展,其成果超過軟件工程領(lǐng)域過去15年來的成就總和。其中最重要的、具有劃時代重大意義的成果之一就是統(tǒng)一建模語言——UML(UnifiedModelingLanguage)的出現(xiàn)。在世界范圍內(nèi),至少在未來10年內(nèi),UML將是面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言。

操作一UML的發(fā)展歷程

1.UML的定義

UML是軟件界第一個統(tǒng)一的建模語言,該方法結(jié)合了Booch、OMT和OOSE方法的優(yōu)點,統(tǒng)一了符號體系,并從其它的方法和工程實踐中吸收了許多經(jīng)過實際檢驗的概念和技術(shù)。它是一種標(biāo)準(zhǔn)的表示,已成為國際軟件界廣泛承認(rèn)的標(biāo)準(zhǔn)。UML是第三代面向?qū)ο蟮拈_發(fā)方法,是一種基于面向?qū)ο蟮目梢暬耐ㄓ?General)建模語言,為不同領(lǐng)域的用戶提供了統(tǒng)一的交流標(biāo)準(zhǔn)——UML圖。UML應(yīng)用領(lǐng)域很廣泛,可用于軟件開發(fā)建模的各個階段及商業(yè)建模(BusinessModeling),也可用于其它類型的系統(tǒng)。

2.模型的定義

模型是一個系統(tǒng)的完整的抽象。人們對某個領(lǐng)域特定問題的求解及解決方案,對它們的理解和認(rèn)識都蘊(yùn)涵在模型中。

通常,開發(fā)一個計算機(jī)系統(tǒng)是為了解決某個領(lǐng)域特定問題,問題的求解過程,就是從領(lǐng)域問題到計算機(jī)系統(tǒng)的映射(見圖7-1)。

UML作為一種可視化的建模語言,提供了豐富的基于面向?qū)ο蟾拍畹哪P驮丶捌鋱D形表示元素。

圖7-1解決問題域過程

3.UML的發(fā)展過程

20世紀(jì)90年代中期,面向?qū)ο蠓椒ㄒ呀?jīng)成為軟件分析和設(shè)計方法的主流。1994年10月,Booch和Rumbaugh(見圖7-2)開始著手建立統(tǒng)一建模語言的工作。他們首先將Booch93和OMT-2統(tǒng)一起來,并于1995年10月發(fā)布了第一個公開版本,稱為統(tǒng)一方法UM0.8。1995年秋,OOSE方法的創(chuàng)始人Jacobson加入了他們的工作,經(jīng)過他們3人的努力,于1996年6月和10月分別發(fā)表了兩個新的版本,即UML0.9和UML0.91,并重新將UM命名為UML。UML在美國得到工業(yè)界、科技界和應(yīng)用界的廣泛支持,有700多家公司采用了該語言。1996年,一些機(jī)構(gòu)將UML作為其商業(yè)策略的趨勢已日趨明顯,UML的開發(fā)者得到了來自公眾的正面反應(yīng),并倡導(dǎo)成立了UML成員協(xié)會,以完善、加強(qiáng)和促進(jìn)UML定義工作。1997年1月公布了UML1.0版本。1997年7月,在征求了合作伙伴的意見之后,公布了UML1.1版本。自此UML已基本上完成了標(biāo)準(zhǔn)化的工作。1997年11月,OMG(對象管理組織)采納UML1.1作為面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言,UML成為可視化建模語言事實上的工業(yè)標(biāo)準(zhǔn),已穩(wěn)占面向?qū)ο蠹夹g(shù)市場的85%的份額。圖7-3所示為UML的發(fā)展史。圖7-2UML創(chuàng)始人圖7-3UML的發(fā)展史

操作二UML的應(yīng)用

UML的主要目標(biāo)是以面向?qū)ο髨D的方式來描述任何類型的系統(tǒng)。UML最常用于建立軟件系統(tǒng)的模型,也可描述非軟件領(lǐng)域的系統(tǒng),如機(jī)械系統(tǒng)、企業(yè)機(jī)構(gòu)、業(yè)務(wù)過程、信息系統(tǒng)、實時的工業(yè)系統(tǒng)和工業(yè)過程等。

UML是一個通用的、標(biāo)準(zhǔn)的建模語言,任何有靜態(tài)結(jié)構(gòu)、動態(tài)行為的系統(tǒng)都可用來建模。但是UML不是標(biāo)準(zhǔn)的開發(fā)過程,也不是標(biāo)準(zhǔn)的面向?qū)ο箝_發(fā)方法。這是因為軟件開發(fā)過程在很大程度上依賴于問題域、實現(xiàn)技術(shù)和開發(fā)小組,不同的應(yīng)用、不同的開發(fā)人員的開發(fā)過程有很大的差異,這使得開發(fā)方法的標(biāo)準(zhǔn)化工作很難進(jìn)行。因此,把開發(fā)過程從開發(fā)方法中抽取出來,剩下的表示手段和代表語義完全可以實現(xiàn)標(biāo)準(zhǔn)化。表示手段和代表語義組合在一起,即為建模語言。

UML的應(yīng)用貫穿在系統(tǒng)開發(fā)的五個階段。

1.需求分析

該階段可使用用例圖來捕獲用戶的需求,用例圖從用戶的角度來描述系統(tǒng)的功能,表示操作者與系統(tǒng)的一個交互過程。通過用例建模,描述對系統(tǒng)感興趣的外部角色和他們對系統(tǒng)的功能要求。

2.系統(tǒng)分析

分析階段主要關(guān)心問題域中的主要概念,如對象、類以及它們之間的關(guān)系等,需要建立系統(tǒng)的靜態(tài)模型,可用類圖來描述。為了實現(xiàn)用例,類之間需要協(xié)作,可以用動態(tài)模型的狀態(tài)圖、順序圖和合作圖來描述。在分析階段,只考慮問題域中的對象建模,通過靜態(tài)模型和動態(tài)模型來描述系統(tǒng)結(jié)構(gòu)和系統(tǒng)行為。

3.系統(tǒng)設(shè)計

在分析階段建立分析模型的基礎(chǔ)上,考慮定義軟件系統(tǒng)中的技術(shù)細(xì)節(jié)用到的類,如引入處理用戶交互的接口類、處理數(shù)據(jù)的類、處理通信和并行性的類。因此,設(shè)計階段為實現(xiàn)階段提供了更詳細(xì)的設(shè)計說明。

4.構(gòu)造

實現(xiàn)階段的任務(wù)是使用面向?qū)ο蟪绦蛟O(shè)計語言,將來自設(shè)計階段的類轉(zhuǎn)換成源程序代碼,用構(gòu)件圖來描述代碼構(gòu)件的物理結(jié)構(gòu)以及構(gòu)件之間的關(guān)系,用配置圖來描述和定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。

5.測試

UML建立的模型也是測試階段的依據(jù)。可使用類圖進(jìn)行單元測試,可使用構(gòu)件圖、合作圖進(jìn)行集成測試,可使用用例圖進(jìn)行確認(rèn)測試,以驗證測試結(jié)果是否滿足用戶的需求。

Java、C++等程序設(shè)計語言用來編碼實現(xiàn)一個軟件系統(tǒng)。UML用來對一個軟件系統(tǒng)建立模型。

操作三UML的特點

(1)統(tǒng)一標(biāo)準(zhǔn)。UML統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念,已成為OMG的正式標(biāo)準(zhǔn),提供了標(biāo)準(zhǔn)的面向?qū)ο蟮哪P驮氐亩x和表示。

(2)面向?qū)ο蟆ML吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長處。UML的符號表示考慮了各種方法的圖形表示,刪掉了大量易引起混亂的、多余的和極少使用的符號,也添加了一些新符號。

(3)可視化、表示能力強(qiáng)。系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型都能用UML模型清晰地表示,可用于復(fù)雜軟件系統(tǒng)的建模。

(4)獨立于過程。UML是系統(tǒng)建模語言,獨立于開發(fā)過程。

(5)易掌握、易用。由于UML的概念明確,建模表示法簡潔明了,圖形結(jié)構(gòu)清晰,因此易于掌握使用。

任務(wù)二認(rèn)識UML的結(jié)構(gòu)

操作一UML的主要內(nèi)容

UML的定義包括UML語義和UML表示法兩個部分。

1.UML語義

UML語義描述基于UML的精確元模型(Meta-Model)定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的表達(dá)方法所造成的影響。此外UML還支持對元模型的擴(kuò)展定義。

UML支持各種類型的語義,如布爾、表達(dá)式、列表、階、名字、坐標(biāo)、字符串和時間等,還允許用戶自定義類型。

2.UML表示法

UML表示法是定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用。這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級的模型,在語義上它是UML元模型的實例。

操作二UML的構(gòu)成

作為建模語言,UML由以下幾部分構(gòu)成(見圖7-4):

●基本語言組成:語言的構(gòu)成成分,包括要素、關(guān)系、圖。

●語義規(guī)則:語言的語法和語義規(guī)則。

●公共機(jī)制:規(guī)范說明、語言擴(kuò)展等。圖7-4UML的構(gòu)成

UML語言的構(gòu)成成分包括要素、關(guān)系、圖。

1.UML的要素

1)結(jié)構(gòu)事物

結(jié)構(gòu)事物是模型中的靜態(tài)部分,用以呈現(xiàn)概念或?qū)嶓w的表現(xiàn)元素,是軟件建模中最常見的元素,共有7種。

(1)類(Class):類是指具有相同屬性、方法、關(guān)系和語義的對象的集合。類如圖7-5所示。圖7-5類

(2)接口(Interface):接口是指類或組件所提供的服務(wù)(操作),描述了類或組件對外可見的活動。接口如圖7-6所示。

(3)協(xié)作(Collaboration):協(xié)作描述合作完成某個特定任務(wù)的一組類及其關(guān)聯(lián)的集合,用于對使用情形的實現(xiàn)建模,協(xié)作如圖7-7所示。圖7-6接口圖7-7協(xié)作

(4)用例(UseCase):用例定義了參與者(在系統(tǒng)外部與系統(tǒng)交互的人或系統(tǒng))和被考慮的系統(tǒng)之間的交互來實現(xiàn)的一個業(yè)務(wù)目標(biāo)。用例如圖7-8所示。圖7-8用例

(5)活動類(ActiveClass):活動類的對象有一個或多個進(jìn)程或線程。活動類和類很相像,只是它的對象代表的元素的行為和其他的元素是同時存在的。活動類如圖7-9所示。圖7-9活動類

(6)組件(Component):組件是物理的、可替換的部分,包含接口的集合,例如COM+、JavaBean等。組件如圖7-10所示。

圖7-10組件

(7)結(jié)點(Node):結(jié)點是系統(tǒng)在運(yùn)行時存在的物理元素,代表一個可計算的資源,通常占用一些內(nèi)存和具有處理能力。結(jié)點如圖7-11所示。圖7-11節(jié)點

2)行為事物

行為事物指的是UML模型中的動態(tài)部分,代表語句里的“動詞”,表示模型里隨著時空不斷變化的部分,包含以下兩類:

(1)消息:一組對象之間為完成某一項任務(wù)而進(jìn)行的一系列消息交換的行為說明。消息如圖7-12所示。圖7-12消息

(2)狀態(tài):一個對象或一個交互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列。狀態(tài)如圖7-13所示。圖7-13狀態(tài)

3)分組事物

可以把分組事物看成一個“盒子”,模型可以在其中被分解。目前只有一種分組事物,即包(Package,一個用于組織其它模型元素的通用模型元素)。結(jié)構(gòu)事物、行為事物甚至分組事物都有可能放在一個包中。包純粹是概念上的,只存在于開發(fā)階段。包如圖7-14所示。圖7-14包

4)注釋事物

注釋事物是UML模型的解釋部分。注釋如圖7-15所示。圖7-15注釋

2.UML的關(guān)系

UML模型是由各種事物及這些事物之間的各種關(guān)系構(gòu)成的。關(guān)系是指支配、協(xié)調(diào)各種模型元素存在并相互使用的規(guī)則。UML中主要包含4種關(guān)系,分別是關(guān)聯(lián)、依賴、泛化和實現(xiàn)。

1)關(guān)聯(lián)關(guān)系

只要兩個類之間存在某種關(guān)系,我們就認(rèn)為兩個類之間存在關(guān)聯(lián)。關(guān)聯(lián)是人們賦予事物之間的聯(lián)系,即只要我們認(rèn)為兩個事物之間有某種聯(lián)系,就認(rèn)為事物之間存在關(guān)聯(lián)。實現(xiàn)關(guān)系、泛化關(guān)系、擴(kuò)展關(guān)系和依賴關(guān)系都屬于關(guān)聯(lián)關(guān)系,是更具體的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系是最高層次的關(guān)系。在所有關(guān)系中,關(guān)聯(lián)的語義最弱。在UML中,使用一條實線來表示關(guān)聯(lián)關(guān)系,如圖7-16所示。圖7-16關(guān)聯(lián)關(guān)系在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系,它們是聚合關(guān)系和組合關(guān)系。

(1)聚合關(guān)系。

聚合(Aggregation)是一種特殊形式的關(guān)聯(lián),表示類之間的關(guān)系是整體與部分的關(guān)系。聚合關(guān)系是一種松散的對象間關(guān)系,如計算機(jī)與它的外圍設(shè)備就是聚合關(guān)系。一臺計算機(jī)和它的外設(shè)之間只是很松散地結(jié)合在一起,這些外設(shè)既可有可無,又可以與其它計算機(jī)共享,即部分可以離開整體而存在。

聚合的表示方法如圖7-17(a)所示。其中菱形端表示事物的整體,另一端表示事物的部分。如計算機(jī)就是整體,外設(shè)就是部分。

(2)組合關(guān)系。

如果發(fā)現(xiàn)“部分”類的存在是完全依賴于“整體”類的,那么就應(yīng)使用“組合”關(guān)系來描述。組合關(guān)系是一種非常強(qiáng)的對象間關(guān)系,就像樹和樹葉之間的關(guān)系一樣。樹和它的葉子緊密聯(lián)系在一起,葉子完全依賴樹,它們不能被其他的樹所分享,并且當(dāng)樹死去時,葉子也會隨之死去——這就是組合。在組合關(guān)系中,部分依賴于整體而存在。組合是一種較強(qiáng)的聚合關(guān)系,它的表示方法如圖7-17(b)所示。圖7-17表示聚合關(guān)系和組合關(guān)系的UML符號

2)泛化關(guān)系

泛化關(guān)系描述了從特殊事物到一般事物之間的關(guān)系,也就是子類到父類之間的關(guān)系,或者子接口到父接口的關(guān)系。表示泛化關(guān)系的符號是從子類指向父類的帶空心箭頭的實線,如圖7-18所示。從父類到子類的關(guān)系則是特化關(guān)系。圖7-18表示泛化關(guān)系的UML符號

3)實現(xiàn)關(guān)系

實現(xiàn)關(guān)系用來規(guī)定接口與實現(xiàn)接口的類之間的關(guān)系。接口是操作的集合,這些操作聲明了類或組件所提供的服務(wù)。表示實現(xiàn)關(guān)系的符號是從類指向接口的帶空心箭頭的虛線,如圖7-19所示。圖7-19表示實現(xiàn)關(guān)系的UML符號

4)依賴關(guān)系

假設(shè)有兩個元素X、Y,如果元素X的值發(fā)生變化,就會引起元素Y的值發(fā)生變化,則稱元素Y依賴(Dependency)于元素X。表示依賴關(guān)系的UML符號如圖7-20所示。

如果兩個元素是類,則類間的依賴現(xiàn)象有多種,如一個類向另一個類發(fā)消息,一個類是另一個類的數(shù)據(jù)成員,一個類是另一個類的某個方法的參數(shù)等。圖7-20表示依賴關(guān)系的UML符號

3.UML的圖

元素符號代表了簡單事物,簡單事物通過一定關(guān)系組合成復(fù)雜事物,圖就是用來表示復(fù)雜事物的。每個圖是由代表簡單事物的元素符號和代表事物關(guān)系的關(guān)系符號構(gòu)成的。

從使用的角度來看,可以將UML的9種圖分為結(jié)構(gòu)模型(也稱為靜態(tài)模型)和行為模型(也稱為動態(tài)模型)兩大類(見圖7-21)。圖7-21UML圖的組成

1)結(jié)構(gòu)圖

結(jié)構(gòu)圖描繪系統(tǒng)中事物的組成及結(jié)構(gòu)關(guān)系。結(jié)構(gòu)圖又分為以下5種:

類圖;

組件圖;

對象圖;

部署圖;

包圖。

(1)類圖:用來表示系統(tǒng)中的類以及類與類之間的關(guān)系,它是對系統(tǒng)靜態(tài)結(jié)構(gòu)的描述。

類用來表示系統(tǒng)中需要處理的事物。類與類之間有很多連接方式,比如關(guān)聯(lián)、依賴、泛化或打包。類與類之間的這些關(guān)系都體現(xiàn)在類圖的內(nèi)部結(jié)構(gòu)之中,通過類的屬性和操作反映出來。在系統(tǒng)的生命周期中,類圖所描述的靜態(tài)結(jié)構(gòu)在任何情況下都是有效的。一個典型的系統(tǒng)中通常有若干個類圖。一個類圖不一定包含系統(tǒng)中的所有類,一個類還可以加到幾個類圖中。類圖如圖7-22所示。圖7-22類圖

(2)組件圖:又叫作構(gòu)件圖,它用來反映代碼的物理結(jié)構(gòu)。代碼的物理結(jié)構(gòu)用代碼組件表示。組件可以是源代碼、二進(jìn)制文件或可執(zhí)行文件的組件。組件圖包含了邏輯類或邏輯類的實現(xiàn)信息,因此邏輯視圖與組件圖之間存在著映射關(guān)系。組件之間也存在依賴關(guān)系,利用這種依賴關(guān)系可以方便地分析一個組件的變換給其他的組件帶來怎樣的影響。組件圖如圖7-23所示。圖7-23組件圖

(3)對象圖:可以展示系統(tǒng)中的一組對象,它是系統(tǒng)在某一時刻的快照,也可以說對象圖是類圖在某一時刻的快照。對象圖中使用的圖示符號與類圖幾乎完全相同,只不過對象圖中的對象名加了下劃線。對象圖沒有類圖重要,對象圖通常用來示例一個復(fù)雜的類圖,通過對象圖反映真正的實例是什么,它們之間可能具有什么樣的關(guān)系,幫助對類圖的理解。對象圖也可以用在協(xié)作圖中作為其一個組成部分,以反映一組對象之間的動態(tài)協(xié)作關(guān)系。對象圖如圖7-24所示。圖7-24對象圖

(4)部署圖:用來顯示系統(tǒng)中軟件和硬件的物理架構(gòu)。通常部署圖中顯示實際的計算機(jī)和設(shè)備,以及各個結(jié)點之間的關(guān)系。每個結(jié)點內(nèi)部顯示的可執(zhí)行的組件和對象清晰地反映出哪個軟件運(yùn)行在哪個結(jié)點上。部署圖如圖7-25所示。圖7-25部署圖

(5)包圖:用于描繪包之間的依賴關(guān)系。包圖如圖7-26所示。圖7-26包圖

2)行為圖

行為圖描繪系統(tǒng)中事物間的交互行為。行為圖分為以下5種:

(1)用例圖:用于顯示若干角色以及這些角色與系統(tǒng)提供的用例之間的連接關(guān)系。用例描述了系統(tǒng)的工作方式,以及系統(tǒng)能提供的服務(wù)。用例圖描述了系統(tǒng)外部參與者如何使用系統(tǒng)提供的服務(wù),也就是站在系統(tǒng)外部查看系統(tǒng)功能,它并不描述系統(tǒng)內(nèi)部對該功能的具體操作方式。用例圖定義系統(tǒng)的功能需求。用例圖如圖7-27所示。圖7-27用例圖

(2)活動圖:用于顯示系統(tǒng)內(nèi)部的活動控制流程。通常需要使用活動圖描述不同的業(yè)務(wù)過程?;顒訄D由各種動作狀態(tài)構(gòu)成,每個動作狀態(tài)包含可執(zhí)行動作的規(guī)范說明。當(dāng)某個動作執(zhí)行完畢,該動作的狀態(tài)就會隨著改變,這樣,動作狀態(tài)的控制就從一個狀態(tài)流向另一個與之相連的狀態(tài)?;顒訄D如圖7-28所示。圖7-28活動圖

(3)狀態(tài)圖:用于顯示對象從一種狀態(tài)遷移到其他狀態(tài)的轉(zhuǎn)換過程。狀態(tài)圖是一個動態(tài)視圖,對事件驅(qū)動的行為建模尤其重要。例如可以利用狀態(tài)圖描述一個電話路由系統(tǒng)中交換機(jī)的狀態(tài),不同的事件可以令交換機(jī)轉(zhuǎn)移至不同的狀態(tài),用狀態(tài)圖對交換機(jī)建模有助于理解交換機(jī)的動態(tài)行為。在

UML2.0中,狀態(tài)圖被稱為狀態(tài)機(jī)圖(StateMachineDiagram)。狀態(tài)圖如圖7-29所示。圖7-29狀態(tài)圖

(4)順序圖:用來反映若干個對象之間的動態(tài)協(xié)作關(guān)系(即隨著時間的流逝,對象之間的交互關(guān)系),它強(qiáng)調(diào)一個系統(tǒng)中對象之間相互作用時消息的時間順序。順序圖由若干個對象組成,每個對象用一個垂直的虛線表示,每個對象的正下方有一個矩形條,它與垂直的虛線相疊,矩形條表示該對象隨著時間流逝的過程,對象之間傳遞的消息用消息箭頭表示,它們位于表示對象的垂直線條之間。順序圖如圖7-30所示。圖7-30順序圖

(5)協(xié)作圖:協(xié)作圖和順序圖的作用一樣,反映的也是動態(tài)協(xié)作。由于協(xié)作圖和順序圖都反映對象之間的交互,所以建模者可以任意選擇一種反映對象間的協(xié)作。如果強(qiáng)調(diào)時間和序列,最好選擇順序圖;如果強(qiáng)調(diào)上下文相關(guān),最好選擇協(xié)作圖。協(xié)作圖與對象圖畫法一樣,圖中有若干個對象及它們之間的關(guān)系,對象之間流動的消息用箭頭表示,箭頭中間用標(biāo)簽標(biāo)識消息被發(fā)送的序號、條件、迭代方式、返回值等等。協(xié)作圖如圖7-31所示。圖7-31協(xié)作圖

操作三UML語義規(guī)則

UML語義規(guī)則指語言的語法和語義規(guī)則。在UML中,代表事物的元素符號在使用時應(yīng)遵守一系列規(guī)則,每個元素必須遵守的3種語義規(guī)則如下所述。

名稱:每個元素應(yīng)該有一個名字,即事物、關(guān)系和圖都應(yīng)該有一個名字。和任何語言一樣,名字即是一個標(biāo)識符。例如:student為一個類的名字。

范圍:每個元素起作用的范圍,相當(dāng)于程序設(shè)計語言中變量的“作用域”。例如:屬性name:string??梢娦裕何覀冎?,UML元素可能屬于一個類或包,因此所有元素都具有可見屬性。例如:

public:公共+

protected:保護(hù)#

private:私有-

操作四UML的公共機(jī)制

在UML中共有4種貫穿于整個統(tǒng)一建模語言并且一致地應(yīng)用的公共機(jī)制,這4種機(jī)制分別是規(guī)格說明、修飾、通用劃分和擴(kuò)展機(jī)制。其中擴(kuò)展機(jī)制可以再劃分為構(gòu)造型、標(biāo)記值和約束。

1.規(guī)格說明

如果把模型元素當(dāng)成一個對象來看待,那么模型元素本身也應(yīng)該具有很多的屬性,這些屬性用于維護(hù)屬于該模型元素的數(shù)據(jù)值。如圖7-32所示,在左邊的方框中有3個用圖形符號表示的用例,分別是存款、取款和轉(zhuǎn)賬;在右邊的方框中,分別對每個圖形符號表示的用例進(jìn)行了詳細(xì)的文字描述,即規(guī)格說明。圖7-32圖形符號與對應(yīng)的規(guī)格描述

2.修飾

在UML中,每個元素符號對事物的主要屬性提供了可視化表示,而若想將事物的細(xì)節(jié)表示出來,則必須對元素符號加以修飾。例如,用斜體字表示抽象類,用+、-符號表示元素的訪問級別,這些都是通過修飾符號來表示事物的細(xì)節(jié)。所謂修飾,就是增加元素符號的內(nèi)涵,為被修飾的元素提供更多的信息。例如:矩形框表示一個類,有類名、屬性、操作等,但也可增加“可視性”等修飾,如圖7-33所示。圖7-33修飾

3.通用劃分

UML通用劃分,即對UML元素進(jìn)行分組,包括兩組:類與對象、接口與實現(xiàn)。

(1)類與對象:類是對對象共同特征的描述,是對象的模板,而對象則是類的實例。

(2)接口與實現(xiàn):接口是一種聲明、一個合同、一組方法的集合,而實現(xiàn)則是完成一個合同、實現(xiàn)接口中的聲明。

在UML中,用例就是一種對功能的聲明和定義,是對事物功能的抽象描述,協(xié)作則是實現(xiàn)用例聲明的功能,操作名是聲明服務(wù)的,而方法體則是實現(xiàn)服務(wù)的。因此,用例與協(xié)作、操作名與方法體之間就是接口與實現(xiàn)的關(guān)系。

4.?dāng)U展機(jī)制

由于UML中定義的元素符號不能表示所有的事物,因此需要通過一些方法對元素符號進(jìn)行擴(kuò)展,主要的擴(kuò)展機(jī)制有:構(gòu)造型、標(biāo)記值和約束。

1)構(gòu)造型

構(gòu)造型就是指分析師自己定義一種新的UML元素符號,給這種新的元素符號賦予特別的含義。例如,分析師可以定義一個元素符號“<<Interrupt>>”,用該元素符號代表“中斷”。

表示同一構(gòu)造型元素符號的方法有3種,圖7-34所示就是用3種不同方式來表示設(shè)備“中斷”這種構(gòu)造型,其中假設(shè)Equipment(設(shè)備)是類名稱。圖7-34構(gòu)造型的3種表示方法第一種表示方法:創(chuàng)建一種新的UML元素符號“<<Interrupt>>”,表示“中斷”,在構(gòu)造元素符號右邊放置一個圖標(biāo)。構(gòu)造符號“<<Interrupt>>”與圖標(biāo)一起代表“中斷”。

第二種表示法:創(chuàng)建一種新的UML元素符號“<<Interrupt>>”,表示“中斷”,這是一種標(biāo)準(zhǔn)表示方法。

第三種表示方法:直接用一個圖標(biāo)表示新的構(gòu)造元素符號,該符號的語義是“中斷”。

2)標(biāo)記值

標(biāo)記值是用來為事物(元素符號)添加新特征的,其表示方法是用格式如“{標(biāo)記信息}”的字符串表示。標(biāo)記信息通常是一個字符串,它由名稱、分隔符和值3個部分組成。例如,標(biāo)記信息:{name

=“李小平”}。在這個標(biāo)記信息中,名稱是name;分隔符是=;標(biāo)記值是“李小平”。其中,名稱表示了事物的屬性,標(biāo)記值表示了事物的屬性值。

3)約束

約束是用來標(biāo)識元素之間約束條件、增加新的語義或改變已存在規(guī)則的一種機(jī)制(通過文本和OCL兩種方法表示約束)。約束的表示方法和標(biāo)記值的表示方法類似,都是使用花括號括起來的字符串來表示,不過不能夠把它放在元素中,而是要放在相關(guān)的元素附近。

任務(wù)三認(rèn)識UML的視圖

操作一:UML視圖的作用

給復(fù)雜的系統(tǒng)建模是一件困難和耗時的事情。從理想化的角度來說,整個系統(tǒng)像是一張圖畫,這張圖畫清晰而又直觀地描述了系統(tǒng)的結(jié)構(gòu)和功能,既易于理解又易于交流。但事實上,要畫出這張圖畫幾乎是不可能的,因為一個簡單的圖畫并不能完全反映出系統(tǒng)中需要的所有信息。描述一個系統(tǒng)涉及許多方面,比如功能性方面(它包括靜態(tài)結(jié)構(gòu)和動態(tài)交互)、非功能性方面(定時需求、可靠性、展開性等)和組織管理方面(工作組、映射代碼模塊等)。完整地描述系統(tǒng),通常的做法是用一組視圖反映系統(tǒng)的各個方面,每個視圖代表完整系統(tǒng)描述中的一個抽象,顯示這個系統(tǒng)中的一個特定的方面。每個視圖由一組圖構(gòu)成,圖中包含、強(qiáng)調(diào)系統(tǒng)中某一方面的信息。視圖與視圖之間有時會產(chǎn)生輕微的重疊,從而使得一個圖實際上可能是多個視圖的一個組成部分。如果從不同的視圖觀察系統(tǒng),則每次只集中地觀察系統(tǒng)的一個方面,而如果使用所有的視圖來觀察系統(tǒng),則應(yīng)該可以看到系統(tǒng)的各個側(cè)面(包括動態(tài)和靜態(tài)的)。視圖中的圖應(yīng)該簡單,易于交流,且與其他的圖和視圖有關(guān)聯(lián)關(guān)系。

UML中的視圖包括用例視圖(UseCaseView)、邏輯視圖(LogicalView)、組件視圖(ImplementationView)、并發(fā)視圖(ProcessView)、部署視圖(DeploymentView)等,這5個視圖被稱做“4?+?1”視圖,如圖7-35所示。圖7-35UML的視圖

操作二:UML的各種視圖

1.用例視圖

用例視圖用于描述系統(tǒng)應(yīng)該具有的功能集。用例視圖

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論