2013-02-11 28 views
10

Tôi đang cố tạo sơ đồ trình tự UML cho một quy trình cụ thể trong ứng dụng của chúng tôi.Cách trình bày các cuộc gọi trong cùng một lớp bằng cách sử dụng sơ đồ UML-Sequence

Vấn đề là hầu hết logic nghiệp vụ là trong một lớp và khi tôi cố gắng ánh xạ nó trong sơ đồ trình tự, tôi nhận được nhiều cuộc gọi đến cùng một đối tượng trong biểu đồ trình tự.

Điều tôi cần là một biểu diễn tương tự như một chồng xếp chồng trong sơ đồ trình tự UML. Có thể sử dụng sơ đồ trình tự hoặc là một số biểu đồ khác một cách tốt hơn để đại diện cho các cuộc gọi trong cùng một lớp không? Vui lòng thông báo.

Trả lời

11

Một vài gợi ý:

  1. Bạn có thể hiển thị các phương pháp tiếp trên biểu đồ trình tự sử dụng các cuộc gọi tự. Xem Hình 1 here cho một ví dụ (các cuộc gọi tự gọi là các lời gọi tròn trên cùng một đường dây).
  2. Thay thế, bạn có thể xem xét Activity Diagram. Có thể phù hợp hơn để minh họa thứ tự các phương pháp.
  3. Tái cấu trúc mã. Rất nhiều logic trong một lớp duy nhất thường là một mùi hôi. Giả sử bạn có phạm vi, việc tái cấu trúc có thể là một ý tưởng hay.

hth.

+0

+1. Đúng, "Sơ đồ hoạt động" tốt hơn cho các phương thức trong cùng một đối tượng. – umlcat

5

Trình bày tự gọi trên biểu đồ trình tự UML (xem bước 7).

self-call on a UML sequence diagram

Nếu gọi là phương pháp là (hoặc nên là) tư nhân, sau đó nó có thể an toàn được loại trừ khỏi các sơ đồ trình tự như một chi tiết thực hiện.

Tuy nhiên, tôi ngửi thấy mẫu chống God-Class; lớp học của bạn có nhiều trách nhiệm và nên được giải mã. Phân chia lớp để chỉ có một nhóm single responsibility sử dụng ủy quyền. Những cuộc gọi phương thức đó sẽ là một điểm khởi đầu tốt.

1

Đó là thực sự có thể tham khảo để tự dụ

Trong thực tế UML đặc tả 2.5b1 trang 607, khoảng một Lifeline nói: Nếu tên là tự từ khóa, sau đó các Lifeline đại diện cho đối tượng của classifier bao quanh tương tác sở hữu Lifeline. Các cổng của vỏ bọc có thể được hiển thị riêng ngay cả khi tự bao gồm.

Xem http://lowcoupling.com/post/47844944042/uml-sequence-diagrams để có ví dụ hoàn chỉnh

+0

Liên kết bị hỏng. – javaPlease42