1. 程式人生 > >Uml 建模 一(類圖建模和startuml的使用)

Uml 建模 一(類圖建模和startuml的使用)

general 改名 ring 符號 任務 部件 實現類 exp mod

本文將分三個部分介紹Uml建模:Uml建模的作用、類圖、startuml的使用

Uml的作用

   本文以java為例介紹Uml,在當前的軟件開發中大多數使用面向對象開發(OO),面向對象的就是將現實世界中的對象,行為,關系等模擬化到軟件系統中。當在開發一個軟件系統的時候,不會一開始直接編程。這樣做的後果就是沒有經過詳細的設計,導致後期某些業務邏輯基於現有的系統不能開發。所以對於軟件系統的設計尤其重要。對於系統的設計分為兩部分:1.需求分析人員根據現實業務場景,梳理出業務關系。(eg:一個老師帶一個班的課程)2.軟件設計師設計出對應的對象關系,行為,狀態等(一個老師類,一個學生類 ,多多關系)。UML建模是將現實世界的業務抽象到軟件系統中,通過圖形的方式勾勒出整個系統,在UML中可以清晰的了解所有模塊之間的關聯關系。

一:Uml 建模三種模型

類模型:描述系統內部對象及其關系的靜態結構。類模型由類圖構建,類圖中節點表示類,類與類之間的關聯關系用不同含義的弧標識。

狀態模型:描述對象隨著時間遷移發生了哪些變化。狀態模型使用狀態圖確定並實現控制。狀態圖的節點是狀態,弧是由時間引發的狀態間的轉移。

交互模型:描述系統中對象如何協作完成更為寬泛的任務。用例:關註系統的功能,即系統為用戶做了哪些事情。順序圖:顯示交互對象以及發生交互的時間順序。活動圖:描述重要的處理步驟。

二:面向對象建模離不開最基礎的面向對象的特性:抽象,繼承,封裝,多態,這些特性都會表現在類圖上,對象可以被實例化,實例化的對象的屬性,操作,類型模擬具體的對象特征。

三:類模型的特征

1.關聯關系(Associated):描述在對象之間在物理上或者概念上的聯系。關系方向是雙向的,人和工具的關聯,人使用工具工作。人和工具是多對多的關系。

技術分享圖片

表示關聯關系的符號:1..5(1~5),* (表示多的意思),+(表示類是public修飾的)

關聯中還有一種自關聯:自己關聯自己,常見的在樹形結構中,例如組織關系

技術分享圖片

一個子機構可以有多個父結構,一個父結構可以有多個子機構

2.泛化(generalization)指一個父類與其一個或多個子類之間的關系。子類繼承父類的特性,還可以表現出更寬泛的特征。

技術分享圖片

:String(生命屬性的類型),+(表示public) - (private)#(protected) ~(package) eat() (吃飯的方法)

3.實現(realization):接口是操作的集合,實現類繼承接口,將接口聲明的抽象操作具體化。例如:動物都有吃的動作,人是吃飯,猴子吃水果。

技術分享圖片

默認的接口圖形是原型,在這裏我再startUml 中修改了它的展現方式

4.聚合(aggregation)關系是一種弱關聯。一個聚集對象有多個部件構成,部件是聚集的一部分。例如:車和輪胎的關系,輪胎沒了,車依然存在。聚合具有傳遞性,A聚合B,B聚合C ,A聚合C,並且也具有反聚合性,A聚合C,C不能聚合A

技術分享圖片

這裏以四輪車為例:一輛車由四個輪子聚合

5.組合(compostion):有兩個恩愛的約束條件,一個組成部件至多屬於一個裝配件。而且一個組成部件一旦被分配給裝配件,它就會和裝配件有著相同的生命周期。裝配件消亡,組成件也將隨之消亡。例如:人和胳臂,人消失了,胳臂也不復存在,又例如:程序員沒了代碼就會死。這種關系要比聚合更強。這裏也是用實心菱型表示。

技術分享圖片

6.單項關聯(directedAssociation):沒有生命周期的限制,一個引用另外一個

技術分享圖片

一個人有多輛車

7.依賴(dependency):物體與物體之間產生的依賴關系,例如:人依賴空氣和水

技術分享圖片

所有的關聯關系:

技術分享圖片

  一個動物的接口被人類所實現(realization),人這個類被男人和女人兩個類所泛化(generalization),人類依賴(dependency)水和空氣而存活,人類的胳臂和腿才能組合(compostion)成人類,缺一不可,人類消亡,胳臂和腿已經消亡.人類可以開一輛車或者多輛車(directedAssociation),多個車輪聚合(aggregation)成車的一部分,人類可以自關聯,人類的父親,孩子。人類也可以雙向關聯(association)

四:startUml的使用

1.下載startUml之後雙擊打開,點擊default approach.

技術分享圖片

2.若左側的工具欄沒有顯示,則點擊view-->toolbox 在前面勾選,勾選model explorer。

技術分享圖片

3.找到Model explorer-->design model 右鍵點擊 add--->選擇package或者class

技術分享圖片

選中之後修改名稱

3.拖拽這個類到文本框中進行編輯

技術分享圖片

4.連接關聯關系,直接拖拽

技術分享圖片

5.直接添加的接口是圓形圖標,要想設置成方格的形式Format-stereotype dispaly-textual

技術分享圖片技術分享圖片

6.選中類或者接口點擊這兩個按鈕既可以顯示屬性和行為(方法)

技術分享圖片

Uml 建模 一(類圖建模和startuml的使用)