UML類圖標準總結__大家相互學習

 

UML類圖標準總結__大家相互學習

以前在做一個項目之前總是在UML的一些概念上花費極大的功夫,得出的圖形反而讓自己都含糊不清。這兩天一口氣在網上查了很多相關文章,
在圖書管也翻了幾本書,給自己定義了一個UML嚴格的標準。現在拿到網上來,兄弟們幫我看看有那些地方又不妥當的地方。相互學習....

首先弄清楚類圖是個什麼東西:
    類圖(class diagram)描述了模型的靜態結構,包括模型中的類的類的內部結構以及於其他類的關係,在結構化設計一個系統的時候類圖可以讓我們的思路更加清晰。
    類的內部結構就不用說了,沒什麼好說的。
    一個類與其他的類常見的關係(我所接觸到的關係)有:
    1.一般化關係
    2.關聯關係
    3.聚合關係
    4.組合關係(合成關係)
    5.依賴關係
    其中,聚合關係合成關係又屬於關聯關係。
一般化關係表現是與類之間是(is a)的關係。也就是類與類之間的繼承,接口於接口之間的繼承或者是對一個接口的實現。表示方法是用一個空心箭頭+實線,箭頭指向父類。或用空心肩頭加虛線(如果富父類是接口的話)

如圖1,User定義了系統中一個用戶的原型,客戶Customer繼承了User類並且有自己特有的方法。管理員Manager類也繼承了User類, 並且又自己特有的方法,而且Manager爲了能夠管理客戶還實現了Cmanage這個接口,也就具備了Cmanage的所有功能,可以對客戶的餘額進行 操作,而且還可以刪除一個客戶。


關聯關係表現爲類與類之間的(has a)關係。它使一個類知道另一個類的屬性和方法。關聯關係表示的是類與類之間的持久關係,這種關係一般是表示一種業務邏輯上的關係,需要保存到數據庫中的。
如圖2.學生Student中存在一個班級Class的引用。在student中可以直接根據引用訪問到Class.同時在數據庫中存在兩張表 tb_student,tb_class,在表tb_student中有一個字段存儲了所關聯的class記錄的id。用箭頭+實指向被關聯的類



聚合關係是關聯的一種,是一種強關聯關係。聚合關係還體現了一種整體與個體的關係。如圖3:
商品ShangPin是獨立的,一張進貨單JinHuoDan內可以又很多個商品。可以說進貨單JinHuoDan是整體,商品ShangPin是個體。可以由進貨單JinHuoDan導航到每個進貨單包含的商品。空心菱形+實線+箭頭指向部分。

依賴關係是表現爲類與類之間的一種(use a)的關係。一個類用到了另一個類,爲了完成一特定的操作。但是類與類之間不存在業務邏輯上的關係。依賴關係是針對於程序來說的。依賴關係體現在程序中主要是些局部變量、方法參數、或對一個類方法的調用。如圖四:
商品管理類ShangPinManager主要對上提供查詢商品,刪除商品的功能,而這些功能的實現必須調用Dao類的某些方法來實現(一種調用關係)但是他和我們數據庫持久類Dao沒有業務上的關係,更不可能把這兩個類存到數據庫中去。虛線+箭頭指向被調用的類。

另外我個人覺得利用聚合足以體現合成,沒必要分的那麼詳細。UML本身是一種工具,沒必要把太多時間花費在工具的一些概念上面。
小弟愚見,請多多指教!。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章