Class diagram thể hiện các khối của bất kỳ hệ thống hướng đối tượng nào. Class diagrams mô tả cái nhìn tĩnh của mô hình hoặc một phần của mô hình, miêu tả những attributes và behaviour một cách chi tiết. Class diagrams có ích cho việc minh họa các mỗi quan hệ giữa classes và interfaces.

Bạn đang xem: Class diagram là gì

Các mối quan hệ

Generalizations (thừa kế), aggregations (tập hợp) và assiciations (liên kết) là tất cả các giá trị phản ánh inheritance (thừa kế), composition (tập hợp) hoặc sử dụng và connections (kết nối), respectively.

Mô Hình bài toán cụ thể

Sơ đồ sau minh họa tập hợp các mối quan hệ giữa classes. Tập hợp lighter ngầm định rằng class Account sử dụng AddressBook, nhưng không cần thiết phải chứa instance của nó. Strong, ngược với tập hợp có 1 kết nối khác ngầm định việc sở hữu hay chiếm hữu của source classes của target classes, ví dụ các giá trị Contact và ContactGroup sẽ được chứa trong AddressBook.

*

———————Định nghĩa Classes là gì ?

Class là một element định nghĩa các attributes và các behaviours mà 1 object có thể generate. Behaviour được miêu tả bởi các messages mà class có thể hiểu dọc theo các operations, các operations này là tập hợp cho mỗi message. Classes cũng có thể chứa các định nghĩa của các ràng buộc đánh dấu các giá trị và khuôn đúc 

*

.

Class Notation (Kí hiệu Class)

Classes được trình bày bởi các hình chữ nhật có hiển thị class name và có lựa chọn hiển thị tên của các operations và attributes. Các ngăn được sử dụng để phân chia tên class, attributes và operations. Thêm ràng buộc, giá trị khởi tạo và các tham số có thể được gán vào các classes.

Ví Dụ Thực Tế Về ClassTrong sơ đồ dưới, class chứa class name trong ngăn đầu tiên, ngăn tiếp theo miêu tả cụ thể về attributes, với attribute trung tâm hiển thị các giá trị khởi tạo. Ngăn cuối cùng hiển thị các operations, các operations như setWidth, setLength và setPosition hiển thị các tham số của nó. Kí hiệu phía trước tên các attribute hay operation ngầm định sự hiện diện của element, nếu ký hiệu + nghĩa là public, nếu ký hiệu – nghĩa là private (attribute or operation). Thêm vào đó còn có kí hiệu # cho phép định nghĩa là protected (attribute or operation) và ký hiệu ~ ngầm định hiện diện của package.

*

——————–Interfaces

Interface là đặc tả của behaviour sẽ được bổ sung trong class hoặc abstract thừa kế nó. Nó là hợp đồng. Bằng việc nhận ra interface, các classes được bảo vệ để hỗ trợ các behaviour cần thiết, cho phép hệ thống đối xử các elements không liên quan theo cùng 1 cách – i.e thông qua interface chung.

*

Interfaces được vẽ có kiểu tương tự với class, với các operations được trình bày phía dưới. Chúng cũng có thể được vẽ là hình tròn mà không có các operations tường minh nào cả. Khi vẽ hình tròn, realization links tới hình tròn được vẽ mà không có đích mũi tên.

——————–Tables

Table là khuôn đúc của class. Nó được vẽ với icon bảng nhỏ trong góc phải phía trên. Các attributes của table được khuôn đúc >. Hầu hết các tables sẽ có primary key, là 1 hoặc nhiều fields tạo thành 1 key để xử lý table, primary key operation được kí hiệu >. Một vài tables sẽ có 1 hoặc nhiều foreign keys, là 1 hoặc nhiều fields tập hợp với nhau tạp thành primary key trong 1 bảng có quan hệ, kí hiệu cho foreign key là >.

*

—————–Associations (Liên kết)

Association ngầm định rằng 2 model elements có mối quan hệ – thường bổ sung như 1 instance variable trong 1 class. Connector này có thể bao gồm tên vai trò ở phía cuối, cardinality, direction và constraints. Association là kiểu quan hệ chung giữa các elements. Với nhiều hơn 2 elements, việc trình bày đường chéo có thể được sử dụng. Khi code được gen cho class diagram, associations trở thành các instance variables trong class đích.

*

——————Generalizations (Thừa kế)

Generalization thường ngầm định là inheritance. Được vẽ từ chi tiết đến tổng quát, ngầm định thừa kế là nguồn hưởng các đặc điểm của target. Theo diagram hiển thị parent class giao quyền thừa kế cho child class. Ngầm định rằng, 1 instance object của Circle class sẽ có các attributes x_position, y_position và radius và 1 method display(). Chú thích rằng class Shape là abstract, tên được hiển thị là chữ in nghiêng.

Xem thêm: Heart Attack Là Gì – Khác Biệt Giữa Stroke Và Heart Attack

*

Diagram sau cũng có giá trị tương đương.

*

——————-Aggregations (Tập hợp)

Aggregations thường để mô tả các elements để tạo nên các components nhỏ hơn. Các mối quan hệ Aggregation được hiển thị là các hình kim cương màu trắng có hướng tới target hoặc parent class.

Dạng stronger của aggregations – composite aggregation – được show bởi hình kim cương màu đen và được sử dụng khi các components có thể được bao gồm có số lượng tối đa của 1 tập hợp tại 1 thời điểm. Nếu parent của tập hợp bị xoá, thường thì tất cả các phần của nó cũng bị delete với nó, tuy nhiên 1 phần có thể bị remove từ tập hợp mà không phải delete toàn bộ tập hợp. Compositions có quan hệ bắc cầu, bất đối xứng và cũng có thể là đệ quy.

Diagram sau minh hoạ sự khác biệt giữa tập hợp yếu và mạnh. Address book gồm nhiều contacts và contact group. Contact group là group ảo của các contacts, 1 contact có thể ở trong nhiều hơn 1 contact group. Nếu bạn delete 1 address book, tất cả các contacts và contact groups sẽ bị xoá; nếu bạn xoá contact group, ko có contacts nào bị xoá cả.

*

—————————–Association Classes (Classes liên kết)

Association class là xây dựng cho phép kết nối có operations và attributes. Theo ví dụ thì có nhiều hơn việc xác định 1 employee vào 1 project hơn là việc tạo ra liên kết đơn giản giữa 2 classes: vai trò mà employee có được trong project là 1 entity phức tạp trong đó và chứa những chi tiết cụ thể mà không đặt dọc ở class employee hay project. Ví dụ, 1 employee có thể làm việc ở vài project ở cùng thời điểm và có sự khác biệt về chức danh và mức độ security ở mỗi project.

*

——————————-Dependencies (Vật phụ thuộc)

Dependency thường được sử dụng để tạo mô hình với khoảng rộng của các quan hệ giữa các elements. Nó được sử dụng sớm trong quá trình thiết kế nơi mà nó được biết có một vài kiểu liên kết giữa các elements nhưng nó cũng quá sớm để biết chính xác đó là quan hệ gì. Sau đó trong quá trình thiết kế, dependencies được khuôn đúc (một vài stereotypes – khuôn đúc bao gồm >, >, > và một số loại khác) hoặc được thay thế bởi connector có kiểu được miêu tả rõ hơn.

——————————–Traces

Trace relationship là chuyên môn hoá của dependency, các elements trong mô hình liên kết hay tập hợp các elements trình bay cùng ý tưởng thông qua các models. Traces thường được sử dụng để lưu lại các requirements và sự thay đổi của mô hình. Như những sự thay đổi có thể xảy ra theo cả hai hướng, sự sắp xếp của dependency thường bị lờ đi. Các properties của mối quan hệ có thể chỉ rõ bản đồ trace nhưng trace thường là 2 chiều, không theo thủ túc và hiếm khi tính toán.

—————————Realizations

Nguồn object implements hay realizes đích. Realize thường được sử dụng để nhấn mạnh vết và sự hoàn thiện trong mô hình – quá trình business hoặc yêu cầu được nhận ra bởi 1 hoặc nhiều hơn use cases là những gì sẽ được nhận ra bởi vài classes, được nhận ra bởi component, v.v… Mapping requirements, classes, v.v… qua thiết kế của hệ thống của bạn, đưa lên các mức của mô hình abstraction, đảm bảo bức tranh lớn hệ thống của bạn dễ nhớ và phản ánh tất cả các bức tranh nhỏ và chi tiết là cái ràng buộc và định nghĩa nó. A realization được miêu tả là đường đứt với mũi tên và có chú thích >.

——————————-Dependencies (Vật phụ thuộc)

Dependency thường được sử dụng để tạo mô hình với khoảng rộng của các quan hệ giữa các elements. Nó được sử dụng sớm trong quá trình thiết kế nơi mà nó được biết có một vài kiểu liên kết giữa các elements nhưng nó cũng quá sớm để biết chính xác đó là quan hệ gì. Sau đó trong quá trình thiết kế, dependencies được khuôn đúc (một vài stereotypes – khuôn đúc bao gồm >, >, > và một số loại khác) hoặc được thay thế bởi connector có kiểu được miêu tả rõ hơn.

——————————–Traces

Trace relationship là chuyên môn hoá của dependency, các elements trong mô hình liên kết hay tập hợp các elements trình bay cùng ý tưởng thông qua các models. Traces thường được sử dụng để lưu lại các requirements và sự thay đổi của mô hình. Như những sự thay đổi có thể xảy ra theo cả hai hướng, sự sắp xếp của dependency thường bị lờ đi. Các properties của mối quan hệ có thể chỉ rõ bản đồ trace nhưng trace thường là 2 chiều, không theo thủ túc và hiếm khi tính toán.

Xem thêm: Field Là Gì

*

—————————Realizations

Nguồn object implements hay realizes đích. Realize thường được sử dụng để nhấn mạnh vết và sự hoàn thiện trong mô hình – quá trình business hoặc yêu cầu được nhận ra bởi 1 hoặc nhiều hơn use cases là những gì sẽ được nhận ra bởi vài classes, được nhận ra bởi component, v.v… Mapping requirements, classes, v.v… qua thiết kế của hệ thống của bạn, đưa lên các mức của mô hình abstraction, đảm bảo bức tranh lớn hệ thống của bạn dễ nhớ và phản ánh tất cả các bức tranh nhỏ và chi tiết là cái ràng buộc và định nghĩa nó. A realization được miêu tả là đường đứt với mũi tên và có chú thích >.

Chuyên mục: Hỏi Đáp