【UML入門教程】——靜態結構(下):類圖

ZeroWM發表於2014-03-24


【類圖——理論基礎篇】


【功能】

描述系統的靜態部分。不僅定義系統中的類,表示類之間的聯絡(關聯、依賴、泛化,實現),也包括類的內部結構(類的書寫和操作)。


【包含元素】


  類、關係。


1.什麼是類呢?

類=類名+屬性(可隱藏)+方法(可隱藏)

屬性:物件的性質與物件之間的關係的統稱。事務的形狀、顏色、氣味等是事務的性質。大於、小於、朋友、矛盾等是事務的關係。任何屬性都是屬於某種物件的。


比如說狗類,狗身上都有狗毛,狗毛就是狗自身的屬性;小狗能吃、喝……,這些都是小狗能夠進行的操作,稱為方法。


屬性的可見性常分為:+:Public(公有)     -:Private(私有)     #:Protected(保護)   


在rose中的顯示

2.類圖涉及的關係

關聯、依賴、泛化、實現。類的關係是類圖的核心與精華。

詳情可參照:【UML入門教程】——UML關係




【類圖——實踐篇:機房收費系統】


畫圖步驟

1)識別出類

抽象出來的類一定要跟系統有密切聯絡。

開始對機房劃分類的時候,不知道從什麼角度劃分。後來經過查詢資料,發現大部分的類是由名詞或者動詞構成。所以自己想試著從兩個角度來劃分類:功能物件此處的物件不為類的例項化,為人名或事物名,純名詞)。畫了兩個圖,發現大同小異。很多時候,名字只是個形式,還是古語說的好:萬變不離其宗。


2)識別出類的主要屬性

個人認為此處的屬性主要跟資料表有很大的關聯。

大部分都是主鍵或者外來鍵充當屬性。另外屬性跟操作是相對應的。操作需要呼叫的資料庫表中的欄位,就是此處的屬性。

例如 操作  退卡(), 需要驗證卡號是否可用,驗證是否正在上機,所以我們要進行這些操作之前要了解的 屬性是  學生卡號、卡使用狀態(可否使用)、學生線上狀態(是否上機)。


3)描繪出類之間的關係

這個還是要參考UML的四大關係。四大關係中依賴就是使用,關係強度最弱。

關聯是整體和部分的關係。聚合強度關係<組合強度關係。

泛化主要子類繼承父類的屬性和方法,經常用於合併同類項。

實現關係是一個類實現介面的功能,對於這個關係的理解很窪~對於介面的理解:介面就是一個翻譯家。

例如,人類與程式之間的介面稱為使用者介面。使用者介面就把程式這樣大篇幅的東西翻譯成了視覺化的容易理解的資訊給人,這樣人才能更快速、更準確的瞭解程式。


4)對各類進行分析、抽象、整理

  資料庫基礎操作:增、刪、改、查,體現在系統中的功能很大一部分是:查詢,新增,修改,刪除某些管理物件。這個可以作為整合類的依據。

  許可權也可以作為一項參考依據。因為許可權不同,使用的系統功能不同,在粒度不是很小的情況下,也可以根據許可權對類進行整合。

  還有在畫類圖的過程中,經常忽略人之外的事物。比如卡類,它跟整個系統的聯絡也是十分緊密的。與之對應的書寫、方法也能很好的表達系統靜態結構。


  There are a thousand Hamlets in a thousand People's eyes.每個人對UML圖的看法、認識都可能不同,歡迎大家跟我交流。

  

勞動果實





如果大家有覺得不妥的地方還望指出!謝謝!




相關文章