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