浅谈UML的构成
??? 前言
?
?????? 學(xué)習(xí)UML統(tǒng)一建模之前,我們了解到程序設(shè)計(jì)范型分為面向過(guò)程程序設(shè)計(jì)范型和面向?qū)ο蟮某绦蛟O(shè)計(jì)范型。面對(duì)一些較大的系統(tǒng)設(shè)計(jì),面向?qū)ο蟪绦蛟O(shè)計(jì)范型現(xiàn)的更有優(yōu)勢(shì)。
?
????? 示例
?
????? 如圖是一個(gè)訂單銷(xiāo)售系統(tǒng)的概念圖,我們抽象得到下面這張圖
??????? 如圖,將這個(gè)系統(tǒng)抽象成salesperson、customer、product、vehicle四個(gè)類(lèi)。在custome這個(gè)父類(lèi)下面,分為corporat和individual兩個(gè)子類(lèi)。同樣,vehicle這個(gè)父類(lèi)分為T(mén)ruck和Train兩個(gè)子類(lèi)。當(dāng)我們?cè)诮煌üぞ哌@里繼續(xù)增加一個(gè)交通工具時(shí),就可以直接在下面增加一個(gè)子類(lèi)。而不用推到重新建立一個(gè)從salesperson customer這樣的一個(gè)過(guò)程。體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)勢(shì)。
?
一、什么是UML?
?
??????????? 其實(shí)這個(gè)問(wèn)題有點(diǎn)大,知識(shí)有限這里簡(jiǎn)單說(shuō)明。 UML全稱是Unified Modeling Language。也就是大家常聽(tīng)說(shuō)的,統(tǒng)一建模語(yǔ)言。通過(guò)上面那個(gè)例子,我們可以分析UML的特點(diǎn)。他就是對(duì)sales系統(tǒng)進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn),通過(guò)UML圖。我們可以清晰了解到這個(gè)系統(tǒng)的大致需求和流程設(shè)計(jì)。 ?二、UML的構(gòu)成
?
?????? 這是本文主要討論學(xué)習(xí)的內(nèi)容 ?????? (1)UML中的事物
?
????????????????? 什么是事物呢?它是構(gòu)成模型圖的基本符號(hào),表示一些面向?qū)ο蠡靖拍睢7譃榻Y(jié)構(gòu)事物、行為事物、分組事物、注釋事物。
?
???????????????????? 結(jié)構(gòu)事物
?
????????????????????????? 1.Class(類(lèi))
?
??????????????????????????????
?
?????? 如圖類(lèi)在UML中的表示,也可將它的屬性和方法隱藏起來(lái)。通常是在抽象性更大的系統(tǒng)中那樣表示 ????????????????????? 2.Interface(接口)
?
?如圖我們可以知道接口僅僅是定義了一組操作講話/飛,并沒(méi)有給出這個(gè)操作具體實(shí)現(xiàn)是用什么方法還。 ?
????????????????? 3.Collaboration(協(xié)作)
?
??????????????????????????? 協(xié)作即是一組共同工作的角色、元素的合作行為。它大于所有元素單獨(dú)行為的綜合。 ????????????????? 4.Use Case(用例)
?
?
????????? 如圖,下載教材即是一個(gè)用例。換句話說(shuō),用例就是一個(gè)用戶的需求。 ?
?????????????? 5.Active Class(主動(dòng)類(lèi))
?
?????????????????????? 對(duì)象至少擁有一個(gè)進(jìn)程或線程,因此能啟動(dòng)控制活動(dòng)。 ?????????????? 6.Components(構(gòu)件)
?
??????????????????????? 系統(tǒng)中可替代的物理部分,遵循一組接口。詳細(xì)解釋見(jiàn)UML中的構(gòu)件圖?????? 在UML中如下圖表示
?
????????????? 7.Nodes(節(jié)點(diǎn))
?
????????????????? 運(yùn)行時(shí)存在的物理元素,表示一種可計(jì)算的資源。至少有些記憶能力處理里。 在UML中的表示?
??????? 行為事物
?
???????????? 1.Interaction(交互)
?
????????? 由特定語(yǔ)境中共同完成一定特定任務(wù)一組對(duì)象之間交換消息組成。一個(gè)對(duì)象群體行為或單個(gè)操作行為可用一個(gè)交互來(lái)描述 。?????? 2.State Mechanism(狀態(tài)機(jī))
?
????????? 狀態(tài)機(jī)是這樣一行為,描述一個(gè)對(duì)象或一個(gè)交互在生命期內(nèi)相應(yīng)事件所經(jīng)歷狀態(tài)序列。單個(gè)類(lèi)或一組類(lèi)之間的協(xié)作的行為可以用狀態(tài)機(jī)來(lái)描述。一個(gè)狀態(tài)機(jī)涉及到一些其他元素,包括狀態(tài)轉(zhuǎn)換(一個(gè)狀態(tài)到另一個(gè)狀態(tài)的流)事件(發(fā)轉(zhuǎn)換的事物)和活動(dòng)(對(duì)一個(gè)轉(zhuǎn)換的響應(yīng)) ??
??? 分組事物
?
?????? Package(包)
?
??? 注釋事物
?
?????? Notes(注釋)
?
?????? 依附于一個(gè)或一組元素之上,對(duì)它進(jìn)行約束或解釋的簡(jiǎn)單符號(hào)。 ?(2)UML中的關(guān)系
?
?????? 關(guān)聯(lián)
?
????????? 如圖company和person兩個(gè)類(lèi)之間的關(guān)系就是關(guān)聯(lián),employee和employer 表示person的角色。 ?
????? 依賴
?
?
?
??????? 如圖表示client類(lèi)依賴于supplier這個(gè)類(lèi)。依賴用虛線表示,箭頭指向被依賴的一方。 ????? 泛化
?
?????? 如圖,大家是不是有點(diǎn)眼熟。其實(shí)泛化就是繼承,只是在程序編程中多用繼承來(lái)表示。在UML建模用泛化來(lái)表示。兩者表達(dá)的意思都是一樣的,子類(lèi)繼承父類(lèi)的屬性和方法。
?
(3)UML中的圖
?
???????? 靜態(tài)圖
?
?
??????????? 1.Class Diagrams(類(lèi)圖)
? ??????????????? 顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類(lèi)、類(lèi)的內(nèi)部結(jié)構(gòu)以及它們與其他類(lèi)的關(guān)系等。類(lèi)圖不顯示暫時(shí)性信息。 ? ??????????? 2.Object Diagrams(對(duì)象圖)
? ?????????????? 是顯示了一組對(duì)象和他們之間的關(guān)系。
?
??????? 用例圖
?
???????????? 描述用戶需求,用戶角度描述系統(tǒng)功能,指出各功能執(zhí)行著,強(qiáng)調(diào)系統(tǒng)使用者,系統(tǒng)為執(zhí)行著完成哪些功能。
?
?????? 行為圖
?
?????????? 1.State Diagrams (狀態(tài)圖)
?
????????????????? 描述對(duì)象所有可能狀態(tài)以及事件發(fā)生時(shí)狀態(tài)轉(zhuǎn)移條件。
?
????????? 2.Activity Diagrams(活動(dòng)圖)
?
????????? 描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間約束關(guān)系,使活動(dòng)圖利于識(shí)別系統(tǒng)并行活動(dòng)。
?
?
???? 交互序列圖
?
????????? 1.Swquence Diagrams (交互序列圖)
?
????????????? 描述對(duì)象之間交互順序,體現(xiàn)對(duì)象間消息傳遞時(shí)間順序,強(qiáng)調(diào)對(duì)象之間消息發(fā)送順序,同時(shí)也顯示對(duì)象之間的交互過(guò)程。
?
???????? 2.Cahaberation Diagrams(協(xié)作圖)
?
???????????? 描述對(duì)象之間合作關(guān)系,側(cè)重于說(shuō)明哪些對(duì)象之間有消息傳遞。
?
小結(jié)
?
????????? UML在軟件開(kāi)發(fā)各個(gè)階段的應(yīng)用就是對(duì)系統(tǒng)進(jìn)行描述、設(shè)計(jì)。一個(gè)好的UML模型能夠更好的指導(dǎo)軟件的開(kāi)發(fā)。當(dāng)然當(dāng)我們下次維護(hù)和更新系統(tǒng)的時(shí)候也是很有幫助的。
轉(zhuǎn)載于:https://www.cnblogs.com/guziming/archive/2012/12/02/4232771.html
總結(jié)
- 上一篇: Linux下批量添加用户的两种方法
- 下一篇: ios 图片