Sơ đồ lớp là gì?

Trong kỹ thuật phần mềm, mộtNgôn ngữ mô hình hóa thống nhất (UML)sơ đồ lớp là mộtsơ đồ cấu trúc tĩnhmô tả cấu trúc của một hệ thống bằng cách hiển thị các lớp, thuộc tính, thao tác (hoặc phương thức) của chúng, và các mối quan hệ giữa các đối tượng.

Class diagram in UML diagram hierarchy

Mục đích của sơ đồ lớp

  1. Hiển thị cấu trúc tĩnh của các bộ phân loại trong hệ thống
  2. Cung cấp nền tảng ký hiệu cho các sơ đồ cấu trúc UML khác
  3. Rất hữu ích cho các nhà phát triển và các thành viên khác trong nhóm
  4. Các nhà phân tích kinh doanh có thể sử dụng sơ đồ lớp để mô hình hóa hệ thống từ góc nhìn kinh doanh

Sơ đồ lớp UML bao gồm:

  • Một tập hợp các lớp
  • Một tập hợp các mối quan hệ giữa các lớp

Lớp là gì?

Một mô tả về một nhóm đối tượng có vai trò tương tự, bao gồm:

  • Các đặc trưng cấu trúc (thuộc tính): xác định những gì các đối tượng của lớp “biết”
    • Đ代表 trạng thái của đối tượng
    • Mô tả cấu trúc hoặc đặc điểm tĩnh của lớp
  • Các đặc trưng hành vi (thao tác): xác định những gì các đối tượng của lớp “có thể làm”
    • Xác định cách các đối tượng tương tác
    • Mô tả hành vi hoặc đặc điểm động của lớp

Ký hiệu lớp

Ký hiệu lớp bao gồm ba phần:

  1. Tên lớp
    • Tên lớp xuất hiện trong ô đầu tiên.
  2. Thuộc tính lớp
    • Các thuộc tính được hiển thị trong ô thứ hai.
    • Loại được hiển thị sau dấu hai chấm.
    • Thuộc tính ánh xạ đến các biến thành viên (các thành viên dữ liệu) trong mã nguồn.
  3. Thao tác lớp (phương thức)
    • Các thao tác được hiển thị trong ngăn thứ ba. Chúng đại diện cho các dịch vụ do lớp cung cấp.
    • Kiểu trả về xuất hiện sau dấu hai chấm ở cuối ký hiệu phương thức.
    • Kiểu tham số xuất hiện sau dấu hai chấm theo sau tên tham số.
    • Các thao tác ánh xạ đến các phương thức lớp trong mã nguồn.

Simple class

Biểu diễn đồ họa của lớpMyClass như đã hiển thị ở trên:

  • MyClass có 3 thuộc tính và 3 thao tác
  • Tham số p3 của op2 có kiểu int
  • op2 trả về một float
  • op3 trả về một con trỏ (được chỉ định bằng *) đến Class6

Mối quan hệ lớp

Một lớp có thể tham gia vào một hoặc nhiều mối quan hệ với các lớp khác. Các mối quan hệ có thể thuộc các loại sau: (Xem hình ảnh bên phải để xem các biểu diễn đồ họa).

Loại mối quan hệ Sơ đồ
Kế thừa (hoặc tổng quát hóa):

  • Đại diện cho mối quan hệ “là một”.
  • Tên lớp trừu tượng được hiển thị in nghiêng.
  • SubClass1 và SubClass2 là các đặc tả của SuperClass.
  • Đường nét liền với đầu mũi tên hở chỉ từ lớp con đến lớp cha.
Inheritance
Liên kết đơn giản:

  • Một liên kết cấu trúc giữa hai lớp tương đương.
  • Liên kết tồn tại giữa Class1 và Class2.
  • Đường nét liền nối hai lớp.
Simple association
Tập hợp:

  • Một loại liên kết đặc biệt biểu diễn mối quan hệ “thuộc về”.
  • Lớp2 là một phần của Lớp1.
  • Nhiều thể hiện của Lớp2 (được chỉ định bằng dấu *) có thể được liên kết với Lớp1.
  • Các đối tượng Lớp1 và Lớp2 có vòng đời độc lập.
  • Hình kim cương hở ở đầu lớp tổng hợp.
Aggregation
Thành phần:

  • Một loại tập hợp đặc biệt trong đó các bộ phận bị hủy khi toàn bộ bị hủy.
  • Các đối tượng Lớp2 sống và chết cùng Lớp1.
  • Lớp2 không thể tồn tại độc lập.
  • Hình kim cương đầy ở đầu lớp tổng hợp.
Composition
Phụ thuộc:

  • Tồn tại giữa hai lớp nếu một thay đổi trong định nghĩa của một lớp có thể gây ra thay đổi trong lớp kia (nhưng không ngược lại).
  • Lớp1 phụ thuộc vào Lớp2.
  • Đường nét đứt với đầu mũi tên hở.
Dependency

Tên mối quan hệ

  • Tên mối quan hệ được viết ở giữa đường liên kết.
  • Các tên mối quan hệ tốt là có ý nghĩa khi đọc to:
      • “Mỗi bảng tính chứa một số ô”

    <li>Biểu thức được đánh giá thành một giá trị”

  • Chúng thường có một mũi tên nhỏ chỉ hướngđọc, ví dụ: biểu thức được đánh giá thành giá trị, nhưng giá trị không được đánh giá thành biểu thức.

Relationship name

Mối quan hệ – Vai trò

  • Vai trò xác định mục đích của hướng trong một mối quan hệ.
  • Vai trò được ghi ở cuối đường nối mối quan hệ và mô tả vai trò mà một lớp đóng trong mối quan hệ đó.
    • Ví dụ, Cell liên quan đến Expression. Bản chất của mối quan hệ là Expression là công thứccủa ô.

Tính khả kiến của các thành viên lớp

Trong thiết kế hướng đối tượng, tính khả kiến của các thuộc tính và thao tác được biểu diễn. UML định nghĩa bốn loại tính khả kiến: công khai, bảo vệ, riêng tư, và gói.

Các ký hiệu +, -, # và ~ đặt trước tên thuộc tính và thao tác biểu thị tính khả kiến:

  • + chỉ ra thuộc tính hoặc thao tác công khai
  • – chỉ ra thuộc tính hoặc thao tác riêng tư
  • # chỉ ra thuộc tính hoặc thao tác bảo vệ
  • ~ chỉ ra thuộc tính hoặc thao tác gói

Ví dụ về tính khả kiến lớp

Simple class

Trong ví dụ trên:

  • attribute1 và op1 của MyClassName là công khai
  • attribute3 và op3 là bảo vệ
  • attribute2 và op2 là riêng tư

Quyền truy cập cho các thành viên lớp khác nhau được hiển thị bên dưới:

Mức độ truy cập Công khai (+) Riêng tư (-) Bảo vệ (#) Gói (~)
Các thành viên của cùng một lớp
Các thành viên của các lớp dẫn xuất Không
Các thành viên của bất kỳ lớp nào khác Không Không Chỉ cùng gói

Đa dạng

Đa dạng chỉ ra có bao nhiêu đối tượng của một lớp tham gia vào một mối quan hệ. Nó có thể được biểu diễn như sau:

  • Đúng 1 – 1
  • Không hoặc một – 0..1
  • Nhiều – 0..* hoặc *
  • Một hoặc nhiều – 1..*
  • Số lượng chính xác – ví dụ: 3..4 hoặc 6
  • Mối quan hệ phức tạp – ví dụ: 0..1, 3..4, 6* có nghĩa là bất kỳ số lượng nào trừ 2 hoặc 5

Ví dụ về bội số

  • Yêu cầu: Một sinh viên có thể đăng ký nhiều khóa học, và nhiều sinh viên có thể đăng ký một khóa học.
  • Trong ví dụ dưới đây, sơ đồ lớp (bên trái) mô tả mô hình tĩnh của yêu cầu trên, trong khi sơ đồ đối tượng (bên phải) hiển thị một bức ảnh chụp nhanh về đăng ký khóa học (thể hiện của sơ đồ lớp) cho các khóa học kỹ thuật phần mềm và quản lý cơ sở dữ liệu.

Object diagram

Ví dụ về tích hợp – Máy tính và các thành phần

  • Tích hợp là một trường hợp đặc biệt của mối quan hệ, biểu diễn một thứ tự “chứa”.
  • Tích hợp là lớp cha, thành phần là lớp con.

Aggregation example

Ví dụ về kế thừa – Phân loại tế bào

  • Kế thừa là một trường hợp đặc biệt khác của mối quan hệ, biểu diễn một thứ tự “loại”.
  • Kế thừa đơn giản hóa mô hình phân tích bằng cách giới thiệu phân loại.
  • Các lớp con kế thừa thuộc tính và thao tác từ lớp cha.

Inheritance example

Sơ đồ lớp – Ví dụ về công cụ sơ đồ

Sơ đồ lớp có thể bao gồm các ghi chú được đính kèm vào các lớp hoặc mối quan hệ. Các ghi chú được hiển thị bằng màu xám.

Class diagram example

Từ ví dụ trên, chúng ta có thể hiểu sơ đồ như sau:

  1. Shape là một lớp trừu tượng. Nó được hiển thị bằng chữ nghiêng.
  2. Shape là một lớp siêu. Circle, Rectangle và Polygon kế thừa từ Shape. Nói cách khác, một Circle là một Shape. Đây là một mối quan hệ tổng quát hóa/kế thừa.
  3. Có một mối quan hệ giữa DialogBox và DataController.
  4. Shape là một phần của Window. Đây là một mối quan hệ tích hợp. Shape có thể tồn tại mà không cần Window.
  5. Point là một phần của Circle. Đây là một mối quan hệ kết hợp. Point không thể tồn tại nếu không có Circle.
  6. Window phụ thuộc vào Event. Nhưng Event không phụ thuộc vào Window.
  7. Thuộc tính của Circle là radius và center. Nó là một lớp cụ thể.
  8. Các phương thức của Circle là area(), circum(), setCenter() và setRadius().
  9. Tham số radius trong Circle có kiểu float.
  10. Phương thức area() trong Circle trả về một giá trị double.
  11. Các thuộc tính và phương thức của Rectangle bị ẩn. Một số lớp khác trong sơ đồ cũng ẩn thuộc tính và phương thức của chúng.

Xử lý các hệ thống phức tạp – Sơ đồ lớp nhiều hay sơ đồ lớp đơn?

Khi mô hình hóa các hệ thống lớn hoặc các lĩnh vực kinh doanh lớn, nhiều thực thể phải được xem xét. Chúng ta nên sử dụng nhiều sơ đồ lớp hay chỉ một sơ đồ lớp? Câu trả lời là:

  • Nên sử dụng nhiều sơ đồ lớp thay vì mô hình hóa mọi thực thể và các mối quan hệ của chúng trên một sơ đồ duy nhất.
  • Việc chia hệ thống thành nhiều sơ đồ lớp giúp việc hiểu hệ thống trở nên dễ dàng hơn, đặc biệt khi mỗi sơ đồ là một biểu diễn trực quan của một phần cụ thể trong hệ thống.

Góc nhìn của sơ đồ lớp trong vòng đời phát triển phần mềm

Sơ đồ lớp có thể được sử dụng ở các giai đoạn khác nhau củaVòng đời phát triển phần mềm (SDLC), và thường ba mức độ chi tiết (góc nhìn) khác nhau được mô hình hóa dần dần:

Góc nhìn khái niệm: Sơ đồ được hiểu là mô tả các thực thể trong thế giới thực. Do đó, nếu bạn bắt đầu từ góc nhìn khái niệm, bạn sẽ vẽ một sơ đồ biểu diễn các khái niệm trong lĩnh vực đang được nghiên cứu. Những khái niệm này tự nhiên liên quan đến các lớp thực hiện chúng. Góc nhìn này làđược coi là không phụ thuộc vào ngôn ngữ.
Góc nhìn đặc tả: Sơ đồ được hiểu là mô tả các trừu tượng phần mềm hoặc thành phần với các đặc tả và giao diện, mà không cam kết vào một cách triển khai cụ thể. Do đó, nếu bạn tiếp cận từ góc nhìn đặc tả, bạn đangnghiên cứu các giao diện phần mềm thay vì triển khai.
Góc nhìn triển khai: Sơ đồ được hiểu là mô tả một công nghệ cụ thể vàngôn ngữtriển khai phần mềm. Do đó, nếu bạn tiếp cận từ góc nhìn triển khai, bạn đangnghiên cứu triển khai phần mềm.

Hãy thử vẽ một sơ đồ lớp UML ngay bây giờ

Bạn đã học được sơ đồ lớp là gì và cách vẽ nó. Đến lúc vẽ sơ đồ của riêng bạn rồi. Tải về Visual Paradigm Community Edition, một công cụ UML miễn phí, và tạo sơ đồ lớp của bạn bằng công cụ sơ đồ lớp miễn phí. Dễ sử dụng và trực quan.
Tải về miễn phí

 

Leave a Reply