【UML】類圖、包圖、對象圖

      網友投稿 888 2025-03-31

      一、類圖

      1.類

      類:對真實客觀世界中真實存在的客觀的事物的抽象的描述

      例如在學籍管理系統中出現了student這個類

      屬性:描述一個類的靜態的信息

      操作/方法:描述一個類的動態的信息

      在類的表示中:

      “-”減號表示私有

      “+”加號表示公有

      “#”井號表示保護

      注意:畫類圖的時候可以根據情況酌情的把類的屬性和方法部分的某一部分隱藏起來

      2.類的關系

      (1)關聯(普通關聯、聚合、組合)

      普通關聯

      應用于關聯的修飾

      ①名稱(Association name):用以描述該關系的性質

      ②角色(Role):當一個類處于關聯的某一端時,該類就在這個關系中扮演了一個特定的角色;角色是關聯中靠近他的一端的類對另外端的類的呈現的職責。

      ③多重性(Multiplicity):關聯角色的多重性是說明一個關聯的實例中有多少個相互連接的對象。

      關聯的類型:

      -單向關聯(導航關聯)

      -雙向關聯

      -兩個類之間可以有多種關聯

      -一個類可以和多個類關聯

      -自身關聯

      組合和聚合

      組合和聚合都是整體和部分關系

      聚合:整體和部分之間是一種松耦合的關系,用空心菱形表示

      舉例,書和書架之間就是一種聚合關系,書或者書架都可脫離對方而獨立存在,他們之間沒有一種可以相互制約的生命關系

      組合:整體和部分之間是一種緊耦合的關系

      比較:

      (2)依賴

      依賴是一種使用關系。他說明一個事物規格說明的變化可能影響到使用它的另一個事物。但反之未必。

      注意:

      能用組合和聚合來表達的就不要用普通關聯來表達。因為組合和聚合比普通關聯信息描述的更佳嚴格,關聯比依賴描述的信息更佳嚴格。

      如果兩個類之間有結構化關系,我們應該用關聯來表示,因為關聯的描述相比依賴更佳嚴密,并且包含依賴關系。如果沒有結構化關系,只是一種簡單的使用關系,我們采用依賴來表示。

      (3)泛化(繼承)

      繼承機制的引入目的就是為了最大化的進行軟件的復用,減少軟件發布之后的維護代價。

      -單重繼承:有且只有一個父類

      -多重繼承:一個類有兩個或兩個以上的父類

      例,水陸兩系車他的父類可以是普通汽車和普通船。

      注意:

      多重繼承可能會產生二義性,在Java語言中一個類是不允許繼承多個類的,如

      果要實現的話,必須通過接口來實現而不能通過多重繼承的方式來實現。

      (4)實現

      實現是類元之間的語義關系,在該關系中一個類元描述了另一個類元保證實現的契約。

      3.類圖的構成

      (1)用來描述系統的靜態部分

      (2)類圖的構成

      Classes(類)

      Interfaces(接口)

      Collaborations(協作)

      Dependency(依據),Generalization(泛化) and Association relationships(關聯關系)

      Packages(包) or Subsystems(子系統)(for grouping)

      注意:

      【UML】類圖、包圖、對象圖

      在設計一個類的方法的時候,一定要注意一個簡單的原則,當我們分析這個方法放到哪里的時候,一定要考慮這個方法的執行者是誰,應該把這個方法放到真正執行他的那個類里面,而不是調用他的那個類里面

      舉例:上課的過程中如果老師和學生都是類,那老師讓學生發言這個方法應該添加到哪個類的下面,在這個方法中,真正的執行者是學生,因為老師只是調用學生這個類,真正的執行者是學生,所以應該把這個方法放到學生這個類里。

      4.類圖深入討論

      (1)可見性Visibility

      public/private/protected

      (2)范圍Scope

      每個實例自己擁有自己的屬性和方法

      靜態成員:對一個類的所有實例共享一個成員

      “_”表示這是一個靜態成員

      (3)屬性Attributes

      (4)操作Operations

      (5)模板類Template Classes

      (6)實用類Utility Classes

      5.類圖的應用

      分析、設計、實現一個軟件系統時需要以下步驟

      (1)分析usecase圖

      (2)分析類圖(尋找名詞)

      (3)確定每一個類的屬性和方法(行為是哪個類實施的,這個方法就屬于哪個類)

      需要注意的問題:

      (1)給定一個軟件系統特征,可以抽象得到類

      (2)抽象得到每個類的屬性和方法

      (3)正確的表達類與類之間的關系(注意:不能只用依賴關系,能用組合就不用聚合,能用聚合就不用一般關聯,能用一般關聯就不用依賴,該用接口實現的時候就用接口實現,需要用繼承的時候就用繼承)

      (4)需要對這些關系進行修飾,比如關系的多重性、關系的名稱、關系的角色名

      二、包圖

      1.包的作用

      (1)邏輯上吧一個復雜的圖模塊化

      (2)組織源代碼

      2.包的圖符

      3.包中的元素

      (1)類、接口、構件、用例、其他包等

      (2)若包被撤銷,則其中的元素也被撤銷了。

      4.包與包之間的關系

      (1)泛化

      (2)細化

      (3)依賴(常用)

      -如果兩個包中的任意兩個類之間有依賴關系,則這兩個包之間有依賴關系。

      5.包常見的問題

      (1)一定要避免循環依賴的產生

      (2)測試時可以以包為測試單位

      (3)應該盡量把概念和語義上相近的元素包含在同一個包中。

      (4)對于一個包,找出哪些包內的元素是可以在包外訪問的,把這些元素標記為公共的,其他所有元素都標記為受保護的或者私有的。

      三、對象圖

      對象圖包含對象、連接和包

      對象圖是系統在某個運行時刻的一個快照

      四、小結

      類圖:是對一個軟件系統的靜態成分進行呈現

      包圖:是對一個軟件系統進行模塊劃分,使得源碼結構更加清晰

      對象圖:這個系統在某一時刻的一個快照

      UML

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel無法新增列怎么辦(excel為何無法增加數據列)
      下一篇:Word中利用宏快速統一表格樣式的操作技巧(word表格宏設置)
      相關文章
      亚洲人成片在线观看| 亚洲精品影院久久久久久| 亚洲AV无码久久久久网站蜜桃| 亚洲AV午夜成人影院老师机影院| 亚洲夜夜欢A∨一区二区三区 | 亚洲a在线视频视频| 亚洲av无码专区在线播放| 亚洲国产精品一区二区第一页| 中文字幕无码精品亚洲资源网| 亚洲人午夜射精精品日韩| 亚洲日韩VA无码中文字幕 | 亚洲国产精品视频| 亚洲 综合 国产 欧洲 丝袜| 亚洲av无码乱码在线观看野外| heyzo亚洲精品日韩| 亚洲午夜日韩高清一区| 久久亚洲AV无码西西人体| 亚洲精品亚洲人成在线观看| 亚洲女久久久噜噜噜熟女| 亚洲成AV人片在线观看无码| 亚洲日本一区二区三区| 337p日本欧洲亚洲大胆精品555588| 18亚洲男同志videos网站| 亚洲国产精品日韩在线| 丁香婷婷亚洲六月综合色| 亚洲色大成网站www永久网站| 亚洲精品美女久久久久久久| 欧洲亚洲综合一区二区三区| 亚洲AV之男人的天堂| 国产亚洲欧洲Aⅴ综合一区| 亚洲国产另类久久久精品小说| 亚洲AV无码国产丝袜在线观看| 久久久久久亚洲AV无码专区| 亚洲欧洲国产视频| 亚洲一区二区三区久久久久| 亚洲国产成人AV在线播放| 亚洲国产成人久久一区久久 | 在线精品亚洲一区二区小说| 亚洲AV无码国产在丝袜线观看| 亚洲第一二三四区| 亚洲男人天堂2018av|