Bản vẽ sơ đồ lớp – Class Diagram

Class Diagram là một trong những bản vẽ quan trọng nhất của thiết kế phần mềm, nó cho thấy cấu trúc và quan hệ giữa các thành phần tạo nên phần mềm. Trong quá trình xây dựng Class Diagram chúng ta sẽ phải quyết định rất nhiều yếu tố về thiết kế nên nó là bản vẽ khó xây dựng nhất. Bản vẽ này sẽ cho thấy cấu trúc tĩnh của phần mềm, tương tự như bản vẽ mặt bằng trong thiết kế của ngành xây dựng.

Trong bài này, tất cả chúng ta sẽ tìm hiểu và khám phá những thành phần tạo nên bản vẽ, cách kiến thiết xây dựng và sử dụng class diagram để giúp những bạn hiểu và vận dụng bản vẽ này trong phong cách thiết kế. Ở đây, mặc định những bạn đã có kiến thức và kỹ năng về lập trình hướng đối tượng người tiêu dùng và không nhắc lại những khái niệm trong lập trình hướng đối tượng người tiêu dùng. Cùng mindovermetal tìm hiểu chi tiết hơn trong bài viết dưới đây!

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

Trước tiên, chúng ta xem một bản vẽ Class.

Ví dụ trên là Class Diagram của ứng dụng ATM. Tiếp theo tất cả chúng ta sẽ bàn kỹ về những thành phần của bản vẽ này và lấy ứng dụng về ATM ở trên để minh họa .

Classes (Các lớp)

Class là thành phần chính của bản vẽ Class Diagram. Class diễn đạt về một nhóm đối tượng người dùng có cùng đặc thù, hành vi trong mạng lưới hệ thống. Ví dụ miêu tả về người mua tất cả chúng ta dùng lớp “ Customer ”. Class được miêu tả gồm tên Class, thuộc tính và phương pháp .

ban-ve-so-do-lop-class-diagram-mindovermetal

Trong đó ,
– Class Name : là tên của lớp .
– Attributes ( thuộc tính ) : miêu tả đặc thù của những đối tượng người dùng. Ví dụ như người mua có Mã người mua, Tên người mua, Địa chỉ, Ngày sinh v.v …
– Method ( Phương thức ) : chỉ những hành vi mà đối tượng người tiêu dùng này hoàn toàn có thể triển khai trong mạng lưới hệ thống. Nó thể hiện hành vi của những đối tượng người dùng do lớp này tạo ra .

Một số loại Class đặc biệt quan trọng như Abstract Class ( lớp không tạo ra đối tượng người tiêu dùng ), Interface ( lớp khai báo mà không setup ) v.v.. tất cả chúng ta xem thêm những tài liệu về lập trình hướng đối tượng người tiêu dùng để hiểu rõ hơn những yếu tố này

Relationship (Quan hệ)

Relationship biểu lộ mối quan hệ giữa những Class với nhau. Trong UML 2.0 có những quan hệ thường sử dụng như sau :
– Association
– Aggregation
– Composition
– Generalization
Chúng ta sẽ lần lượt khám phá về chúng .

+ Association

Association là quan hệ giữa hai lớp với nhau, bộc lộ chúng có tương quan với nhau. Association bộc lộ qua những quan hệ như “ has : có ”, “ Own : chiếm hữu ” v.v …

Ví dụ quan hệ trên bộc lộ Khách hàng nắm giữ Tài khoản và Tài khoản được chiếm hữu bởi Khách hàng .

+ Aggregation

Aggregation là một loại của quan hệ Association nhưng mạnh hơn. Nó hoàn toàn có thể cùng thời hạn sống ( cùng sinh ra hoặc cùng chết đi )

Ví dụ quan hệ trên bộc lộ lớp Window ( hành lang cửa số ) được lắp trên Khung cửa hình chữ nhật. Nó hoàn toàn có thể cùng sinh ra cùng lúc .

+ Composition

Composition là một loại mạnh hơn của Aggregation biểu lộ 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 người dùng Customer thì mới phát sinh đối tượng người dùng Mailing Address .

+Generalization

Generalization là quan hệ thừa kế được sử dụng thoáng rộng trong lập trình hướng đối tượng người tiêu dùng .

Các lớp ở sau cuối như Short Term, Long Term, Curent a / c, Savings a / c gọi là những lớp đơn cử ( concrete Class ). Chúng hoàn toàn có thể tạo ra đối tượng người tiêu dùng và những đối tượng người tiêu dùng này thừa kế hàng loạt những thuộc tính, phương pháp của những lớp trên .
Các lớp trên như Account, Term Based, Transaction Based là những lớp trừu tượng ( Abstract Class ), những lớp này không tạo ra đối tượng người tiêu dùng .
Ngoài ra, còn 1 số ít quan hệ như khác như dependence, realization nhưng ít được sử dụng nên tất cả chúng ta không bàn ở đây .

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

Class Diagram là bản vẽ khó thiết kế xây dựng nhất so với những bản vẽ khác trong OOAD và UML. Bạn phải hiểu được mạng lưới hệ thống một cách rõ ràng và có kinh nghiệm tay nghề về lập trình hướng đối tượng người dùng mới hoàn toàn có thể thiết kế xây dựng thành công xuất sắc bản vẽ này .
Thực hiện theo những bước sau đây để thiết kế xây dựng Class Diagram .

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

Entity Classes ( những lớp thực thể ) là những thực thể có thật và hoạt động giải trí trong mạng lưới hệ thống, bạn dựa vào những nguồn sau để xác lập chúng .

–          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ể.

ban-ve-so-do-lop-class-diagram-1-mindovermetal

–          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:  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.

Xem xét, ví dụ ATM ở trên tất cả chúng ta hoàn toàn có thể thấy những đối tượng người dùng là Entity Class như sau :

–          Customers: khách hàng giao dịch là một thực thể có thật và quản lý trong hệ thống.

–          Accounts:  Tài khoản của khách hàng cũng là một đối tượng thực tế.

–          ATM Cards: Thẻ dùng để truy cập ATM cũng được quản lý trong hệ thống.

–          ATM Transactions: Các giao dịch được lưu giữ lại, nó cũng là một đối tượng có thật.

–          Banks: Thông tin ngân hàng bạn đang giao dịch, nếu có nhiều nhà Bank tham gia vào hệ thống bạn phải quản lý nó. Lúc đó Bank trở thành đối tượng bạn phải quản lý.

–          ATM: Thông tin ATM bạn sẽ giao dịch. Nó cũng được quản lý tương tự như Banks.

Lưu ý: Chỉ các thực thể bên trong hệ thống được xem xét, các thực thế bên ngoài hệ thống không được xem xét. Ví dụ Customers là những người khách hàng được quản lý trong hệ thống chứ không phải người dùng máy ATM bên ngoài. Bạn phải lưu ý điều này để phân biệt Class và Actor.

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. Ví dụ các thuộc tính của lớp Customer sẽ thể hiện trên Form đăng ký thông tin khách hàng.

–          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 những quan hệ giữa những lớp và định nghĩa những lớp phát sinh do những quan hệ sinh ra. Chúng ta nghiên cứu và phân tích những thực thể ở trên và nhận thấy .

  • Lớp Accounts có thể chia thành nhiều loại tài khoản như Current Accounts Saving Accounts và có quan hệ thừa kế với nhau.
  • Lớp ATM Transactions cũng có thể chia thành nhiều loại giao dịch như Deposit, Withdraw, Transfer v.v.. và chúng cũng có quan hệ thừa kế với nhau.

– Tách tất cả chúng ta và vẽ chúng lên bản vẽ tất cả chúng ta sẽ có Class Diagram cho mạng lưới hệ thống ATM như sau :

Đặc tả Class

Nhìn vào Class Diagram tất cả chúng ta hoàn toàn có thể thấy cấu trúc của mạng lưới hệ thống gồm những lớp nào nhưng để thiết lập chúng, tất cả chúng ta phải đặc tả chi tiết cụ thể hơn nữa. Trong đó, cần diễn đạt :

– Các thuộc tính : Tên, kiểu tài liệu, kích cỡ
– Các phương pháp :

+ Tên

+ Mô tả

+ Tham số đầu vào: Tên, kiểu dữ liệu, kích thươcs

+ Kết quả đầu ra: Tên, kiểu dữ liệu, kích thước

+ Luồng xử lý

+ Điều kiện bắt đầu

+ Điều kiện kết thúc

ban-ve-so-do-lop-class-diagram-2-mindovermetal

Tuy nhiên, việc này cũng mất khá nhiều thời hạn. Nếu tăng trưởng theo quy mô Agile thì bạn không phải thao tác này mà những thành viên tăng trưởng phải nắm điều này để thiết lập .

Sử dụng bản vẽ Class

Có thể tóm tắt một số ít ứng dụng của bản vẽ Class Diagram như sau :
– Hiểu cấu trúc của mạng lưới hệ thống
– Thiết kế mạng lưới hệ thống
– Sử dụng để nghiên cứu và phân tích cụ thể những tính năng ( Sequence Diagram, State Diagram v.v … )
– Sử dụng để thiết lập ( coding )

Kết luận

Như vậy, tất cả chúng ta đã tìm hiểu và khám phá xong về Class Diagram, những bạn cần thực hành thực tế nhiều để hiểu về bản vẽ quan trọng này .

Để giúp các bạn nắm rõ hơn về Class Diagram, trong bài tiếp theo chúng ta sẽ thực hành xây dựng Class Diagram cho hệ thống eCommerce đã mô tả trong Case Study ở bài 3.

5/5 - (1 vote)

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments