日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件工程 第三章:类图

發布時間:2023/12/29 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程 第三章:类图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第三章:類圖

概念
  • 類圖的概念:類圖是描述類、接口以及它們之間關系的圖,它顯示了系統中各個類的靜態結構,是一種靜態模型。
  • 分類可以有效地使復雜問題簡化。建立類模型的過程,是把現實世界中與問題有關的各種對象及其相互關系進行抽象和分類的過程。
類圖的組成

2類元素(接口、類),4種關系

  • 對象:是人們對某個事物的一種抽象描述。對象的基本特征可以歸納為對象的屬性和行為兩類。

  • 類:類是指對一組具有相同特征的對象的抽象描述;任何對象都是某個類的實例。

  • 關聯關系:

  • 概念:關聯用來表示來表示兩個(或多個)類的對象之間的結構關系,它在代碼中表現為一個類以屬性的形式包含對另一個類的一個或多個對象的引用。
  • 表示:用一條無向線段表示,是一種雙向關系。例如客戶和訂單的關聯:從客戶看,訂單是他提交的;從訂單看,它有一個客戶。用一條有向線段表示,是一種單向關系。
  • 名稱:關聯的名稱表達了關聯的內容,一般使用動賓結構短語。關聯的名稱僅有語義作用,不轉換為代碼
  • 可見性:用可見性修飾角色名稱,以說明該角色名稱可以在哪些范圍內被訪問。
    • 泛化關系:
  • 概念:泛化關系(繼承關系)定義類和包之間的一般元素和特殊元素之間的分類關系。泛化也稱之為繼承或派生。
  • 區別:
    泛化(Generalization): 抽象化
    特化(Specialization): 實例化
    • 依賴關系:
  • 概念:依賴表示一個類以某種形式依賴于其他類。當兩個類處于依賴關系中時,其中一個類的改變可能會影響另一個類。
  • 在程序代碼中,依賴關系意味著一個類的對象出現在另一個類的操作當中。常見的有兩種情況:一個類將另一個類的對象作為自己某個操作的參數(形參),或者是操作的局部變量。
    區別:
    • 依賴關系VS關聯關系
  • 從符號上
  • 從語義上:
    當一個類的實例與另一個類的一些特定實例存在固定的對應關系時,這兩個系統之間為關聯關系。只要一個類用到另一個類,但是和另一個類的關系不是太明顯的時候(可以說是“uses”了那個類),就可以把這種關系看成是依賴,依賴也可說是一種偶然的關系。
    “我在某個方法中偶然用到了它,但在現實中我和它并沒多大關系”。
    • 實現關系:

    • 聚合與組合:

  • 概念:
    對于聚合:
    聚合表示類之間的整體與部分的關系。聚合意味著一個類擁有但共享另一個類的對象。
    當整體類不存在時,部分類仍可能存在。部分類被銷毀時,整體類也將能夠存在。
    對于組合:
    組合是一種特殊形式的聚合。與聚合相比,它有兩個特點:
    一個部分類最多只能屬于一個整體類
    當整體類不存在時,部分類將同時被銷毀。
  • 區別
    • 關聯VS聚合(組合)
      關聯關系所涉及的兩個類是處在同一個層次上的。比如學生和課程就是一種關聯關系,而不是聚合關系,因為學生不是由課程組成的。聚合關系涉及的兩個類處于不平等的層次上,一個代表整體,一個代表部分。比如電腦和顯示器、鍵盤、主板、內存就是聚合關系,因為主板等是電腦的組成部分。
    • 聚合VS組合
      組合:整體類端的重數必須是1,部分類的重數是任意的
      聚合:整體類端的重數可以大于1,部分類的重數是任意的
  • 畫圖:
    聚合也是表示類和類之間的“整體-部分”關系,用空心菱形表示。
    組合是聚合的一種特殊情形,用實心菱形表示
    • 約束規則
  • 概念:
    在畫類圖的過程中,關聯、屬性和操作等基本要素都要為模型加注約束條件。
    約束規則的語法:將約束條件放在括號{ }中,用自然語言或其他常見的設計語言來描述,其描述要簡潔準確。
    在理想的情況下,在所使用的程序設計語言中,規則應該作為斷言來實現,并在調試代碼時調用它。
    • 對象圖
    三個層次的觀點
    • 概念層:描述應用域中的概念,是對現實世界的直接描述,與實現它們的類有關,但與實現方案和實現語言無關。
    • 說明層:描述軟件的接口,而不是軟件的實現。一個類型描述一個接口,但可能有多種實現。
    • 實現層:從實現的角度定義類及其實現,揭示了軟件實現體的構成情況。
    類圖建模分析步驟

    (1)尋找出需求中的名詞(候選對象)。
    (2)合并含義相同的名詞,排除范圍以外的名詞,并尋找隱含的名詞。
    (3)去掉只能作為類屬性的名詞。
    (4)剩下的名詞就是要找的分析類(候選類)。
    (5)根據常識、問題域、系統責任確定該類有那些屬性。
    (6)補充該類動態屬性,如狀態、對象間聯系(如聚合、關聯)等屬性。
    (7)從需求中的動詞、功能或系統責任中尋找類的操作(候選操作)。
    (8)從狀態轉換,流程跟蹤、系統管理等方面補充類的操作。
    (9)對所尋找的操作進行合并、篩選。
    (10)對所尋找的操作在類間進行合理分配(職責分配),形成每個類候選操作。
    (11)補充每個類的的分析文檔,為類的進一步設計打下基礎。

    小結:
  • 類和對象的表示法
    (1)名稱;(2)屬性;(3)行為;
  • 類之間的各種關系
    (1)繼承:子類繼承了超類的所有屬性和行為;
    (2)關聯:兩個不同類之間關聯,可以單向或雙向;
    (3)聚合:強關聯關系,整體與部分的生命周期分開;
    (4)組合:強聚合,整體與部分的生命周期相同;
  • 三個概念層次
    (1)概念層;(2)說明層;(3)實現層
  • 總結

    以上是生活随笔為你收集整理的软件工程 第三章:类图的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。