Biểu đồ lớp thuộc quan sát logic, thông thường mỗi hệ thống sẽ có vài biểu đồ lớp.Class diagram là xương sống của hầu như tất cả các phương pháp hướng đối tượng, bao gồm cả UML. Chúng mô tả các cấu trúc tĩnh của hệ thống.
Biểu đồ lớp (Class diagram)
Một biểu đồ lớp là một dạng mô hình tĩnh. Một biểu đồ lớp miêu tả hướng
nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa chúng với
nhau. Mặc dù nó cũng có những nét tương tự với một mô hình dữ liệu, nhưng nên
nhớ rằng các lớp không phải chỉ thể hiện cấu trúc thông tin mà còn miêu tả cả
hình vi. Một trong các mục đích của biểu đồ lớp là tạo nền tảng cho các biểu đồ
khác, thể hiện các khía cạnh khác của hệ thống (ví dụ như trạng thái của đối
tượng hay cộng tác động giữa các đối tượng, được chỉ ra trong các biểu đồ
động). Một lớp trong một biểu đồ lớp có thể được thực thi trực tiếp trong một
ngôn ngữ hướng đối tượng có hỗ trợ trực tiếp khái niệm lớp. Một biểu đồ lớp chỉ
chỉ ra các lớp, nhưng bên cạnh đó còn có một biến tấu hơi khác đi một chút chỉ
ra các đối tượng thật sự là các thực thể của các lớp này (biểu đồ đối tượng).
Class Name
{Attributes
;
public Operation;
}
|
Để tạo
một biểu đồ lớp, đầu tiên ta phải nhận diện và miêu tả các lớp. Một khi đã có
một số lượng các lớp, ta sẽ xét đến quan hệ giữa các lớp đó với nhau.
Tên lớp
được in đậm (bold) và căn giữa. Tên lớp phải được dẫn xuất từ phạm vi vấn đề và
rõ ràng như có thể. Vì thế nó là danh từ, ví dụ như tài khoản, nhân viên ...
Lớp có
thuộc tính miêu tả những đặc điểm của đối tượng. Giá trị của thuộc tính thường
là những dạng dữ liệu đơn giản được đa phần các ngôn ngữ lập trình hỗ trợ như
Integer, Boolean, Floats, Char, …
Thuộc
tính có thể có nhiều mức độ trông thấy được (visibility) khác nhau, miêu tả
liệu thuộc tính đó có thể được truy xuất từ các lớp khác, khác với lớp định
nghĩa ra nó. Nếu thuộc tính có tính trông thấy là công cộng (public), thì nó có
thể được nhìn thấy và sử dụng ngoài lớp đó. Nếu thuộc tính có tính trông thấy
là riêng (private), bạn sẽ không thể truy cập nó từ bên ngoài lớp đó. Một tính
trông thấy khác là bảo vệ (protected), được sử dụng chung với công cụ khái quát
hóa và chuyên biệt hóa. Nó cũng giống như các thuộc tính riêng nhưng được thừz
kế bởi các lớp dẫn xuất.
Trong
UML, thuộc tính công cộng mang kí hiệu "+" và thuộc tính riêng mang
dấu "-".
Giá trị
được gán cho thuộc tính có thể là một cách để miêu tả trạng thái của đối tượng.
Mỗi lần các giá trị này thay đổi là biểu hiện cho thấy có thể đã xảy ra một sự
thay đổi trong trạng thái của đối tượng.
Lưu ý:
Mọi đặc điểm của một thực thể là những thông tin cần lưu trữ đều có thể chuyển
thành thuộc tính của lớp miêu tả loại thực thể đó.
Phương
thức định nghĩa các hoạt động mà lớp có thể thực hiện. Tất cả các đối tượng
được tạo từ một lớp sẽ có chung thuộc tính và phương thức. Phương thức được sử
dụng để xử lý thay đổi các thuộc tính cũng như thực hiện các công việc khác.
Phương thức thường được gọi là các hàm (function), nhưng chúng nằm trong một
lớp và chỉ có thể được áp dụng cho các đối tượng của lớp này. Một phương thức
được miêu tả qua tên, giá trị trả về và danh sách của 0 cho tới nhiều tham số.
Lúc thi hành, phương thức được gọi kèm theo một đối tượng của lớp. Vì nhóm các
phương thức miêu tả những dịch vụ mà lớp có thể cung cấp nên chúng được coi là
giao diện của lớp này. Giống như thuộc tính, phương thức cũng có tính trông
thấy được như công cộng, riêng và bảo vệ.
|
class
Car {String registration; CarData data; Integer speed; Direction direction;} |
Ø Dùng thẻ CRC
để xác định các lớp đối tượng có trong hệ thống.
Trong nhiều năm, các thẻ CRC
(class-responsibility-collaboration card) đã được sử dụng trong pha phân tích
hướng đối tượng. Đối với mỗi lớp, nhóm phát triển điền vào các thông tin như:
tên lớp, các chức năng của lớp (responsibility) và danh sách các lớp gọi đến
các chức năng của lớp này (collaboration). Cách tiếp cận này về sau đã được mở
rộng. Trước hết thẻ CRC bao hàm một cách tường minh các thuộc tính và các
phương thức của lớp, chứ không chỉ là các chức năng được mô tả bằng ngôn ngữ tự
nhiên. Công nghệ cũng thay đổi. Thay vì sử dụng các thẻ, một số công ty phần mềm
ghi tên các lớp trên các mẫu giấy ghi chú (Post-it note) rồi dịch chuyển vòng
quanh trên bảng trắng; các đoạn thẳng được vẽ trên bảng nối các mẫu giấy để biểu
thị sự tương tác. Ngày nay toàn bộ cách làm này đã được tự động hóa: các công cụ
CASE như System Architect có chứa các module có thể tạo ra và cập nhật các thẻ
CRC trên màn hình.
Điểm mạnh của thẻ CRC là, khi làm việc theo nhóm thì nhờ sự
trao đổi giữa các thành viên có thể phát hiện ra những điều còn thiếu hay không
chính xác trong các lớp. Mối quan hệ giữa các lớp cũng được làm rõ. Điểm mạnh
nhất của kỹ thuật này là có thể phân phát các thẻ cho các thành viên, mỗi thành
viên sẽ xem xét kỹ hơn các lớp mà họ chịu trách nhiệm, đồng thời có thể xem xét
và có ý kiến đóng góp cho các lớp khác. Nhờ sự làm việc trong sự trao đổi hợp
tác như vậy, biểu đồ lớp sẽ được đầy đủ và chính xác hơn.
Điểm yếu của kỹ thuật CRC là không có
phương pháp tốt để nhận diện các lớp, nếu các thành viên không am hiểu nhiều về
lĩnh vực ứng dụng tương ứng. Tuy nhiên, nếu bằng cách nào đó các nhà phát triển
đã xác định được khá nhiều lớp thì thông qua sự cộng tác, trao đổi thẻ CRC là công
cụ tuyệt vời để bảo đảm rằng mô hình lớp đưa ra là đầy đủ và chính xác.
Xác định cách làm - như thế nào.
Trong giai đoạn này chúng ta cần phải xác định các đặc tính của các lớp. Một
trong các kỹ thuật được ứng dụng nhiều nhất đó là Thẻ tương tác - tính chất-lớp
Class-Responsibility-Collaboration (CRC) card. Mỗi thẻ thể hiện một lớp, trên
thẻ chúng ta lưu lại các thông tin sau về các lớp:
Khuôn dạng thẻ CRC như sau:
Class Name
|
|
Responsibility(Trách nhiệm của lớp)
|
Collaboration(Tương tác của lớp)
|
1. Tên của lớp. Thông thường người ta
đặt tên lớp liên quan đến vai trò của lớp, chúng ta sẽ sử dụng lớp để làm gì.
2. Trách nhiệm của lớp: lớp có thể
làm gì. Thông thường các thông tin ở đây bao gồm tên của các hàm thành phần –
Tri thức mà lớp đó quản lý
3. Tương tác của lớp: lớp này có thể
tương tác được với những lớp nào khác.
Tags
System Information