Hướng dẫn toàn diện về sơ đồ lớp UML

Table of Contents hide

Ngôn ngữ mô hình hóa thống nhất (UML) là một ngôn ngữ mô hình hóa phát triển đa mục đích trong lĩnh vực kỹ thuật phần mềm, được thiết kế để cung cấp một phương pháp tiêu chuẩn để hình dung thiết kế hệ thống. Động lực ban đầu để tạo ra UML là mong muốn tiêu chuẩn hóa các hệ thống ký hiệu khác nhau và các phương pháp thiết kế phần mềm. Trong UML, sơ đồ lớp là một trong sáu loại sơ đồ cấu trúc. Sơ đồ lớp là cơ sở của quá trình mô hình hóa đối tượng và mô hình hóa cấu trúc tĩnh của hệ thống.

Sơ đồ cấu trúc cho thấy cấu trúc tĩnh của hệ thống và các phần của nó ở các mức độ trừu tượng và thực hiện khác nhau và cách chúng liên quan đến nhau. Các phần tử trong một sơ đồ cấu trúc đại diện cho các khái niệm có ý nghĩa của một hệ thống, và có thể bao gồm các khái niệm trừu tượng, thế giới thực và khái niệm thực hiện, có bảy loại sơ đồ cấu trúc như sau:

 

Overview of the 14 UML Diagram Types

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

Một sơ đồ lớp trong Ngôn ngữ mô hình hóa thống nhất (UML) là một sơ đồ cấu trúc tĩnh mô tả cấu trúc của một hệ thống bằng cách hiển thị các lớp của nó, các thuộc tính của chúng, các hoạt động (hoặc phương thức) và các mối quan hệ giữa các đối tượng.Một sơ đồ lớp là một bản thiết kế cho một hệ thống hoặc tiểu hệ thống. Bạn có thể sử dụng sơ đồ lớp để mô hình hóa các đối tượng tạo nên hệ thống, hiển thị các mối quan hệ giữa các đối tượng và mô tả vai trò của các đối tượng này và các dịch vụ mà chúng cung cấp.

Nguồn gốc của UML

Mục tiêu của UML là cung cấp một ký hiệu tiêu chuẩn có thể được sử dụng bởi tất cả các phương pháp hướng đối tượng và để chọn lọc và tích hợp các yếu tố tốt nhất của các ký hiệu tiền thân. UML đã được thiết kế cho một loạt các ứng dụng. Do đó, nó cung cấp các cấu trúc cho một loạt các hệ thống và hoạt động (ví dụ: hệ thống phân tán, phân tích, thiết kế hệ thống và triển khai).

UML là một ký hiệu được hình thành từ sự thống nhất của OMT từ

  1. Kỹ thuật mô hình hóa đối tượng OMT [James Rumbaugh 1991] – là tốt nhất cho phân tích và các hệ thống thông tin tập trung vào dữ liệu.
  2. Booch [Grady Booch 1994] – là xuất sắc cho thiết kế và triển khai. Grady Booch đã làm việc rộng rãi với Ada ngôn ngữ, và đã là một nhân tố chính trong sự phát triển của các kỹ thuật hướng đối tượng cho ngôn ngữ này. Mặc dù phương pháp Booch rất mạnh, nhưng ký hiệu của nó không được đón nhận tốt (nhiều hình mây chiếm ưu thế trong các mô hình của ông – không được gọn gàng lắm)
  3. OOSE (Kỹ thuật phần mềm hướng đối tượng [Ivar Jacobson 1992]) – có một mô hình được gọi là Các trường hợp sử dụng. Các trường hợp sử dụng là một kỹ thuật mạnh mẽ để hiểu hành vi của toàn bộ hệ thống (một lĩnh vực mà OO truyền thống đã yếu).

Năm 1994, Jim Rumbaugh, người sáng tạo OMT, đã gây sốc cho thế giới phần mềm khi ông rời General Electric và gia nhập Grady Booch tại Rational Corp. Mục tiêu của sự hợp tác là để hợp nhất các ý tưởng của họ thành một phương pháp duy nhất, thống nhất (tên làm việc cho phương pháp thực sự là “Phương pháp thống nhất”).

UML History

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

Sơ đồ lớp hữu ích trong nhiều giai đoạn thiết kế hệ thống. Trong giai đoạn phân tích, sơ đồ lớp có thể giúp bạn hiểu các yêu cầu của miền vấn đề và xác định các thành phần của nó. Trong các dự án phần mềm hướng đối tượng, sơ đồ lớp được tạo ra trong các giai đoạn đầu của dự án chứa các lớp thường được chuyển đổi thành các lớp và đối tượng phần mềm thực tế khi viết mã.

Sau đó, bạn có thể tinh chỉnh các mô hình phân tích và khái niệm ban đầu thành các sơ đồ lớp để hiển thị các phần cụ thể của hệ thống, giao diện người dùng, các thực hiện logic, và nhiều hơn nữa.

Sơ đồ lớp được sử dụng rộng rãi trong việc mô hình hóa các hệ thống hướng đối tượng vì chúng là các sơ đồ UML duy nhất có thể được ánh xạ trực tiếp vào các ngôn ngữ hướng đối tượng. Trong giai đoạn thực hiện của chu kỳ phát triển phần mềm, bạn có thể sử dụng sơ đồ lớp để chuyển đổi các mô hình thành mã và mã thành các mô hình.

Ví dụ về lớp

Một con chó có các trạng thái – màu sắc, tên, giống cũng như các hành vi – vẫy đuôi, sủa, ăn. Một đối tượng là một thể hiện của một lớp.

 

Ký hiệu lớp UML

Một lớp đại diện cho một khái niệm bao gồm trạng thái (thuộc tính) và hành vi (các hoạt động). Mỗi thuộc tính có một kiểu. Mỗi hoạt động has a chữ kýTên lớp là thông tin bắt buộc duy nhất.

Tên lớp:

  • Tên của lớp xuất hiện trong phân vùng đầu tiên.

Thuộc tính lớp:

  • Các thuộc tính được hiển thị trong phân vùng thứ hai.
  • Kiểu thuộc tính được hiển thị sau dấu hai chấm.
  • Các thuộc tính ánh xạ vào các biến thành viên (các thành viên dữ liệu) trong mã.

Các hoạt động lớp (Phương thức):

  • Các hoạt động được hiển thị trong phân vùng thứ ba. Chúng là các dịch vụ mà lớp cung cấp.
  • Kiểu trả về của một phương thức được hiển thị sau dấu hai chấm ở cuối chữ ký phương thức.
  • Kiểu trả về của các tham số phương thức được hiển thị sau dấu hai chấm theo sau tên tham số. Các hoạt động ánh xạ vào các phương thức lớp trong mã

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. Một mối quan hệ có thể là một trong các loại sau: (Tham khảo hình bên phải để biết biểu diễn đồ họa của các mối quan hệ).

Loại mối quan hệ Biểu diễn đồ họa
Kế thừa (hoặc Tổng quát):
  • Đại diện cho một mối quan hệ “là một”.
  • Tên lớp trừu tượng được hiển thị bằng chữ nghiêng.
  • SubClass1 và SubClass2 là các chuyên ngành của Lớp Cha.
  • Một đường thẳng đặc với đầu mũi tên rỗng chỉ từ lớp con đến lớp cha
Inheritance (or Generalization)
Liên kết đơn giản:
  • Một liên kết cấu trúc giữa hai lớp ngang hàng.
  • Có một liên kết giữa Class1 và Class2
  • Một đường thẳng kết nối hai lớp
Simple association
Tập hợp:

Một loại liên kết đặc biệt. Nó đại diện cho một mối quan hệ “phần của”.

  • Class2 là một phần của Class1.
  • Nhiều thể hiện (được ký hiệu bằng *) của Class2 có thể được liên kết với Class1.
  • Các đối tượng của Class1 và Class2 có vòng đời riêng biệt.
  • Một đường thẳng đặc với một hình thoi không đầy ở đầu liên kết kết nối với lớp tổng hợp
Aggregation
Thành phần:

Một loại tập hợp đặc biệt mà các phần bị phá hủy khi toàn bộ bị phá hủy.

  • Các đối tượng của Class2 sống và chết cùng với Class1.
  • Class2 không thể đứng một mình.
  • Một đường thẳng đặc với một hình thoi đầy ở đầu liên kết kết nối với lớp tổng hợp
Phụ thuộc:
  • Tồn tại giữa hai lớp nếu sự thay đổi trong định nghĩa của một lớp có thể gây ra sự thay đổi cho lớp kia (nhưng không phải theo chiều ngược lại).
  • Class1 phụ thuộc vào Class2
  • Một đường gạch chéo với một mũi tên mở
Dependency

Tên mối quan hệ

  • Tên của các mối quan hệ được viết ở giữa đường liên kết.
  • Tên quan hệ tốt có ý nghĩa khi bạn đọc chúng to lên:
    • “Mỗi bảng tính chứa một số ô”,
    • “một biểu thức được đánh giá thành một giá trị”
  • Chúng thường có một đầu mũi tên nhỏ để chỉ ra hướng mà bạn nên đọc mối quan hệ, 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.

 

Mối quan hệ – Vai trò

  • Một vai trò là một mục đích có hướng của một liên kết.
  • Các vai trò được viết ở cuối một đường liên kết và mô tả mục đích mà lớp đó đảm nhận trong mối quan hệ.
    • Ví dụ: Một ô liên quan đến một biểu thức. Bản chất của mối quan hệ là biểu thức là công thức của ô.

Tính khả thi của thuộc tính và hoạt động của lớp

Trong thiết kế hướng đối tượng, có một ký hiệu về tính khả thi cho các thuộc tính và hoạt động. UML xác định bốn loại tính khả thi: công khaibảo vệriêng tư, và gói.

Các ký hiệu +, -, # và ~ trước tên thuộc tính và hoạt động trong một lớp biểu thị tính khả thi của thuộc tính và hoạt động.

  • + biểu thị các thuộc tính hoặc hoạt động công khai
  • – biểu thị các thuộc tính hoặc hoạt động riêng tư
  • # biểu thị các thuộc tính hoặc hoạt động bảo vệ
  • ~ biểu thị các thuộc tính hoặc hoạt động gói

Ví dụ về Tính khả thi của lớp

Trong ví dụ trên:

  • thuộc tính1 và op1 của MyClassName là công khai
  • thuộc tính3 và op3 là bảo vệ.
  • thuộc tính2 và op2 là riêng tư.

Quyền truy cập cho mỗi loại tính khả thi này được hiển thị dưới đây cho các thành viên của các lớp khác nhau.

Quyền 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 kế thừa không
Các thành viên của bất kỳ lớp nào khác không không trong cùng một gói

Độ đa dạng

Có bao nhiêu đối tượng của mỗi lớp tham gia vào các mối quan hệ và độ đa dạng có thể được biểu thị như sau:

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

Ví dụ về Độ đa dạng

  • Yêu cầu: Một Sinh viên có thể tham gia nhiều Khóa học và nhiều Sinh viên có thể được ghi danh vào một Khóa học.
  • Trong ví dụ dưới đây, sơ đồ lớp (bên trái), mô tả tuyên bố của yêu cầu trên cho mô hình tĩnh trong khi sơ đồ đối tượng (bên phải) cho thấy ảnh chụp nhanh (một thể hiện của sơ đồ lớp) về việc ghi danh khóa học cho các khóa học Kỹ thuật Phần mềm và Quản lý Cơ sở Dữ liệu tương ứng)

Object Diagram

Ví dụ về Tập hợp – Máy tính và các bộ phận

  • Một tập hợp là một trường hợp đặc biệt của liên kết biểu thị một hệ thống phân cấp “bao gồm”
  • Tập hợp là lớp cha, các thành phần là các lớp con
Aggregation Example

Ví dụ về Kế thừa – Phân loại Ô

  • Kế thừa là một trường hợp đặc biệt khác của một liên kết biểu thị một hệ thống phân cấp “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 một phân loại
  • Các lớp con kế thừa các thuộc tính và hoạt động của lớp cha.
Inheritance Example

 

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

Một sơ đồ lớp cũng có thể có các ghi chú đính kèm cho 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

 

Trong ví dụ trên:

Chúng ta có thể diễn giải ý nghĩa của sơ đồ lớp trên bằng cách đọc qua các điểm như sau.

  1. Hình dạng là một lớp trừu tượng. Nó được hiển thị bằng chữ nghiêng.
  2. Hình dạng là một lớp siêu. Hình tròn, Hình chữ nhật và Đa giác được kế thừa từ Hình dạng. Nói cách khác, một Hình tròn là một Hình dạng. Đây là một mối quan hệ tổng quát / kế thừa.
  3. Có một liên kết giữa Hộp thoại và Bộ điều khiển dữ liệu.
  4. Hình dạng là một phần của Cửa sổ. Đây là một mối quan hệ tập hợp. Hình dạng có thể tồn tại mà không cần Cửa sổ.
  5. Điểm là một phần của Hình tròn. Đây là một mối quan hệ thành phần. Điểm không thể tồn tại mà không có Hình tròn.
  6. Cửa sổ phụ thuộc vào Sự kiện. Tuy nhiên, Sự kiện không phụ thuộc vào Cửa sổ.
  7. Các thuộc tính của Hình tròn là bán kính và tâm. Đây là một lớp thực thể.
  8. Các tên phương thức của Hình tròn là area(), circum(), setCenter() và setRadius().
  9. Tham số bán kính trong Hình tròn là một tham số đầu vào kiểu float.
  10. Phương thức area() của lớp Hình tròn trả về một giá trị kiểu double.
  11. Các thuộc tính và tên phương thức của Hình chữ nhật bị ẩn. Một số lớp khác trong sơ đồ cũng có các thuộc tính và tên phương thức của chúng bị ẩn.

Ví dụ về Sơ đồ lớp: Hệ thống Đặt hàng

Class Diagram Example: Order System

Ví dụ về sơ đồ lớp: GUI

Một sơ đồ lớp cũng có thể có các ghi chú đính kèm cho các lớp hoặc mối quan hệ.

Class Diagram Example: GUI

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

Chắc chắn rằng, nếu bạn đang mô hình hóa một hệ thống lớn hoặc một lĩnh vực kinh doanh lớn, sẽ có nhiều thực thể mà bạn phải xem xét. Chúng ta nên sử dụng nhiều sơ đồ lớp hay một sơ đồ lớp duy nhất để mô hình hóa vấn đề? Câu trả lời là:

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

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

Chúng ta có thể sử dụng sơ đồ lớp trong các giai đoạn phát triển khác nhau của mộtvòng đời phát triển phần mềmvà thường bằng cách mô hình hóa sơ đồ lớp trong ba góc nhìn khác nhau (các mức độ chi tiết) dần dần khi chúng ta tiến lên:

Góc nhìn khái niệm: Các sơ đồ được diễn giải như mô tả các sự vật trong thế giới thực. Do đó, nếu bạn lấy góc nhìn khái niệm, bạn sẽ vẽ một sơ đồ đại diện cho các khái niệm trong lĩnh vực đang nghiên cứu. Những khái niệm này sẽ tự nhiên liên quan đến các lớp thực hiện chúng. Góc nhìn khái niệm làđược coi là độc lập với ngôn ngữ.

Góc nhìn đặc tả: Các sơ đồ được diễn giải như mô tả các trừu tượng hoặc thành phần phần mềm với các đặc tả và giao diện nhưng không cam kết với một triển khai cụ thể. Do đó, nếu bạn lấy góc nhìn đặc tả, chúng ta đangnhìn vào các giao diện của phần mềm, không phải là triển khai.

Góc nhìn triển khai: Các sơ đồ được diễn giải như mô tả các triển khai phần mềm trong một công nghệ cụ thể vàngôn ngữ. Do đó, nếu bạn lấy góc nhìn triển khai, chúng ta đangnhìn vào việc triển khai phần mềm.

Bạn đang tìm kiếm một công cụ vẽ sơ đồ lớp miễn phí?

Visual Paradigm Online (VP Online) Phiên bản miễn phí là một phần mềm vẽ trực tuyến miễn phí hỗ trợ sơ đồ lớp, các sơ đồ UML khác, công cụ ERD và công cụ biểu đồ tổ chức. Nó có một trình chỉnh sửa đơn giản nhưng mạnh mẽ cho phép bạn tạo sơ đồ lớp nhanh chóng và dễ dàng. Trình chỉnh sửa UML miễn phí này không có quảng cáo, không có thời hạn truy cập và không có hạn chế, ví dụ, về số lượng sơ đồ, số lượng hình dạng, v.v. Bạn sở hữu các sơ đồ bạn tạo ra cho mục đích cá nhân và phi thương mại.

Online Class Diagram Tool

Bạn đang tìm kiếm mô hình hóa UML chính thức hơn trên máy tính để bàn?

Visual Paradigm Phiên bản Cộng đồng đã được ra mắt từ năm 2004 để cung cấp mộtphần mềm UML miễn phícho mục đích phi thương mại duy nhất, hỗ trợ người dùng đang thực hiện những bước đầu tiên trong mô hình hóa UML, và những người cần một phần mềm mô hình hóa UML miễn phí và đa nền tảng cho mục đích cá nhân, chẳng hạn như áp dụng UML vào các dự án sinh viên.

Visual Paradigm screen

Công cụ mô hình hóa UML miễn phí cho tất cả các loại mục đích phi thương mại. Hỗ trợ 13 sơ đồ UML 2.x

Free UML Tool with 13 UML 2.x Diagrams Supported

Chúng tôi đã được hơn 1 triệu cài đặt trên toàn cầu chấp nhận và vẫn đang phát triển. Nhiều người đang sử dụng các phiên bản trả phí của Visual Paradigm để vẽ các sơ đồ UML và ERD chuyên nghiệp cho thiết kế và phân tích hệ thống và cơ sở dữ liệu, hàng ngày.

Lý do 2

Được tin tưởng bởi các chuyên gia CNTT và các tổ chức lớn

Nhiều tổ chức hàng đầu, công ty CNTT, tư vấn, trường đại học, NGO và các đơn vị chính phủ trên toàn thế giới đã chấp nhận Visual Paradigm (các phiên bản trả phí). Hình dưới đây cho thấy một số khách hàng trả phí của chúng tôi.

Visual Paradigm Customers

Lý do 3

Chất lượng cao – Đoạt giải thưởng

Chúng tôi không chỉ được tin tưởng bởi các doanh nghiệp nổi tiếng nhất trên toàn cầu, mà còn bởi ngành công nghiệp. Visual Paradigm là một người chiến thắng nhiều giải thưởng quốc tế.

Visual Paradigm Awards

Lý do 4

Nền tảng mô hình hóa được sử dụng rộng rãi nhất cho học thuật

Công cụ UML được sử dụng rộng rãi nhất cho học thuật, được hàng ngàn trường đại học và cao đẳng chấp nhận.

Schools Using Visual Paradigm

Lý do 5

Bộ sưu tập khổng lồ các tài nguyên học tập MIỄN PHÍ (hỗ trợ bởi VP Community Circle)

Hundreds of UML and ERD diagram examples and templates

Hàng trăm ví dụ về UML và ERDsẵn sàng để nhập vào Visual Paradigm cho các thử nghiệm ngay lập tức hoặc để bắt đầu với mô hình UML của riêng bạn. Tất cả đều MIỄN PHÍ.

Lý do 6

Lộ trình nâng cấp lên các phiên bản thương mại cho nhiều ứng dụng và khả năng

Nâng cấp dễ dàng cho một bộ tính năng bổ sung khổng lồ (chẳng hạn, hỗ trợ BPMN và hợp tác nhóm) và cho mục đích thương mại, bắt đầu từ$6 / tháng.

Packed features in Visual Paradigm

Lý do 7

Diễn đàn người dùng tích cực để nhận trợ giúp và trao đổi ý tưởng & Kinh nghiệm

Hỗ trợ, chia sẻ và trao đổi ý tưởng của bạn với những người khác trongdiễn đàn người dùng tích cực của Visual Paradigm.

Visual Paradigm forum

Lý do 8

Ứng dụng đa nền tảng, thân thiện với người dùng, nhanh chóng & phản hồi tốt

Visual Paradigm có thể chạy trên các nền tảng khác nhau như Windows, Linux và Mac. Giao diện trực quan và các tính năng mô hình hóa mạnh mẽ của nó giúp việc mô hình hóa nhanh chóng và dễ dàng!

This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *