UML基礎(chǔ)UML走向_第1頁
UML基礎(chǔ)UML走向_第2頁
UML基礎(chǔ)UML走向_第3頁
UML基礎(chǔ)UML走向_第4頁
UML基礎(chǔ)UML走向_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 太多的太多的OO術(shù)語令人迷惑術(shù)語令人迷惑 Wirfs-BrockResponsibility BoochOperation Coad/YourdonService StroustrupFunction Method 沒有統(tǒng)一的符號,科學(xué)很難發(fā)展沒有統(tǒng)一的符號,科學(xué)很難發(fā)展 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) UMLUML概述概述 統(tǒng)一建模語言(Unified Modeling Language )是一個用于描述面向?qū)ο筌浖O(shè)計、可視化、構(gòu) 造和文檔化軟

2、件系統(tǒng)的建模語言。 它統(tǒng)一了Grady Booch、Jim Rumbangh和Ivar Jacobson三位大師的面向?qū)ο蠼C枋稣Z言 (Booch,OMT、 OOSE),并對其做了進一步的發(fā)展, 最終成為廣泛接受的面對象建模語言。UML已被OMG 所采用,目前成為業(yè)界的標(biāo)準。 lUML概述概述 l適用于描述以用例為驅(qū)動,以體系結(jié)構(gòu)為中心的軟件 設(shè)計的全過程。 l UML的定義包括UML語義和UML表示法兩個部分。 l (1) UML語義語義:UML對語義的描述使開發(fā)者能在語 義上取得一致認識,消除了因人而異的表達方法所造 成的影響。 l (2) UML表示法表示法:UML表示法定義UML符號

3、的表示 法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語 法為系統(tǒng)建模提供了標(biāo)準。 l uml是一種標(biāo)準的圖形化建模語言。它是面向是一種標(biāo)準的圖形化建模語言。它是面向 對象分析與設(shè)計的一種標(biāo)準表示。對象分析與設(shè)計的一種標(biāo)準表示。 l 它不是一種可視化的程序設(shè)計語言,而是一種它不是一種可視化的程序設(shè)計語言,而是一種 可視化的建模語言??梢暬慕UZ言。 l 不是工具或知識庫的規(guī)格說明,而是一種建模不是工具或知識庫的規(guī)格說明,而是一種建模 語言規(guī)格說明,是一種表示的標(biāo)準。語言規(guī)格說明,是一種表示的標(biāo)準。 l 不是過程也不是方法,但允許任何一種過程和不是過程也不是方法,但允許任何一種過程和 方法使用它

4、。方法使用它。 l 易于使用、表達能力強、進行可視化建模。易于使用、表達能力強、進行可視化建模。 l 與具體的實現(xiàn)無關(guān),可應(yīng)用于任何語言平臺和工具平與具體的實現(xiàn)無關(guān),可應(yīng)用于任何語言平臺和工具平 臺。臺。 l 與具體的過程無關(guān),可應(yīng)用于任何軟件開發(fā)的過程。與具體的過程無關(guān),可應(yīng)用于任何軟件開發(fā)的過程。 l 簡單并且可擴展,具有擴展和專有化機制,便于擴展簡單并且可擴展,具有擴展和專有化機制,便于擴展 無需對核心概念進行修改。無需對核心概念進行修改。 l 為面向?qū)ο蟮脑O(shè)計與開發(fā)中涌現(xiàn)出的高級概念,例如為面向?qū)ο蟮脑O(shè)計與開發(fā)中涌現(xiàn)出的高級概念,例如 協(xié)作框架模式和組件提供支持,強調(diào)在軟件開發(fā)中對協(xié)作

5、框架模式和組件提供支持,強調(diào)在軟件開發(fā)中對 架構(gòu)框架模式和組件的重用。架構(gòu)框架模式和組件的重用。 l 與最好的軟件工程實踐經(jīng)驗集成。與最好的軟件工程實踐經(jīng)驗集成。 l 可升級,具有廣闊的適用性和可用性??缮?,具有廣闊的適用性和可用性。 l 有利于面對對象工具的市場成長。有利于面對對象工具的市場成長。 l uml是由圖和元模型組成的。圖是uml的語法。而元模 型則給出的圖的意思,是uml的語義。uml的語義是定 義在一個四層或四個抽象級建模概念框架中的。這四 層分別是: l 元元模型(meta-metamodel)層組成uml最基本的元素 事物(thing),代表要定義的所有事物。 l 元模型

6、(metamodel)層組成了uml的基本元素,包括 面向?qū)ο蠛兔嫦蚪M件的概念。這一層的每個概念都是 元元模型中事物概念的實例。 l 模型(model)層組成了uml的模型。這一層中的每個 概念都是元模型層中概念的一個實例。 l 用戶模型(user model)層。這層中的所有元素都是 uml模型的例子。這一層中的每個概念都是模型層的一 個實例。 l 元模型(meta-model)當(dāng)然也是模型,他描述的對象是 “模型中的元素、元素間關(guān)系以及表示法”,或者說 它是一種語言,人們使用這種語言來描述模型。使用 同樣元模型的人,可以互相理解彼此所建立的模型。 l 我們的每一句話,每篇文章都是一個模型中

7、文是我們 的建模語言。掌握中文的人,可以通過理解對方的句 子和文章。中文、英文、德文、法文都是自然語言, 也都是元模型。 l 如果你要發(fā)明一種新的自然語言,你需要發(fā)明 哪些要素呢?例如:你是否需要發(fā)明相關(guān)的詞 匯和語法?詞匯是否需要分成名詞、動詞、形 容詞等等?每一個詞匯是否都應(yīng)該有讀音和寫 法?(ps,指環(huán)王的作者托爾金大叔就發(fā) 明了一種新的語言,名曰精靈語,而且居然還 有個女人把它學(xué)會了。)或者,你發(fā)明了一種 新的“自然語言”,但是它是不是真正意義上 的自然語言呢? l 顯然,要回答這個問題,我們需要先搞清楚什 么是“自然語言”。怎么才能精確的說清楚? 最好是建立一個模型,用這個模型來闡明

8、“自 然語言”的要素和結(jié)構(gòu)。使用這個模型,我們 可以定義自己的“自然語言”。這個模型對于 任何一種自然語言(例如中文),就是元模型; 而相對于一個句子或者一篇文章則是元元模型。 l 如此類推,我們還可以建立元元元模型,元元 元元模型,等等。但是,陷于人類的思維能力 和實際的需要,4層可能就足夠了。 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 基本構(gòu)造塊:也就是建?;緲?gòu)造塊:也就是建模 元素,是模型的主體元素,是模型的主體 UML規(guī)則:也就是支配基規(guī)則:也就是支

9、配基 本構(gòu)造塊如何放在一起的本構(gòu)造塊如何放在一起的 規(guī)則規(guī)則 公共機制:運用于整個公共機制:運用于整個 UML模型中的公共機制、模型中的公共機制、 擴展機制擴展機制 lUML模型圖的構(gòu)成模型圖的構(gòu)成 l事物事物(Things):UML模型中最基本的構(gòu)成元素, 是具有代表性的成分的抽象 l關(guān)系關(guān)系(Relationships):關(guān)系把事物緊密聯(lián)系在一 起 l圖圖(Diagrams ):圖是事物和關(guān)系的可視化表示 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 事物構(gòu)造

10、塊是對模型中最具有代表性的成分的抽象事物構(gòu)造塊是對模型中最具有代表性的成分的抽象 結(jié)構(gòu)事物:結(jié)構(gòu)事物:UML中的名詞,它是模型的靜態(tài)部分,描中的名詞,它是模型的靜態(tài)部分,描 述概念或物理元素。述概念或物理元素。 行為事物:行為事物:UML中的動詞,它是模型中的動態(tài)部分,中的動詞,它是模型中的動態(tài)部分, 是一種跨越時間、空間的行為。是一種跨越時間、空間的行為。 分組事物:分組事物:UML中的容器,用來組織模型,使模型更中的容器,用來組織模型,使模型更 加的結(jié)構(gòu)化。加的結(jié)構(gòu)化。 注釋事務(wù):注釋事務(wù):UML中的解釋部分,和代碼中的注釋語句中的解釋部分,和代碼中的注釋語句 一樣,是用來描述模型的。一樣

11、,是用來描述模型的。 首先建立反應(yīng)現(xiàn)實世界中不同事物的首先建立反應(yīng)現(xiàn)實世界中不同事物的“構(gòu)造塊構(gòu)造塊”,然后,然后 確定確定“構(gòu)造塊構(gòu)造塊”之間的之間的“關(guān)系關(guān)系”,再確定各個構(gòu)造塊的,再確定各個構(gòu)造塊的 屬性和屬性和“行為行為”。這樣,在軟件系統(tǒng)中就可以模擬現(xiàn)實。這樣,在軟件系統(tǒng)中就可以模擬現(xiàn)實 世界的世界的“構(gòu)造塊構(gòu)造塊”之間的交互與協(xié)作之間的交互與協(xié)作 面向?qū)ο筌浖_發(fā)的核心思想就是高內(nèi)聚(封裝)、低面向?qū)ο筌浖_發(fā)的核心思想就是高內(nèi)聚(封裝)、低 耦合(消息驅(qū)動),使用簡潔的接口拼合簡單的部件耦合(消息驅(qū)動),使用簡潔的接口拼合簡單的部件 類(類(class)和對象()和對象(obje

12、ct) 接口(接口(interface) 主動類(主動類(active class) 用例(用例(use case) 協(xié)作(協(xié)作(collaboration) 構(gòu)件(構(gòu)件(component) 節(jié)點(節(jié)點(node) 類是對一組具有相同屬性、相同操作、相同關(guān)系和相同類是對一組具有相同屬性、相同操作、相同關(guān)系和相同 語義的對象的抽象語義的對象的抽象 UML中類是用一個矩形表示的,它包含三個區(qū)域,最中類是用一個矩形表示的,它包含三個區(qū)域,最 上面是類名、中間是類的屬性、最下面是類的方法上面是類名、中間是類的屬性、最下面是類的方法 對象則是類的一個實例對象則是類的一個實例 l 1.邊界類(Bound

13、ry Class); l 2.實體類(Entity Class); l 3.控制類(Control Class); l 1.用來描述什么問題? l 邊界類用于描述外部參與者與系統(tǒng)之間的交互。 l 邊界類是一種用于對系統(tǒng)外部環(huán)境與其內(nèi)部運作之間的交互進行建模的類。 這種交互包括轉(zhuǎn)換事件,并記錄系統(tǒng)表示方式(例如接口)中的變更。 l 2.可以帶來什么好處? l 識別邊界類可以幫助開發(fā)人員識別出用戶對界面的需求。 l 3.如何理解邊界類 l 邊界類位于系統(tǒng)與外界的交界處,窗體、報表、以及表示通訊協(xié)議的類、 直接與外部設(shè)備交互的類、直接與外部系統(tǒng)交互的類等都是邊界類。 l 通過用例圖可以確定需要的邊界

14、類,每個Actor/Use Case對至少 要一個邊界類,但并非每個Actor/Use Case對要唯一的邊界類。 l 用戶界面類 - 幫助與系統(tǒng)用戶進行通信的類 l 系統(tǒng)接口類 - 幫助與其他系統(tǒng)進行通信的類 l 設(shè)備接口類 - 為用來監(jiān)測外部事件的設(shè)備(如傳感器)提供接口 的類 l 實體類主要是作為數(shù)據(jù)管理和業(yè)務(wù)邏輯處理層面上存 在的類別。 l 實體類的主要職責(zé)是存儲和管理系統(tǒng)內(nèi)部的信息,它 也可以有行為,甚至很復(fù)雜的行為,但這些行為必須 與它所代表的實體對象密切相關(guān)。 l 實體類保存要放進持久存儲體的信息。持久存儲體就 是數(shù)據(jù)庫、文件等可以永久存儲數(shù)據(jù)的介質(zhì)。實體類 可以通過事件流和交互

15、圖發(fā)現(xiàn)。通常每個實體類在數(shù) 據(jù)庫中有相應(yīng)的表,實體類中的屬性對應(yīng)數(shù)據(jù)庫表中 的字段。 l 實體類是用于對必須存儲的信息和相關(guān)行為建模的類。 實體對象(實體類的實例)用于保存和更新一些現(xiàn)象 的有關(guān)信息,例如:事件、人員或者一些現(xiàn)實生活中 的對象。 l 1.用來描述什么問題? l控制類用于描述一個用例所具有的事件流控制行為, 控制一個用例中的事件順序。 l 2.如何理解控制類? l控制類是控制其他類工作的類。每個用例通常有一 個控制類,控制用例中的事件順序,控制類也可以 在多個用例間共用。其他類并不向控制類發(fā)送很多 消息,而是由控制類發(fā)出很多消息。 l 1.用來描述什么問題? l控制類用于描述一個

16、用例所具有的事件流控制行為,控制一 個用例中的事件順序。 l 2.如何理解控制類? l控制類是控制其他類工作的類。每個用例通常有一個控制類, 控制用例中的事件順序,控制類也可以在多個用例間共用。 其他類并不向控制類發(fā)送很多消息,而是由控制類發(fā)出很多 消息。 l 考試系統(tǒng)中當(dāng)學(xué)生在考試時 ,學(xué)生與試卷交互, 那么學(xué) 生和試卷都是實體類; l 而考試時間,規(guī)則,分數(shù)都是控制類 l 當(dāng)考試完了將試卷提交給試卷保管者,則試卷則成了邊 界類。 l 1.邊界類,描述外部與系統(tǒng)內(nèi)部交互的類; l 2.控制類,控制其他類; l 3.實體類,存儲信息(持久化)和相關(guān)行為的類; 接口是描述某個類或構(gòu)件的一個服務(wù)操

17、作集接口是描述某個類或構(gòu)件的一個服務(wù)操作集 主動類實際上是一種特殊的類。引用它的原因,實際上主動類實際上是一種特殊的類。引用它的原因,實際上 是在開發(fā)中需要有一些類能夠起到是在開發(fā)中需要有一些類能夠起到 啟動控制活動的作用啟動控制活動的作用 主動類是指其對象至少擁有一個進主動類是指其對象至少擁有一個進 程或線程,能夠啟動控制活動的類程或線程,能夠啟動控制活動的類 用例是著名的大師用例是著名的大師Ivar Jacobson首先提出的,現(xiàn)已經(jīng)成首先提出的,現(xiàn)已經(jīng)成 為了面向?qū)ο筌浖_發(fā)中一個需求分析的最常用工具為了面向?qū)ο筌浖_發(fā)中一個需求分析的最常用工具 用例實例是在系統(tǒng)中執(zhí)行的一系列動作,這些

18、動作將生用例實例是在系統(tǒng)中執(zhí)行的一系列動作,這些動作將生 成特定執(zhí)行者可見的價值結(jié)果。一個成特定執(zhí)行者可見的價值結(jié)果。一個 用例定義一組用例實例。用例定義一組用例實例。 協(xié)作定義了一個交互,它是由一組共同工作以提供某協(xié)協(xié)作定義了一個交互,它是由一組共同工作以提供某協(xié) 作行為的角色和其他元素構(gòu)作行為的角色和其他元素構(gòu) 成的一個群體。成的一個群體。 對于某個用例的實現(xiàn)就可對于某個用例的實現(xiàn)就可 以表示為一個協(xié)作以表示為一個協(xié)作 在實際的軟件系統(tǒng)中,有許多要比在實際的軟件系統(tǒng)中,有許多要比“類類”更大的實體,更大的實體, 例如一個例如一個COM組件、一個組件、一個DLL文件、一個文件、一個JavaB

19、eans、 一個執(zhí)行文件等等。為了更好地對在一個執(zhí)行文件等等。為了更好地對在UML模型中對它模型中對它 們進行表示,就引入了構(gòu)件(也譯為組件)們進行表示,就引入了構(gòu)件(也譯為組件) 構(gòu)件是系統(tǒng)設(shè)計的一個模塊化部分,它隱藏了內(nèi)部的實構(gòu)件是系統(tǒng)設(shè)計的一個模塊化部分,它隱藏了內(nèi)部的實 現(xiàn),對外提供了一組外部接口。在系統(tǒng)中滿足相同接口現(xiàn),對外提供了一組外部接口。在系統(tǒng)中滿足相同接口 的組件可以自由地替換的組件可以自由地替換 為了能夠有效地對部署的結(jié)構(gòu)進行建模,為了能夠有效地對部署的結(jié)構(gòu)進行建模,UML引入了引入了 節(jié)點這一概念,它可以用來描述實際的節(jié)點這一概念,它可以用來描述實際的PC機、打印機、機、

20、打印機、 服務(wù)器等軟件運行的基礎(chǔ)硬件服務(wù)器等軟件運行的基礎(chǔ)硬件 節(jié)點是運行時存在的物理元素,它表示了一種可計算的節(jié)點是運行時存在的物理元素,它表示了一種可計算的 資源,通常至少有存儲空間和處理能力資源,通常至少有存儲空間和處理能力 Server 交互(交互(interaction):):是在特定語境中,共同完成某是在特定語境中,共同完成某 個任務(wù)的一組對象之間交換的信息集合個任務(wù)的一組對象之間交換的信息集合 交互的表示法很簡單,就是一條有向直線,并在上面標(biāo)交互的表示法很簡單,就是一條有向直線,并在上面標(biāo) 有操作名有操作名 狀態(tài)機(狀態(tài)機(state machine):是一個對象或交互在生命周)

21、:是一個對象或交互在生命周 期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列 在在UML模型中將狀態(tài)畫為一個圓模型中將狀態(tài)畫為一個圓 角矩形,并在矩形內(nèi)寫出狀態(tài)名角矩形,并在矩形內(nèi)寫出狀態(tài)名 稱及其子狀態(tài)稱及其子狀態(tài) 等待等待 對于一個中大型的軟件系統(tǒng)而言,通常會包含大量的類,對于一個中大型的軟件系統(tǒng)而言,通常會包含大量的類, 因此也就會存在大量的結(jié)構(gòu)事物、行為事物,為了能夠因此也就會存在大量的結(jié)構(gòu)事物、行為事物,為了能夠 更加有效地對其進行整合,生成或簡或繁、或宏觀或微更加有效地對其進行整合,生成或簡或繁、或宏觀或微 觀的模型,就需要對其進行分組。在觀的模型,就需要對其進行分組。在U

22、ML中,提供了中,提供了 “包(包(Package)”來完成這一目標(biāo)來完成這一目標(biāo) 數(shù)據(jù)訪問數(shù)據(jù)訪問 結(jié)構(gòu)事物是模型的主要構(gòu)造塊,行為事物則是補充了模結(jié)構(gòu)事物是模型的主要構(gòu)造塊,行為事物則是補充了模 型中的動態(tài)部分,分組事物而是用來更好地組織模型,型中的動態(tài)部分,分組事物而是用來更好地組織模型, 似乎已經(jīng)很完整了。而注釋事物則是用來錦上添花的,似乎已經(jīng)很完整了。而注釋事物則是用來錦上添花的, 它是用來在它是用來在UML模型上添加適當(dāng)?shù)慕忉尣糠帜P蜕咸砑舆m當(dāng)?shù)慕忉尣糠?UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制

23、UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) l UML關(guān)系關(guān)系 l依賴依賴 依賴(dependency)是兩個事物之間的語義關(guān)系,其中一個事物 (獨立事物)發(fā)生變化, 會影響到另一個事物(依賴事物)的語義 l關(guān)聯(lián)關(guān)聯(lián) 關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它指明一個事物的對象與 另一個事物的對象間 的聯(lián)系 l泛化泛化 泛化(generalization)是一種特殊/一般的關(guān)系。也可以看作是常 說的繼承關(guān)系 l實現(xiàn)實現(xiàn) 實現(xiàn)(realization)是類元之間的語義關(guān)系,其中的一 個類元指定了由另一個類元保證執(zhí)行的契約 種類變種表示法關(guān)鍵字或符號種類變種表示法關(guān)鍵字或符號 抽象派生

24、依賴關(guān)系derive導(dǎo)入 私有依賴關(guān)系access 顯現(xiàn)manifest公有import 實現(xiàn)實現(xiàn)關(guān)系實現(xiàn)關(guān)系虛線加空心三角信息流flow 精化依賴關(guān)系refine包含并merge 跟蹤trace許可permit 關(guān)聯(lián)關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系實線協(xié)議符 合 未指定 綁定依賴關(guān)系bind(參數(shù)表)替換依賴關(guān)系substitute 部署deploy使用調(diào)用call 擴展Extendextend(擴展點 ) 創(chuàng)建create 擴展extensi on 擴展關(guān)系擴展關(guān)系實線加實心三角實例 化 instantiate 泛化泛化關(guān)系泛化關(guān)系實線加空間三角職責(zé)responsibility 包含依賴關(guān)系include

25、發(fā)送send 關(guān)聯(lián)(關(guān)聯(lián)(Association)表示兩個類之間存在某種語義上的)表示兩個類之間存在某種語義上的 聯(lián)系。關(guān)聯(lián)關(guān)系提供了通信的路徑,它是所有關(guān)系中最聯(lián)系。關(guān)聯(lián)關(guān)系提供了通信的路徑,它是所有關(guān)系中最 通用、語義最弱的。通用、語義最弱的。 在在UML中,使用一條實線來表示關(guān)聯(lián)關(guān)系中,使用一條實線來表示關(guān)聯(lián)關(guān)系 在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系:聚合和組合在關(guān)聯(lián)關(guān)系中,有兩種比較特殊的關(guān)系:聚合和組合 聚合關(guān)系:聚合(聚合關(guān)系:聚合(Aggregation)是一種特殊形式的關(guān)聯(lián)。)是一種特殊形式的關(guān)聯(lián)。 聚合表示類之間的關(guān)系是整體與部分的關(guān)系聚合表示類之間的關(guān)系是整體與部分的關(guān)系 如

26、果發(fā)現(xiàn)如果發(fā)現(xiàn)“部分部分”類的存在,是完全依賴于類的存在,是完全依賴于“整體整體”類類 的,那么就應(yīng)該使用的,那么就應(yīng)該使用“組合組合”關(guān)系來描述關(guān)系來描述 泛化關(guān)系描述了一般事物與該事物中的特殊種類之間的泛化關(guān)系描述了一般事物與該事物中的特殊種類之間的 關(guān)系,也就是父類與子類之間的關(guān)系。關(guān)系,也就是父類與子類之間的關(guān)系。 實現(xiàn)關(guān)系是用來規(guī)定接口和實現(xiàn)接口的類或組件之間的實現(xiàn)關(guān)系是用來規(guī)定接口和實現(xiàn)接口的類或組件之間的 關(guān)系。接口是操作的集合,這些操作用于規(guī)定類或組件關(guān)系。接口是操作的集合,這些操作用于規(guī)定類或組件 的服務(wù)。的服務(wù)。 擴展表示將一個構(gòu)造型附加到一個元類(擴展表示將一個構(gòu)造型附加

27、到一個元類(metaclass)上,)上, 使得元類的定義中包括這個構(gòu)造型。使得元類的定義中包括這個構(gòu)造型。 有兩個元素有兩個元素X、Y,如果修改元素,如果修改元素X的定義可能會引起對的定義可能會引起對 另一個元素另一個元素Y的定義的修改,則稱元素的定義的修改,則稱元素Y依賴依賴 (Dependency)于元素)于元素X。 物質(zhì) 植物動物非生物 人類 鳥類 Class Interface Cartyre UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 命名:也就是為

28、事物、關(guān)系和圖起名字。和任何語言一命名:也就是為事物、關(guān)系和圖起名字。和任何語言一 樣,名字都是一個標(biāo)識符樣,名字都是一個標(biāo)識符 范圍:與類的作用域相似,包括所有者作用域(范圍:與類的作用域相似,包括所有者作用域(owner scope)和目標(biāo)作用域()和目標(biāo)作用域(target scope)兩類)兩類 可見性:可見性: 可見性規(guī)則標(biāo)準 表示 法 Rose 屬性 Rose 方法 public任一元素,若能訪問包容器,就可以訪問它+ + protected只有包容器中的元素或包容器的后代才能夠看到它# private只有包容器中的元素才能夠看得到它- package只有聲明在同一個包中的元素才能

29、夠看到該元素 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 在圖形表示法的每個部分后面都有一個規(guī)格描述(也稱在圖形表示法的每個部分后面都有一個規(guī)格描述(也稱 為詳述),它用來對構(gòu)造塊的語法和語義進行文字敘述。為詳述),它用來對構(gòu)造塊的語法和語義進行文字敘述。 這種構(gòu)思,也就使可視化視圖和文字視圖的分離這種構(gòu)思,也就使可視化視圖和文字視圖的分離 : 預(yù)訂房間 登記入住 顧客 結(jié)帳離店 UC01: 預(yù)訂房間 參與者: XXX 前置條件: XXX 基本事件流: 1. x

30、xxxxxxxxxxxxx 2. xxxxxxxxxxxxxx 3. xxxxxxxxxxxxxx 擴展事件流 2 a. xxxxxxxxxxxx 后置條件: xxxxx UC02: 登記入住 可視化視圖可視化視圖 文字規(guī)格描述視圖文字規(guī)格描述視圖 在為了更好的表示這些細節(jié),在為了更好的表示這些細節(jié),UML中還提供了一些修飾中還提供了一些修飾 符號,例如不同可視性的符號、用斜體字表示抽象類符號,例如不同可視性的符號、用斜體字表示抽象類 UML通用劃分:通用劃分: 1)類與對象的劃分:類是一種抽象,對象是一個具體)類與對象的劃分:類是一種抽象,對象是一個具體 的實例的實例 。UMLUML的每一個

31、構(gòu)造塊幾乎都存在像類的每一個構(gòu)造塊幾乎都存在像類/ /對象這對象這 樣的二分法。例如用例和用例實例(場景),構(gòu)件和構(gòu)件樣的二分法。例如用例和用例實例(場景),構(gòu)件和構(gòu)件 實實 例,節(jié)點和節(jié)點實例等。例,節(jié)點和節(jié)點實例等。 2)接口與實現(xiàn)的分離:接口是一種聲明、是一個契)接口與實現(xiàn)的分離:接口是一種聲明、是一個契 約,也是服務(wù)的入口;實現(xiàn)則是負責(zé)實施接口提供約,也是服務(wù)的入口;實現(xiàn)則是負責(zé)實施接口提供 的契約的契約 。例如用例和實現(xiàn)它們的協(xié)作,操作和實現(xiàn)它。例如用例和實現(xiàn)它們的協(xié)作,操作和實現(xiàn)它 們的方法們的方法 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 U

32、ML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 構(gòu)造型:在實際的建模過程中,可能會需要定義一些特定于某個領(lǐng)構(gòu)造型:在實際的建模過程中,可能會需要定義一些特定于某個領(lǐng) 域或某個系統(tǒng)的構(gòu)造塊,構(gòu)造型可以被看成特殊的類,用雙尖括號域或某個系統(tǒng)的構(gòu)造塊,構(gòu)造型可以被看成特殊的類,用雙尖括號 內(nèi)的文字字符串表示內(nèi)的文字字符串表示 標(biāo)記值則是用來為事物添加新特性的。標(biāo)記值的表示方法是用形如標(biāo)記值則是用來為事物添加新特性的。標(biāo)記值的表示方法是用形如 “標(biāo)記信息標(biāo)記信息”的字符串。的字符串。記值擴充了記值擴充了UMLUML的構(gòu)造塊的屬性,允許你的構(gòu)造塊的屬性,允

33、許你 在元素的規(guī)格中創(chuàng)建新的信息。約束擴充了在元素的規(guī)格中創(chuàng)建新的信息。約束擴充了UMLUML構(gòu)造塊的語義,允構(gòu)造塊的語義,允 許你添加新的規(guī)則或修改已有的。你將使用這些機制來讓許你添加新的規(guī)則或修改已有的。你將使用這些機制來讓UMLUML滿足滿足 你的領(lǐng)域和開發(fā)的特別需要。你的領(lǐng)域和開發(fā)的特別需要。 Overflow 注注 exception exception Overflow Overflow 構(gòu)造型標(biāo)準表示法構(gòu)造型標(biāo)準表示法 小圖標(biāo)表示法小圖標(biāo)表示法 新圖標(biāo)表示法新圖標(biāo)表示法 : OverflowOverflow為類名為類名 當(dāng)你用當(dāng)你用UMLUML建立模型的時候,你總是使用建立模型的

34、時候,你總是使用UMLUML定義的規(guī)則,這實在是定義的規(guī)則,這實在是 件好事,因為別的懂得如何讀件好事,因為別的懂得如何讀UMLUML的人可以毫無偏差地讀懂你想要的人可以毫無偏差地讀懂你想要 表達的東西。然而,如果你發(fā)現(xiàn)你需要表達的語義是表達的東西。然而,如果你發(fā)現(xiàn)你需要表達的語義是UMLUML無法表達無法表達 的或你想要修改的或你想要修改UMLUML的規(guī)則,這時你就需要使用約束(的規(guī)則,這時你就需要使用約束(constraintconstraint) 了。了。 約束是用來增加新的語義或改變已存在規(guī)則的一種機制(自由文本約束是用來增加新的語義或改變已存在規(guī)則的一種機制(自由文本 和和OCL兩種

35、表示法)。約束的表示法和標(biāo)記值法類似,都是使用花兩種表示法)。約束的表示法和標(biāo)記值法類似,都是使用花 括號括起來的串來表示,不過它是不能夠放在元素中的,而是放在括號括起來的串來表示,不過它是不能夠放在元素中的,而是放在 相關(guān)的元素附近。相關(guān)的元素附近。 用于加入新的規(guī)則或修改已經(jīng)存在的規(guī)則,即利用一個表達式把約用于加入新的規(guī)則或修改已經(jīng)存在的規(guī)則,即利用一個表達式把約 束信息應(yīng)用于元素上。約束是用文字表達式來表示元素、依賴關(guān)系、束信息應(yīng)用于元素上。約束是用文字表達式來表示元素、依賴關(guān)系、 注釋上的語義限制。注釋上的語義限制。 對象約束語言對象約束語言(Object Constraint Lan

36、guage)(Object Constraint Language),簡稱,簡稱OCLOCL,是一種,是一種 指示用戶建模系統(tǒng)中的限制方式。它是指示用戶建模系統(tǒng)中的限制方式。它是UMLUML可選的附加內(nèi)容,可以可選的附加內(nèi)容,可以 用來更好地定義對象的行為,并為任何類元指定約束。用來更好地定義對象的行為,并為任何類元指定約束。 l 圖中圖顯示了每個圖中圖顯示了每個Person可能是可能是0個個 或多個或多個Department的成員。每個的成員。每個 Department至少要有一個至少要有一個Person成員。成員。 這副圖進一步說明每個這副圖進一步說明每個Department嚴嚴 格地有一

37、個格地有一個Person作為管理者,每個作為管理者,每個 Person可以是可以是0個或多個個或多個Department 的被管理人員。所有的這些語義可以的被管理人員。所有的這些語義可以 被簡單的被簡單的UML表達。然而,為了指出表達。然而,為了指出 一個管理者必須也是一個管理者必須也是Department的成的成 員是多員關(guān)系所忽略的,也是簡單的員是多員關(guān)系所忽略的,也是簡單的 UML無法表達的。為了表達這種關(guān)系,無法表達的。為了表達這種關(guān)系, 必須寫下一個約束指出管理者是必須寫下一個約束指出管理者是 Department成員的一個子集。從子集成員的一個子集。從子集 到超集用依賴關(guān)系將兩個關(guān)

38、系聯(lián)系起到超集用依賴關(guān)系將兩個關(guān)系聯(lián)系起 來。來。 NewClass Interface 類 是對一組具有相同屬性、相 同操作、相同關(guān)系和相同語 義的對象的描述 對象 接口 是描述了一個類或構(gòu)件的一 個服務(wù)的操作集 協(xié)作 定義了一個交互,它是由一 組共同工作以提供某種協(xié)作 行為的角色和其他元素構(gòu)成 的一個群體 用例是對一組動作序列的描述 主動 類 對象至少擁有一個進程或線 程的類 構(gòu)件 是系統(tǒng)中物理的、可替代的 部件 參與 者 在系統(tǒng)外部與系統(tǒng)直接交互 的人或事物 actor componet usecase 節(jié)點是在運行時存在的物理元素 交互 它由在特定語境中共同完成 一定任務(wù)的一組對象間交

39、換 的消息組成 狀態(tài)機 它描述了一個對象或一個交 互在生命期內(nèi)響應(yīng)事件所經(jīng) 歷的狀態(tài)序列 包把元素組織成組的機制 注釋事物是UML模型的解釋部分 依賴一條可能有方向的虛線 關(guān)聯(lián)一條實線,可能有方向 泛化一條帶有空心箭頭的實線 實現(xiàn)一條帶有空心箭頭的虛線 NewPro cessor state NewPackage l UML語法描述語法描述 UML的組成的組成 事物構(gòu)造塊事物構(gòu)造塊 關(guān)系構(gòu)造塊關(guān)系構(gòu)造塊 UML規(guī)則規(guī)則 UML公共機制公共機制 UML擴展機制擴展機制 UML體系結(jié)構(gòu)與圖體系結(jié)構(gòu)與圖 本章小結(jié)本章小結(jié) 圖名功能備注 類圖描述類、類的特性以及類之間的關(guān)系UML 1原有 對象圖描述一

40、個時間點上系統(tǒng)中各個對象的一個快照UML 1非正式圖 復(fù)合結(jié)構(gòu)圖描述類的運行時刻的分解UML 2.0新增 構(gòu)件圖描述構(gòu)件的結(jié)構(gòu)與連接UML 1原有 部署圖描述在各個節(jié)點上的部署UML 1原有 包圖描述編譯時的層次結(jié)構(gòu)UML中非正式圖 用例圖描述用戶與系統(tǒng)如何交互UML 1原有 活動圖描述過程行為與并行行為UML 1原有 狀態(tài)機圖描述事件如何改變對象生命周期UML 1原有 順序圖描述對象之間的交互,重點在強調(diào)順序UML 1原有 通信圖描述對象之間的交互,重點在于連接UML 1中的協(xié)作圖 定時圖描述對象之間的交互,重點在于定時UML 2.0 新增 交互概觀圖是一種順序圖與活動圖的混合UML 2.0

41、新增 主要領(lǐng)域視圖圖 結(jié)構(gòu)靜態(tài)視圖類圖 設(shè)計視圖復(fù)合結(jié)構(gòu)圖、協(xié)作圖、構(gòu)件圖 用例視圖用例圖 動態(tài)狀態(tài)視圖狀態(tài)機圖 活動視圖活動圖 交互視圖順序圖、通信圖 物理部署視圖部署圖 模型管理 模型管理視圖 包圖 特性描述包圖 UML 圖結(jié)構(gòu)圖行為圖 類圖 復(fù)合結(jié)構(gòu)圖 構(gòu)件圖 對象圖 部署圖 包圖 用例圖活動圖狀態(tài)機圖 交互圖 順序圖 通信圖 交互概觀圖 定時圖 l 各各UML圖及特征圖及特征 l 用例圖用例圖( Use Case Diagram ) 用例圖是從用戶角度描述系 統(tǒng)功能, 是用戶所能觀察到 的系統(tǒng)功能的模型圖,用例 是系統(tǒng)中的一個功能單元 類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定 義系統(tǒng)中的類,

42、表示類之間的聯(lián)系如關(guān) 聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié) 構(gòu)(類的屬性和操作) 類圖是以類為中心來組織的,類圖中的 其他元素或?qū)儆谀硞€類或與類相關(guān)聯(lián) 類圖類圖(Class Diagram) l 各各UML圖及特征圖及特征 l 對象圖對象圖( Object Diagram ) 對象圖是類圖的實例,幾乎使用與 類圖完全相同的標(biāo)識。他們的不同 點在于對象圖顯示類的多個對象實 例,而不是實際的類 順序圖順序圖(Sequence Diagram) 順序圖顯示對象之間的動態(tài)合 作關(guān)系,它強調(diào)對象之間消息 發(fā)送的時間順序,同時顯示對 象之間的交互 。 順序圖的一個用途是用來表示 用例中的行為順序。當(dāng)執(zhí)行一 個用例行為時,順序圖中的每 條消息對應(yīng)了一個類操作或引 起狀態(tài)轉(zhuǎn)換的觸發(fā)事件 l 各各UML圖及特征圖及特征 l 協(xié)作圖協(xié)作圖(Collaboration Diagram) 協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié) 作圖跟順序圖相似,顯示對象間的 動態(tài)合作關(guān)系。除顯示信息交換外, 協(xié)作圖還顯示對象以及它們之間的 關(guān)系.側(cè)重對象間消息傳遞關(guān)系。側(cè)重對象間消息傳遞關(guān)系。 協(xié)作圖的一個用途是表示一個類操 作的實現(xiàn) 狀態(tài)圖狀態(tài)圖(State Chart Diagram) 狀態(tài)圖是一個類對象所可能經(jīng)歷 的所有歷程的模型圖。狀態(tài)圖

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論