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

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ẽ khám phá những thành phần tạo nên bản vẽ, cách thiết kế 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 dùng .

 

1. 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.

Class_Diagram1

Hình 1. Ví dụ về Class Diagram của ATM

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 miêu tả về một nhóm đối tượng người tiêu 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 diễn đạt gồm tên Class, thuộc tính và phương pháp .

 Class_Notation1

Hình 2. Ký hiệu về Class

Trong đó ,
– Class Name : là tên của lớp .
– Attributes ( thuộc tính ) : diễn đạt đặc thù của những đối tượng người tiêu 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ể thực thi trong mạng lưới hệ thống. Nó thể hiện hành vi của những đối tượng người tiêu dùng do lớp này tạo ra .

 Class_Notation2

Hình 3. Ví dụ về một Class

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 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 dùng để hiểu rõ hơn những yếu tố này .

 

2. Relationship (Quan hệ)

Relationship bộc 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 biểu lộ qua những quan hệ như “ has : có ”, “ Own : chiếm hữu ” v.v …

 Association 1

Hình 4. Ví dụ về Association

Ví dụ quan hệ trên biểu 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 )

Aggregation1

Hình 5. Ví dụ về Aggregation

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 .

 Composition1

Hình 5. Ví dụ về Composition

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 đãng trong lập trình hướng đối tượng người tiêu dùng .

Generalization1

Hình 6. Ví dụ về Genelization

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 dùng và những đối tượng người 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 .

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

Class Diagram là bản vẽ khó kiến thiết 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ể kiến thiết 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 .

Class_Candidate

Hình 7. 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:  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 tiêu 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 :

ClassDiagram2

Hình 8. Ví dụ về Class Diagram cho hệ thống ATM

 

4. Đặ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 để setup 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

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 để setup .

5. 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 )

6. Kết luận

Như vậy, tất cả chúng ta đã 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.

Bài tiếpThực hành xây dựng Class Diagram

Bài trướcThực hành xây dựng bản vẽ Use Case


Có thể bạn quan tâm
© Copyright 2008 - 2016 Dịch Vụ Bách khoa Sửa Chữa Chuyên nghiệp.
Alternate Text Gọi ngay