Giải thích về các mũi tên UML


244

Gần đây tôi đã nghiên cứu UML và vẽ các sơ đồ đơn giản với các mũi tên đơn giản thông thường giữa các lớp, nhưng tôi biết nó không đủ. Có rất nhiều mũi tên khác: khái quát hóa, hiện thực hóa, vv có ý nghĩa đối với người đọc sơ đồ.

Có một nguồn tài nguyên tốt đẹp nào có thể giải thích từng mũi tên (bình thường, trơn, rải rác, đầy kim cương, kim cương) không?

Nó sẽ là tốt nhất nếu nó sẽ có một số ví dụ mã cho họ.


4
Tôi thực sự khuyên bạn nên xem xét điều này: dzone.com/refcardz/getting-started-uml
trinity

Câu trả lời:


475

Dưới đây là một số giải thích từ các tài liệu của Visual Studio 2015:

Sơ đồ lớp UML: Tham khảo : https://msdn.microsoft.com/l Library / dd409437% 28VS.140% 29.aspx

Sơ đồ lớp UML

5 : Hiệp hội : Một mối quan hệ giữa các thành viên của hai phân loại.

5a : Tập hợp : Một hiệp hội đại diện cho mối quan hệ sở hữu chung. Các tập hợp tài sản của chủ sở hữu vai trò được thiết lập để chia sẻ .

5b : Thành phần : Một hiệp hội đại diện cho mối quan hệ toàn bộ. Các tập hợp tài sản của chủ sở hữu vai trò được thiết lập để tổng hợp .

9 : Khái quát hóa : Trình phân loại cụ thể kế thừa một phần định nghĩa của nó từ trình phân loại chung. Phân loại chung nằm ở đầu mũi tên của đầu nối. Các thuộc tính, hiệp hội và hoạt động được kế thừa bởi phân loại cụ thể. Sử dụng công cụ Kế thừa để tạo tổng quát giữa hai phân loại.

Sơ đồ gói

13 : Nhập : Mối quan hệ giữa các gói, chỉ ra rằng một gói bao gồm tất cả các định nghĩa của gói khác.

14 : Phụ thuộc : Định nghĩa hoặc việc thực hiện phân loại phụ thuộc có thể thay đổi nếu phân loại ở đầu mũi tên bị thay đổi.

Mối quan hệ hiện thực hóa

15 : Hiện thực hóa : Lớp thực hiện các hoạt động và thuộc tính được xác định bởi giao diện. Sử dụng công cụ Kế thừa để tạo ra một nhận thức giữa một lớp và một giao diện.

16 : Hiện thực hóa : Một bản trình bày thay thế của cùng một mối quan hệ. Nhãn trên biểu tượng kẹo mút xác định giao diện.

Sơ đồ lớp UML: Hướng dẫn : http://msdn.microsoft.com/l Library / dd409416% 28VS.140% 29.aspx

Tài sản của một hiệp hội

Tập hợp : Điều này xuất hiện dưới dạng hình kim cương ở một đầu của đầu nối. Bạn có thể sử dụng nó để chỉ ra rằng các thể hiện ở vai trò tổng hợp sở hữu hoặc chứa các thể hiện khác.

Có thể điều hướng : Nếu chỉ đúng với một vai trò, một mũi tên sẽ xuất hiện theo hướng có thể điều hướng. Bạn có thể sử dụng điều này để chỉ ra khả năng điều hướng của các liên kết và quan hệ cơ sở dữ liệu trong phần mềm.


Khái quát hóa : Khái quát hóa có nghĩa là loại chuyên biệt hoặc dẫn xuất kế thừa các thuộc tính, hoạt động và liên kết của loại chung hoặc loại cơ sở. Loại chung xuất hiện ở đầu mũi tên của mối quan hệ.

Thực hiện : Hiện thực hóa có nghĩa là một lớp thực hiện các thuộc tính và hoạt động được chỉ định bởi giao diện. Giao diện nằm ở đầu mũi tên của đầu nối.

Hãy cho tôi biết nếu bạn có thêm câu hỏi.


1
Tham khảo thú vị nhưng với tôi một Menu -> MenuItem có cùng quan hệ như một Đơn hàng -> OrderItem vì vậy cả hai đều là Sáng tác.
Ignacio Soler Garcia

4
Điều đó chỉ có nghĩa là, mục đơn hàng thuộc về một đơn hàng và không thể được di chuyển, trong khi Mục menu có thể được điều chỉnh - người dùng có thể thay đổi vị trí của Mục menu. Đó là giải pháp được lựa chọn. Tại sao không?
Gangnus

@Gangnus, cảm ơn bạn. Lời giải thích đó đã làm rõ sự khác biệt đã lảng tránh tôi trong một thời gian dài.
JMD

1
@JMD, Các mục đặt hàng cũng có thể được di chuyển. Tập hợp tổng hợp được định nghĩa trong thông số UML như sau: Tập hợp tổng hợp là một hình thức tổng hợp mạnh đòi hỏi một đối tượng bộ phận được đưa vào tối đa một đối tượng tổng hợp tại một thời điểm. Nếu một đối tượng tổng hợp bị xóa, tất cả các phần của nó là các đối tượng sẽ bị xóa cùng với nó. Một đối tượng một phần có thể (nếu được cho phép khác) được xóa khỏi một đối tượng hỗn hợp trước khi đối tượng hỗn hợp bị xóa, và do đó không bị xóa như một phần của đối tượng hỗn hợp.
www.admiraalit.nl

2
@aGer Cảm ơn, tôi đã cập nhật liên kết chủ đề và hình ảnh.
Quạt Esther - MSFT

153

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Tôi nghĩ rằng những hình ảnh này là dễ hiểu.


Không phải một số khái niệm này chồng chéo? A phụ thuộc B. A có quyền truy cập vào B. Không phải là một hiệp hội luôn luôn là một sự phụ thuộc và một sự phụ thuộc luôn luôn là một hiệp hội?
EresDev

Trong sơ đồ, Realization được lặp lại hai lần nhưng với hình ảnh khác nhau. Xin vui lòng bạn có thể giải thích về sự khác biệt?
biến


13

"Bảng cheat" UML yêu thích của tôi là UML chưng cất , bởi Martin Fowler. Đó là cuốn sách duy nhất mà tôi đã đọc mà tôi giới thiệu.


1
Thú vị, tôi khá thích Tái cấu trúc. Đó có phải là một trong những bạn có ý kiến ​​về.
djna

Vâng, tôi thấy tất cả đều rõ ràng một chút và không thích sự tập trung vào Java. Ngoài ra, xin đừng lấy câu trả lời của tôi khi nói rằng những cuốn sách khác của anh ấy là rác rưởi.

Cuốn sách của Fowler cũng có một mánh gian lận ở bên trong bìa sách. Thực sự tốt cho việc bắt đầu, đặc biệt là câu hỏi tiếp theo của bạn sẽ là mũi tên đi theo hướng nào?
Ted Johnson

12
185 trang có vẻ hơi quá đối với một "bảng cheat"!
cdyson37


9

Để tham khảo nhanh cùng với các ví dụ ngắn gọn rõ ràng, Tham khảo nhanh UML của Allen Holub là tuyệt vời:

http://www.holub.com/goodies/uml/

(Có khá nhiều ví dụ cụ thể về mũi tên và con trỏ trong cột đầu tiên của bảng, với các mô tả trong cột thứ hai.)


Tôi thích ví dụ đầu tiên của anh ấy và hy vọng hew sẽ tăng dần trên cùng một dòng với những điều cơ bản, nhưng đó là một bài đọc tốt
killjoy

6

Một mô tả rất dễ hiểu là tài liệu của yuml , với các ví dụ cho sơ đồ lớp, trường hợp sử dụng và hoạt động.


Có lẽ là UML-for-idiots tốt nhất trong khi đi xuống danh sách này; lưu ý: trang web này cũng cho phép bạn vẽ UML của riêng bạn miễn phí (5).
killjoy

5

Câu trả lời được chấp nhận đang được nói, Nó thiếu một số giải thích. Ví dụ, sự khác biệt giữa một hiệp hội đơn hướng và hai hướng là gì? Trong ví dụ được cung cấp, cả hai làm tồn tại. (Cả hai '5 trong mũi tên)

Nếu tìm kiếm một câu trả lời đầy đủ hơn và có nhiều thời gian hơn, đây là một lời giải thích kỹ lưỡng.



0

Tập hợp và sáng tác là một chút khó hiểu. Tuy nhiên, nghĩ rằng các tác phẩm là một phiên bản tổng hợp mạnh mẽ hơn. Điều đó nghĩa là gì? Hãy lấy một ví dụ: (Tập hợp) 1. Tham gia lớp học và sinh viên: Trong trường hợp này, chúng tôi cố gắng phân tích mối quan hệ giữa họ. Một lớp học một mối quan hệ với học sinh. Điều đó có nghĩa là lớp học bao gồm một hoặc nhiều sinh viên. Ngay cả khi chúng tôi xóa lớp Lớp học, lớp Sinh viên không cần phải hủy, điều đó có nghĩa là chúng tôi có thể sử dụng lớp Sinh viên một cách độc lập.

(Thành phần) 2. Hãy xem các trang và Lớp Sách. Trong trường hợp này, các trang một cuốn sách, có nghĩa là bộ sưu tập các trang làm cho cuốn sách. Nếu chúng ta xóa lớp sách, toàn bộ lớp Trang sẽ bị hủy. Điều đó có nghĩa là chúng tôi không thể sử dụng lớp của trang một cách độc lập.

Nếu bạn vẫn chưa rõ về chủ đề này, hãy xem video tuyệt vời ngắn này, đã giải thích tổng hợp rõ ràng hơn.

https://www.youtube.com/watch?v=d5ecYmyFZW0

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.