




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第4 4章章 其他結(jié)構(gòu)建模其他結(jié)構(gòu)建模計算機科學(xué)與技術(shù)計算機科學(xué)與技術(shù) 主要內(nèi)容主要內(nèi)容 擴展機制擴展機制 包和包圖包和包圖 接口接口 復(fù)合結(jié)構(gòu)圖復(fù)合結(jié)構(gòu)圖擴展機制擴展機制 標記值標記值tagged valuetagged value擴充了擴充了UMLUML的模型元素的屬性,允許在模型元素的規(guī)格的模型元素的屬性,允許在模型元素的規(guī)格中創(chuàng)建新的信息。中創(chuàng)建新的信息。 構(gòu)造型構(gòu)造型stereotypestereotype擴充了擴充了UMLUML的詞匯表,允許針對不同的問題從已有的基的詞匯表,允許針對不同的問題從已有的基礎(chǔ)上創(chuàng)建新的元素類型。礎(chǔ)上創(chuàng)建新的元素類型。 約束約束constraintco
2、nstraint擴充了擴充了UMLUML模型元素的語義,允許添加新的限制條件或模型元素的語義,允許添加新的限制條件或修改已有的限制條件。修改已有的限制條件。標記值標記值 一個標記值一個標記值(tagged value)(tagged value)是一個標記名和一個值的對偶是一個標記名和一個值的對偶,表示為,表示為“ 標記名標記名= =標記值標記值 ”。標記值可為元素添加新的。標記值可為元素添加新的性質(zhì)。性質(zhì)。 例:例: author = “Joe Smith”, deadline = 31-March- author = “Joe Smith”, deadline = 31-March-199
3、7, status = analysis 1997, status = analysis 注意:注意:UML1.XUML1.X規(guī)范中,標記值可附加在任何元素上。但在規(guī)范中,標記值可附加在任何元素上。但在UML2UML2規(guī)范中,標記值僅用于構(gòu)造型中。規(guī)范中,標記值僅用于構(gòu)造型中。構(gòu)造型構(gòu)造型 一個構(gòu)造型一個構(gòu)造型stereotypestereotype是在建模時引入的元模型元素的一種是在建模時引入的元模型元素的一種新類。表示方法:新類。表示方法: stereotype stereotype 。 表示一個已有元模型元素的一個子類,與其具有相同形式表示一個已有元模型元素的一個子類,與其具有相同形式(
4、 (屬屬性和關(guān)系性和關(guān)系) ),但有不同用意,但有不同用意( (為了適用于特定平臺或領(lǐng)域為了適用于特定平臺或領(lǐng)域) )。 簡而言之,構(gòu)造型擴展機制的目的就是基于一個已存在的模簡而言之,構(gòu)造型擴展機制的目的就是基于一個已存在的模型元素再重新定義一個新的模型元素。型元素再重新定義一個新的模型元素。構(gòu)造型構(gòu)造型 構(gòu)造型可以基于所有種類的模型元素。構(gòu)造型可以基于所有種類的模型元素。 構(gòu)造型的一般表現(xiàn)形式為使用構(gòu)造型的一般表現(xiàn)形式為使用“”和和“”包含構(gòu)造型的包含構(gòu)造型的名稱在里面。名稱在里面。 定義定義一個類的構(gòu)造型,用矩形表示,必須確定一個名字,如一個類的構(gòu)造型,用矩形表示,必須確定一個名字,如Ja
5、vaBeanJavaBean,并用,并用stereotype stereotype 說明在名字上方,用一個實說明在名字上方,用一個實心三角箭頭指向被擴展的類元。心三角箭頭指向被擴展的類元。使用使用includeinclude構(gòu)造型構(gòu)造型擴展擴展ClassClass元類來定義一個構(gòu)造型元類來定義一個構(gòu)造型構(gòu)造型構(gòu)造型 構(gòu)造型的表現(xiàn)形式并不都是使用構(gòu)造型的表現(xiàn)形式并不都是使用“ ”和和“ ”,有的是通,有的是通過圖形的改變來表示的。過圖形的改變來表示的。 UML UML 中已經(jīng)預(yù)定義多種模型元素的標準構(gòu)造型,用戶也可中已經(jīng)預(yù)定義多種模型元素的標準構(gòu)造型,用戶也可以自己定義構(gòu)造型。以自己定義構(gòu)造型。
6、構(gòu)造型構(gòu)造型 使用使用一個構(gòu)造型來說明一個模型元素時,該構(gòu)造型的名字一個構(gòu)造型來說明一個模型元素時,該構(gòu)造型的名字用用 構(gòu)造名構(gòu)造名 表示,說明在元素名字的上方或前方。表示,說明在元素名字的上方或前方。 如圖,構(gòu)造型如圖,構(gòu)造型 JavaBeanJavaBean 用于說明一個用于說明一個PersonPerson類,說明了類,說明了這個類作為這個類作為JavaBeanJavaBean類進行設(shè)計。類進行設(shè)計。 如果標記值不是太多的話,也可說明在類名的下方,用如果標記值不是太多的話,也可說明在類名的下方,用 括起來,并用逗號分開多個標記值。括起來,并用逗號分開多個標記值。約束約束 約束約束(Cons
7、traint)(Constraint)表示條件或限制,可用自然語言或形式表示條件或限制,可用自然語言或形式化語言描述,對建模元素的某些語義進行限定?;Z言描述,對建模元素的某些語義進行限定。 約束有兩類:約束有兩類:UMLUML預(yù)定義和用戶定義。預(yù)定義和用戶定義。 模型中表示約束:模型中表示約束:可以是自由文本或可以是自由文本或OCL(Object Constraint Language)OCL(Object Constraint Language)表示表示注解注解notenote方式方式 語法:花括號,語法:花括號, 約束約束 布爾表達式布爾表達式約束約束用虛線表示兩者之間用虛線表示兩者之間
8、的約束。的約束。xor表示兩者互斥表示兩者互斥用注解用注解note方式來描述約束方式來描述約束包包 包是一種有效的組織管理機制。包是一種有效的組織管理機制。 包在包在UMLUML中被視為文件夾或目錄結(jié)構(gòu)中被視為文件夾或目錄結(jié)構(gòu)包包 包的作用包的作用包像一個容器,通常用來組織用例圖和類圖,當然,包圖的包像一個容器,通常用來組織用例圖和類圖,當然,包圖的用途不僅限于這些用途不僅限于這些UMLUML元素;元素;語義上相關(guān)的元素進行分組;定義模型中的語義上相關(guān)的元素進行分組;定義模型中的“語義邊界語義邊界”;提供封裝的命名空間,其中所有名稱必須唯一。提供封裝的命名空間,其中所有名稱必須唯一。包的名稱包
9、的名稱 每個包必須有一個與其他包相區(qū)別的名稱。每個包必須有一個與其他包相區(qū)別的名稱。 兩種形式:簡單名和路徑名。兩種形式:簡單名和路徑名。包擁有的元素包擁有的元素 包用于對模型元素進行分組,并為這些元素提供包用于對模型元素進行分組,并為這些元素提供一個一個命名空間命名空間,這意味著一個包中多個元素的命,這意味著一個包中多個元素的命名不能重復(fù)。名不能重復(fù)。 包中各元素的包中各元素的限定名限定名就是包名加上元素的名稱,就是包名加上元素的名稱,例如,例如,P:AP:A,P P是包的名字,是包的名字,A A是類的名字。是類的名字。 一個元素的一個元素的非限定名非限定名就是該元素的名字。就是該元素的名字
10、。包擁有的元素包擁有的元素 包擁有的元素:類、接口、組件、節(jié)點、協(xié)作、包擁有的元素:類、接口、組件、節(jié)點、協(xié)作、用例、圖以及其他包。用例、圖以及其他包。 擁有是一種擁有是一種組成組成關(guān)系。關(guān)系。 一個模型元素不能被一個以上的包所擁有。一個模型元素不能被一個以上的包所擁有。 如果包被撤銷,其中的元素也要被撤銷。如果包被撤銷,其中的元素也要被撤銷。 包中的成員可直接表示在文件夾方框之內(nèi),也可表示在方框外部。包中的成員可直接表示在文件夾方框之內(nèi),也可表示在方框外部。包成員的可見性包成員的可見性可見性的類型:可見性的類型:公有的(公有的(publicpublic) “ “”受保護的(受保護的(prot
11、ectedprotected) “ “”私有的(私有的(privateprivate)“”一個包中一個包中publicpublic成員在包外可用限定名進行訪問;而成員在包外可用限定名進行訪問;而privateprivate成員則只能在本包范圍內(nèi)被訪問。成員則只能在本包范圍內(nèi)被訪問。一個包的子包可稱為一個包的子包可稱為內(nèi)層包內(nèi)層包或者下層包,或者下層包,UMLUML規(guī)定內(nèi)層包規(guī)定內(nèi)層包中元素可訪問外層包中元素,而無需限定名,只要內(nèi)層中元素可訪問外層包中元素,而無需限定名,只要內(nèi)層包中不存在同名元素。包中不存在同名元素。包間關(guān)系包間關(guān)系 主要關(guān)系主要關(guān)系依賴關(guān)系依賴關(guān)系泛化關(guān)系泛化關(guān)系 其他關(guān)系其
12、他關(guān)系包含包含導(dǎo)入導(dǎo)入合并合并包間關(guān)系包間關(guān)系 依賴關(guān)系依賴關(guān)系 如果兩個包中的任意兩個元素間存在依賴關(guān)如果兩個包中的任意兩個元素間存在依賴關(guān)系,那么這兩個包就存在依賴關(guān)系。系,那么這兩個包就存在依賴關(guān)系。 ABC注:依賴關(guān)系沒有傳遞注:依賴關(guān)系沒有傳遞包間關(guān)系包間關(guān)系 泛化關(guān)系泛化關(guān)系 包間的泛化關(guān)系用于說明包的家族關(guān)系包間的泛化關(guān)系用于說明包的家族關(guān)系 與類之間的泛化概念相同與類之間的泛化概念相同 用戶界面界面包含包含 包包含包包含 包包含(包包含(package includepackage include)指一個包可包)指一個包可包含若干子包,如同文件系統(tǒng)中的一個目錄可含若干子包,如同
13、文件系統(tǒng)中的一個目錄可包含若干子目錄,形成樹形結(jié)構(gòu)。包含若干子目錄,形成樹形結(jié)構(gòu)。 內(nèi)層包可直接訪問其外層包中的元素,無需內(nèi)層包可直接訪問其外層包中的元素,無需導(dǎo)入。但一個包要訪問它所包含的子包,就導(dǎo)入。但一個包要訪問它所包含的子包,就可能需要導(dǎo)入??赡苄枰獙?dǎo)入。導(dǎo)入導(dǎo)入 包導(dǎo)入包導(dǎo)入 包導(dǎo)入(包導(dǎo)入(package importpackage import)是一種允許采用)是一種允許采用非限定名稱訪問來自于另一個命名空間中的非限定名稱訪問來自于另一個命名空間中的元素的關(guān)系。元素的關(guān)系。 導(dǎo)入也可確定可見性,有以下兩種選擇:導(dǎo)入也可確定可見性,有以下兩種選擇:publicpublic缺省,被導(dǎo)
14、入的元素對包外是可見的。缺省,被導(dǎo)入的元素對包外是可見的。 importimportprivateprivate,被導(dǎo)入的元素對包外不可見。,被導(dǎo)入的元素對包外不可見。accessaccess包導(dǎo)入包導(dǎo)入 包導(dǎo)入是包之間的一種有向關(guān)系,并且是包之間包導(dǎo)入是包之間的一種有向關(guān)系,并且是包之間的一種依賴關(guān)系,用依賴箭頭從一個包指向被導(dǎo)的一種依賴關(guān)系,用依賴箭頭從一個包指向被導(dǎo)入的一個包。入的一個包。共有導(dǎo)入具有傳遞性,而私有導(dǎo)入不具傳遞性。共有導(dǎo)入具有傳遞性,而私有導(dǎo)入不具傳遞性。包合并包合并 包合并包合并(package merge)(package merge):一個有向關(guān)系,:一個有向關(guān)系,
15、從一個源包從一個源包sourcesource指向一個目標指向一個目標target;target; 定義了一個包定義了一個包(source)(source)中的內(nèi)容是另一個包中的內(nèi)容是另一個包(target)(target)的內(nèi)容的擴展。的內(nèi)容的擴展。 合并關(guān)系用虛線箭頭從源指向目標,并標明合并關(guān)系用虛線箭頭從源指向目標,并標明構(gòu)造型構(gòu)造型mergemerge。包合并包合并 包合并類似于包合并類似于“泛化泛化”的繼承關(guān)系,源包的的繼承關(guān)系,源包的元素在概念上增加了目標包中的元素的特性元素在概念上增加了目標包中的元素的特性作為自己的特性,這樣形成了特性的合并。作為自己的特性,這樣形成了特性的合并。
16、 何時應(yīng)使用包合并?何時應(yīng)使用包合并?不同包中存在一些元素具有同樣的名字,而且不同包中存在一些元素具有同樣的名字,而且表示同一個概念,從一個公共的基本定義開始表示同一個概念,從一個公共的基本定義開始,出于不同目的,以增長方式擴展,每一次擴,出于不同目的,以增長方式擴展,每一次擴展都定義在一個單獨的包中。展都定義在一個單獨的包中。包的內(nèi)聚性原則包的內(nèi)聚性原則內(nèi)聚性原則解決內(nèi)聚性原則解決“一個包中應(yīng)包含什么一個包中應(yīng)包含什么” ” 重用發(fā)布等價原則重用發(fā)布等價原則 REP: Reuse-release REP: Reuse-release Equivalence PrincipleEquivale
17、nce Principle 重用的粒度就是發(fā)布的粒度。重用的粒度就是發(fā)布的粒度。 違背:一部分可重用,而另一部分完全不重用違背:一部分可重用,而另一部分完全不重用 共同重用原則共同重用原則CRP: Common-Reuse PrincipleCRP: Common-Reuse Principle 一個包中的所有類型應(yīng)該是共同重用的。一個包中的所有類型應(yīng)該是共同重用的。 違背:相互之間沒有緊密聯(lián)系的一組類型違背:相互之間沒有緊密聯(lián)系的一組類型 共同封閉原則共同封閉原則CCP: Common-Closure PrincipleCCP: Common-Closure Principle 一個包中所有
18、類型應(yīng)對同一種變化共同封閉。一個包中所有類型應(yīng)對同一種變化共同封閉。 違背:一個更改導(dǎo)致多個包的更改違背:一個更改導(dǎo)致多個包的更改 包的耦合性原則包的耦合性原則耦合性原則指導(dǎo)耦合性原則指導(dǎo)“包之間應(yīng)該有哪些關(guān)系包之間應(yīng)該有哪些關(guān)系” ” 無環(huán)依賴原則無環(huán)依賴原則ADP: Acyclic-Dependence ADP: Acyclic-Dependence PrinciplePrinciple :包的依賴關(guān)系不應(yīng)有環(huán):包的依賴關(guān)系不應(yīng)有環(huán) 穩(wěn)定依賴原則穩(wěn)定依賴原則SDP: Stable-Dependencies SDP: Stable-Dependencies PrinciplePrincipl
19、e :朝著更穩(wěn)定的方向建立依賴。:朝著更穩(wěn)定的方向建立依賴。 違背:依賴于一個易變的包違背:依賴于一個易變的包 穩(wěn)定抽象原則穩(wěn)定抽象原則SAP: Stable-Abstractions SAP: Stable-Abstractions PrinciplePrinciple :包的抽象程度應(yīng)與穩(wěn)定程度一致。:包的抽象程度應(yīng)與穩(wěn)定程度一致。 違背:依賴于一個較具體包,而不是抽象包違背:依賴于一個較具體包,而不是抽象包無環(huán)依賴原則無環(huán)依賴原則ADP直接形成依賴環(huán)直接形成依賴環(huán)無環(huán)依賴原則無環(huán)依賴原則ADP間接形成依賴環(huán)間接形成依賴環(huán)如何消除依賴環(huán),使包圖成為一個有向無環(huán)圖?如何消除依賴環(huán),使包圖成為
20、一個有向無環(huán)圖?1 1、移動類型。只要遵循包的內(nèi)聚性的、移動類型。只要遵循包的內(nèi)聚性的3 3個原則個原則,就能消除大多數(shù)的直接依賴環(huán)。,就能消除大多數(shù)的直接依賴環(huán)。2 2、采用依賴倒置原則、采用依賴倒置原則DIPDIP。采用依賴倒置采用依賴倒置DIP將依賴方向逆轉(zhuǎn)將依賴方向逆轉(zhuǎn)如何消除依賴環(huán),使包圖成為一個有向無環(huán)圖?如何消除依賴環(huán),使包圖成為一個有向無環(huán)圖?3 3、構(gòu)建新包。對于間接形成的依賴環(huán),可以構(gòu)建一、構(gòu)建新包。對于間接形成的依賴環(huán),可以構(gòu)建一個新的包,然后將產(chǎn)生依賴的類型移到新包中,個新的包,然后將產(chǎn)生依賴的類型移到新包中,從而消除依賴環(huán)。從而消除依賴環(huán)。 穩(wěn)定依賴原則穩(wěn)定依賴原則S
21、DPSDP 包的穩(wěn)定程度或者易變程度如何衡量?包的穩(wěn)定程度或者易變程度如何衡量?穩(wěn)定依賴原則穩(wěn)定依賴原則SDPSDP SDPSDP原則要求一個包應(yīng)依賴比它更穩(wěn)定的包原則要求一個包應(yīng)依賴比它更穩(wěn)定的包,而不應(yīng)依賴比它更易變的包。,而不應(yīng)依賴比它更易變的包。接口接口 接口接口interfaceinterface是一種類元,表示一組相關(guān)的公共特是一種類元,表示一組相關(guān)的公共特征和職責(zé)約定。征和職責(zé)約定。 接口是類接口是類classclass的一種構(gòu)造型的一種構(gòu)造型stereotype;stereotype; 接口描述行為規(guī)范,但不描述行為如何實現(xiàn)。由一接口描述行為規(guī)范,但不描述行為如何實現(xiàn)。由一組類
22、提供接口的實現(xiàn),根據(jù)操作的基調(diào),提供具體組類提供接口的實現(xiàn),根據(jù)操作的基調(diào),提供具體的實現(xiàn)方法的實現(xiàn)方法methodmethod。 接口不能直接實例化創(chuàng)建對象。接口不能直接實例化創(chuàng)建對象。 一個接口的實例是實現(xiàn)該接口的類的實例。一個接口的實例是實現(xiàn)該接口的類的實例。 一般首字母大寫,建議用一般首字母大寫,建議用“I”I”開頭。開頭。 語法:圓圈,或方框語法:圓圈,或方框( (與類相似,僅描述各操作與類相似,僅描述各操作) )。供口和需口供口和需口 供口供口provide interfaceprovide interface:一個類所實現(xiàn)的接口,表示:一個類所實現(xiàn)的接口,表示該類與實現(xiàn)了該接口,
23、描述了該類元的實例向使用方提該類與實現(xiàn)了該接口,描述了該類元的實例向使用方提供的一組服務(wù)。供的一組服務(wù)。 需口需口required interfacerequired interface:一個類需使用的接口,表示:一個類需使用的接口,表示該類元通過該接口請求特定服務(wù),即該類元依賴于該接該類元通過該接口請求特定服務(wù),即該類元依賴于該接口???。需口需口供口表示形式供口表示形式供口和需口供口和需口 如果需要查看接口內(nèi)部的特征,就需要一種展開如果需要查看接口內(nèi)部的特征,就需要一種展開方式:方式:接口展開形式、接口的實現(xiàn)及接口的使用接口展開形式、接口的實現(xiàn)及接口的使用注:接口中所有的特征都缺省為公共的注
24、:接口中所有的特征都缺省為公共的(public)(public)接口間的關(guān)聯(lián)與協(xié)作接口間的關(guān)聯(lián)與協(xié)作 一個接口與其他類元之間可能存在關(guān)聯(lián),這一個接口與其他類元之間可能存在關(guān)聯(lián),這意味著該接口的實現(xiàn)類元與其他類元之間存意味著該接口的實現(xiàn)類元與其他類元之間存在關(guān)聯(lián)。兩個接口之間的關(guān)聯(lián)隱含著這兩個在關(guān)聯(lián)。兩個接口之間的關(guān)聯(lián)隱含著這兩個接口的實現(xiàn)類元之間存在關(guān)聯(lián)。接口的實現(xiàn)類元之間存在關(guān)聯(lián)。 接口之間的關(guān)聯(lián)與協(xié)作接口之間的關(guān)聯(lián)與協(xié)作接口接口interfaceinterface的概念理解的概念理解 接口主要用于隔離行為規(guī)范與行為的具體實現(xiàn),接口主要用于隔離行為規(guī)范與行為的具體實現(xiàn),簡化行為調(diào)用復(fù)雜性,簡
25、化調(diào)用方編程。簡化行為調(diào)用復(fù)雜性,簡化調(diào)用方編程。 存在多種接口形式:存在多種接口形式:GUIGUI,圖形用戶接口,圖形用戶接口/ /界面,用例的形象描述界面,用例的形象描述UMLUML類型,類似類型,類似JavaJava接口,對一組操作的抽象、分組與接口,對一組操作的抽象、分組與命名。命名。APIAPI,應(yīng)用編程接口,供編程調(diào)用而不用考慮其內(nèi)部如,應(yīng)用編程接口,供編程調(diào)用而不用考慮其內(nèi)部如何實現(xiàn)。何實現(xiàn)。類的公共成員作為該類對象的調(diào)用接口,公共成員與保類的公共成員作為該類對象的調(diào)用接口,公共成員與保護成員作為子類的擴展接口。護成員作為子類的擴展接口。復(fù)合結(jié)構(gòu)圖復(fù)合結(jié)構(gòu)圖 復(fù)合結(jié)構(gòu)圖也稱為組成
26、結(jié)構(gòu)圖復(fù)合結(jié)構(gòu)圖也稱為組成結(jié)構(gòu)圖 Composite structure diagramComposite structure diagram 復(fù)合結(jié)構(gòu)圖主要對復(fù)合結(jié)構(gòu)圖主要對一組互聯(lián)元素一組互聯(lián)元素的的組成結(jié)構(gòu)組成結(jié)構(gòu)進行建模,表示運行時刻的實例通過通信鏈進行建模,表示運行時刻的實例通過通信鏈相互協(xié)作,以達到某些共同目標。相互協(xié)作,以達到某些共同目標。 復(fù)合結(jié)構(gòu)圖主要描述復(fù)合結(jié)構(gòu)圖主要描述內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)、端口端口、協(xié)作協(xié)作等,是等,是UML2UML2的新圖。的新圖。復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu)復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu) 在運行時刻,內(nèi)部結(jié)構(gòu)表示一個實例內(nèi)部多在運行時刻,內(nèi)部結(jié)構(gòu)表示一個實例內(nèi)部多個元素之
27、間的互聯(lián)結(jié)構(gòu)。個元素之間的互聯(lián)結(jié)構(gòu)。類的內(nèi)部結(jié)構(gòu)的例子類的內(nèi)部結(jié)構(gòu)的例子復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu)復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu) 采用這種方式也能表示一個對象的內(nèi)部構(gòu)造。采用這種方式也能表示一個對象的內(nèi)部構(gòu)造。CarCar類的一個實例的內(nèi)部構(gòu)造類的一個實例的內(nèi)部構(gòu)造 在實例級別上描述的對象內(nèi)部結(jié)構(gòu)也應(yīng)屬于一種對象圖。每在實例級別上描述的對象內(nèi)部結(jié)構(gòu)也應(yīng)屬于一種對象圖。每個構(gòu)造都是一個實例規(guī)范,表示為:個構(gòu)造都是一個實例規(guī)范,表示為:名字名字/ /角色名:類元名角色名:類元名。復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu)復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu) 一個對象,也表示了創(chuàng)建該對象的構(gòu)造器(一個對象,也表示了創(chuàng)建該對象的構(gòu)造器(construct
28、orconstructor)。)。CarCar類的構(gòu)造器與一個實例類的構(gòu)造器與一個實例復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu)復(fù)合結(jié)構(gòu)圖的內(nèi)部結(jié)構(gòu) 使用復(fù)合結(jié)構(gòu)圖表示內(nèi)部結(jié)構(gòu)有什么好處?使用復(fù)合結(jié)構(gòu)圖表示內(nèi)部結(jié)構(gòu)有什么好處? 在一個類元或?qū)嵗姆娇蛑畠?nèi)表示其內(nèi)部結(jié)構(gòu),在一個類元或?qū)嵗姆娇蛑畠?nèi)表示其內(nèi)部結(jié)構(gòu),這樣既能這樣既能表示封裝結(jié)構(gòu)表示封裝結(jié)構(gòu),也能表示內(nèi)部元素之間,也能表示內(nèi)部元素之間的的關(guān)系關(guān)系,而每個元素又可描述,而每個元素又可描述內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu),這樣的,這樣的圖形更直觀、更易理解。圖形更直觀、更易理解。復(fù)合結(jié)構(gòu)圖的端口復(fù)合結(jié)構(gòu)圖的端口 端口端口Port: Port: 類元的一個性質(zhì),確定該類元與其外
29、類元的一個性質(zhì),確定該類元與其外部環(huán)境或與其內(nèi)部各部件之間的一個部環(huán)境或與其內(nèi)部各部件之間的一個交互點交互點。 供口供口provided interface: provided interface: 表示該類元的外部環(huán)表示該類元的外部環(huán)境通過端口向類元發(fā)出請求,即該類元向外部環(huán)境通過端口向類元發(fā)出請求,即該類元向外部環(huán)境提供某種服務(wù)。境提供某種服務(wù)。 需口需口required interfacerequired interface:表示該類元通過端口:表示該類元通過端口向類元發(fā)出請求,即環(huán)境向該類元提供服務(wù)。向類元發(fā)出請求,即環(huán)境向該類元提供服務(wù)。復(fù)合結(jié)構(gòu)圖的端口復(fù)合結(jié)構(gòu)圖的端口端口的例子端口
30、的例子復(fù)合結(jié)構(gòu)圖的端口復(fù)合結(jié)構(gòu)圖的端口端口總結(jié):端口總結(jié): 在在UMLUML中,一個端口確定了某個類元對外部的一個中,一個端口確定了某個類元對外部的一個交互點,端口的供口和需口規(guī)范了通過該端口所交互點,端口的供口和需口規(guī)范了通過該端口所進行的交互所必需的內(nèi)容。進行的交互所必需的內(nèi)容。 如果一個類元與其環(huán)境所有交互都通過端口進行如果一個類元與其環(huán)境所有交互都通過端口進行,那么該類元的內(nèi)部就與外界完全隔離開,這樣,那么該類元的內(nèi)部就與外界完全隔離開,這樣一個類元可用于任何語境中,只要符合端口所確一個類元可用于任何語境中,只要符合端口所確定的約束即可。定的約束即可。復(fù)合結(jié)構(gòu)圖的協(xié)作復(fù)合結(jié)構(gòu)圖的協(xié)作
31、一個協(xié)作一個協(xié)作(collaboration)(collaboration)描述了參與協(xié)作的多個描述了參與協(xié)作的多個元素元素( (或角色或角色) )的一種結(jié)構(gòu),各自完成一項特定功的一種結(jié)構(gòu),各自完成一項特定功能,通過協(xié)作能能,通過協(xié)作能提供某些新功能提供某些新功能。 協(xié)作協(xié)作ObserverObserver有兩個角色,分別由兩個類的實例有兩個角色,分別由兩個類的實例來扮演來扮演 。協(xié)作的例子協(xié)作的例子復(fù)合結(jié)構(gòu)圖的協(xié)作復(fù)合結(jié)構(gòu)圖的協(xié)作 一個協(xié)作可以僅表示多個角色,而將扮演特定角一個協(xié)作可以僅表示多個角色,而將扮演特定角色的類表示在協(xié)作的外部。色的類表示在協(xié)作的外部。ObserverObserver的兩個角色分別由兩個類的實例來
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動漫制作合同范本
- 農(nóng)村地抵押合同范例
- 買賣鞋合同范例
- 公路發(fā)包合同范本
- 買斷企業(yè)產(chǎn)品合同范本
- 代辦檢測合同范本
- 企業(yè)bt項目合同范本
- 三方工程合同范本
- 冷庫改造項目合同范本
- 包干服務(wù)合同范例
- 2025年湖南城建職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案一套
- 教科版科學(xué)三下開學(xué)第一課《科學(xué)家這樣做-童第周》
- 2025年貴州蔬菜集團有限公司招聘筆試參考題庫含答案解析
- 小學(xué)二年級有余數(shù)的除法口算題(共300題)
- 高職院校高水平現(xiàn)代物流管理專業(yè)群建設(shè)方案(現(xiàn)代物流管理專業(yè)群)
- 妊娠期高血壓疾病試題
- 2024專升本英語答題卡浙江省
- 【冠心病探究文獻綜述2000字】
- (完整版)50028-城鎮(zhèn)燃氣設(shè)計規(guī)范
- 醫(yī)院醫(yī)療設(shè)備采購流程圖
- [建筑]最新建設(shè)工程價款結(jié)算暫行辦法
評論
0/150
提交評論