Sơ đồ lớp UML enum


145

Tôi đang mô hình một sơ đồ lớp. Một thuộc tính của một lớp là một bảng liệt kê. Làm thế nào để tôi mô hình này? Thông thường bạn làm một cái gì đó như thế này:

- name : string

Nhưng làm thế nào để làm điều này với một enum?

Câu trả lời:


198

Chúng chỉ đơn giản được hiển thị như thế này:

_______________________
|   <<enumeration>>   |
|    DaysOfTheWeek    |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
|_____________________|

Và sau đó chỉ cần có một liên kết giữa đó và lớp của bạn.


16
Các liệt kê thực sự hoạt động giống như các kiểu dữ liệu hơn các lớp trong UML, do đó, các Hiệp hội thường không hiển thị nhiều hơn so với nếu bạn khai báo một thuộc tính là kiểu Integer. Nếu công cụ mô hình hóa của bạn có hỗ trợ rõ ràng cho việc liệt kê, bạn nên sử dụng công cụ đó và chỉ sử dụng ký hiệu Class + << enumutions >> làm mẫu dự phòng nếu cần thiết.
Tom Morris

Bạn có thể cho biết nơi tôi có thể tìm thấy khuôn mẫu << liệt kê >> cho ArgoUML không?
Timofey

@Tim ArgoUML có hỗ trợ hạng nhất cho Số lượng, vì vậy không cần sử dụng bản mẫu
Tom Morris

<<enumeration>>thực sự không phải là một khuôn mẫu mà là một từ khóa. Thật không may, các tác giả UML đã không thực hiện bất kỳ sự khác biệt trực quan.
qwerty_so

68

Nếu công cụ lập mô hình UML của bạn có hỗ trợ cho việc chỉ định một Bảng liệt kê, bạn nên sử dụng công cụ đó. Nó có thể sẽ dễ dàng hơn để làm và nó sẽ cung cấp cho mô hình của bạn ngữ nghĩa mạnh hơn. Về mặt trực quan, kết quả sẽ rất giống với Class có <<enumeration>>Stereotype, nhưng trong siêu mô hình UML, Enumutions thực sự là một loại (meta) riêng biệt.

+---------------------+
|   <<enumeration>>   |
|    DayOfTheWeek     |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
+---------------------+

Sau khi được xác định, bạn có thể sử dụng nó làm loại Thuộc tính giống như bạn làm Kiểu dữ liệu hoặc đặt tên cho một trong các Lớp học của riêng bạn.

+---------------------+
|        Event        |
|_____________________|
| day : DayOfTheWeek  |
| ...                 |
+---------------------+

Nếu bạn đang sử dụng ArgoEclipse hoặc ArgoUML, sẽ có một menu thả xuống trên thanh công cụ chọn trong số Datatype, Enumutions, Signal, v.v. sẽ cho phép bạn tạo Bảng liệt kê của riêng mình. Khoang thường chứa các thuộc tính sau đó có thể được điền với EnumutionsLiterals cho các giá trị liệt kê của bạn.

Đây là hình ảnh của một ví dụ hơi khác trong ArgoUML: nhập mô tả hình ảnh ở đây


7
Cảm ơn vì ảnh chụp màn hình ArgoUML.
Petri Tuononen

1

Thông thường, bạn mô hình enum chính nó như là một lớp với enumkhuôn mẫu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.