Class Diagram – Bản vẽ về các lớp khi phân tích thiết kế hệ thống

Class Diagram là một loại sơ đồ cấu trúc tĩnh mô tả cấu trúc của hệ thống bằng cách hiển thị các lớp của hệ thống, thuộc tính, hoạt động của chúng và mối quan hệ giữa các đối tượng. Sơ đồ lớp là khối xây dựng chính của mô hình hướng đối tượng.

Vẽ biểu đồ Class để làm gì? Lợi ích mà biểu đồ Class mang lại

  • Hiểu cấu trúc của hệ thống
  • Thiết kế hệ thống
  • Sử dụng để phân tích chi tiết các chức năng (Sequence Diagram, State Diagram v.v…)
  • Sử dụng để cài đặt (coding)

Các thành phần trong bản vẽ Class

Classes (Các lớp)

Class là thành phần chính của bản vẽ Class Diagram. Class mô tả về một nhóm đối tượng có cùng tính chất, hành động trong hệ thống. Class được mô tả gồm tên Class, thuộc tính và phương thức.

Biểu diễn class trong bản vẽ
  • Class Name: là tên của lớp.
  • Attributes (thuộc tính): mô tả tính chất của các đối tượng.
  • Method (Phương thức): chỉ các hành động mà đối tượng này có thể thực hiện trong hệ thống. Nó thể hiện hành vi của các đối tượng do lớp này tạo ra.

Relationship (Quan hệ)

Relationship thể hiện mối quan hệ giữa các Class với nhau. Các quan hệ thường sử dụng như sau:

  • Association: là quan hệ giữa hai lớp với nhau, thể hiện chúng có liên quan với nhau. Association thể hiện qua các quan hệ như “has: có”, “Own: sở hữu” v.v… Ví dụ quan hệ trên thể hiện Khách hàng nắm giữ Tài khoản và Tài khoản được sở hữu bởi Khách hàng.
  • Aggregation: là một loại của quan hệ Association nhưng mạnh hơn. Nó có thể cùng thời gian sống (cùng sinh ra hoặc cùng chết đi). Ví dụ quan hệ trên thể hiện lớp Window(cửa sổ) được lắp trên Khung cửa hình chữ nhật. Nó có thể cùng sinh ra cùng lúc.
  • Composition: là một loại mạnh hơn của Aggregation thể hiện quan hệ class này là một phần của class kia nên dẫn đến cùng tạo ra hoặc cùng chết đi. Ví dụ trên class Mailing Address là một phần của class Customer nên chỉ khi nào có đối tượng Customer thì mới phát sinh đối tượng Mailing Address.
  • Generalization: là quan hệ thừa kế được sử dụng rộng rãi trong lập trình hướng đối tượng.

Cách xây dựng bản vẽ Class

Class Diagram là bản vẽ khó xây dựng nhất so với các bản vẽ khác trong OOAD và UML. Bạn phải hiểu được hệ thống một cách rõ ràng và có kinh nghiệm về lập trình hướng đối tượng mới có thể xây dựng thành công bản vẽ này.

Bước 1: Tìm các Classes dự kiến

Entity Classes(các lớp thực thể) là các thực thể có thật và hoạt động trong hệ thống, bạn dựa vào các nguồn sau để xác định chúng. Các nguồn thông tin có thể tìm Class dự kiến:

  • Requirement statement: Các yêu cầu. Chúng ta phân tích các “danh từ” trong các yêu cầu để tìm ra các thực thể.
  • Use Cases: Phân tích các Use Case sẽ cung cấp thêm các Classes dự kiến.
  • Previous và Similar System: Hệ thống trước đây đã sử dụng và các hệ thống tương tự có thể sẽ cung cấp thêm cho bạn các lớp dự kiến.
  • Application Experts: các chuyên gia ứng dụng cũng có thể giúp bạn.

Bước 2: Tìm các thuộc tính và phương thức cho lớp

Tìm thuộc tính: phân tích thông tin từ các form mẫu có sẵn, bạn sẽ tìm ra thuộc tính cho các đối tượng của lớp.

Tìm phương thức: phương thức là các hoạt động mà các đối tượng của lớp này có thể thực hiện. Chúng ta sẽ bổ sung phương thức đầy đủ cho các lớp khi phân tích Sequence Diagram sau này.

Bước 3: Xây dựng các quan hệ giữa các lớp và phát hiện các lớp phát sinh

Phân tích các quan hệ giữa các lớp và định nghĩa các lớp phát sinh do các quan hệ sinh ra.

Ví dụ thực tế xây dựng biểu đồ Class

Tiếp theo ví dụ về biểu đồ Use Case cho cộng đồng chia sẻ khuyến mại chanhtuoi trong bài trước, chúng ta sẽ follow các bước nêu ở phần trên và đưa ra bản vẽ class.

Bản vẽ class của cộng đồng chia sẻ khuyến mại chanhtuoi.com

Tìm các Classes dự kiến

  • Users: thành viên đăng ký trên trang là một thực thể có thật
  • Posts: Các bài viết khuyến mại, mã giảm giá là một đối tượng thực thể
  • Blogs: Các bài blogs
  • Pages: Các trang tĩnh
  • Comments

Tìm các thuộc tính

Tìm các thuộc tính của các lớp đã xác định, ví dụ cho Users sẽ có các thuộc tính: ID định danh, tên đăng nhập, địa chỉ email, mật khẩu, tên hiển thị trên web, thông tin, ngày tham gia, cập nhật

Tìm các phương thức

Tìm các phương thức, ví dụ Users sẽ có các phương thức: đăng nhập, xem danh sách khuyến mại, comment, like …

Xây dựng các lớp phát sinh

Xây dựng các lớp phát sinh ví dụ như Badgess phát sinh khi nhu cầu đánh giá các thẻ của thành viên như biên tập viên, người chia sẻ, fan cứng …

Like và chia sẻ bài viết này:

Trả lời

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 *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.