2012-08-02 25 views
10

Tôi vừa bắt đầu sử dụng Dia. Tôi đang cố gắng xây dựng một sơ đồ trình tự. Tôi muốn đại diện cho các cuộc gọi tự. Làm thế nào để làm điều đó trong Dia? Tôi không thể hiểu được.Làm thế nào để vẽ tự gọi trong Dia?

Cảm ơn.

Trả lời

13

Đầu tiên đặt đối tượng Thư UML với cơ sở đó gắn liền với đường dây của bạn.

Sau đó, nhấp đúp vào mũi tên (hoặc nhấp chuột phải, Properties), và thay đổi các tin nhắn Loại thả xuống hiện trường để đệ quy, và bạn sẽ nhận được một cái gì đó như thế này:

enter image description here

Bây giờ bạn có thể kéo điểm neo màu xanh lá cây xung quanh để làm cho mũi tên Thư trông giống như bạn muốn. (Lưu ý: có vẻ như với đối tượng Message Recursive, bạn chỉ có thể chọn đối tượng bằng cách nhấp vào nó chính xác nơi điểm neo màu xanh lá cây WOULD BE. Tôi nói "sẽ là" vì tất nhiên bạn không thể thấy rằng điểm màu xanh lá cây neo khi đối tượng không được chọn)

Nếu bạn thích, bạn có thể tạo một đối tượng UML Lifeline, và đặt nó chồng chéo huyết mạch hiện có, như thế này:.

extra lifeline example

isn này không lý tưởng, bởi vì không có bất kỳ thứ gì gắn liền với vòng đời thứ hai này. Đối tượng Message Recursive không cho phép bạn chọn nơi để đính kèm đầu mũi tên của nó, bởi vì nó tự động gắn liền với đường đời mà nó bắt nguồn từ đó. Và bởi vì vòng đời thứ hai không gắn liền với bất cứ điều gì, nếu bạn di chuyển các vật thể xung quanh nó sẽ bị bỏ lại phía sau. Nhưng, nó trông đẹp, nếu đó là những gì bạn đang sau. :)

+0

lớn nhờ. Điều thú vị là tự gọi không đệ quy dường như bị thiếu. – JDelage

+0

Tôi nghĩ bạn đã có ý tưởng sai lầm về "đệ quy" ở đây. Thông thường khi chúng ta nghĩ về đệ quy, chúng ta nghĩ về một "hàm đệ quy", nhưng ở đây thay vì một "hàm gọi chính nó", chúng ta có một "đối tượng gọi chính nó". Trong ý nghĩa này, bất kỳ tự gọi là theo định nghĩa đệ quy. – feuGene

0

Một cuộc gọi tự (hoặc bất kỳ liên kết nào khác) trong UML được biểu thị tốt hơn bằng cách sử dụng ký pháp kết hợp tiêu chuẩn thay vì ký hiệu thông báo. Trong DIA, chèn một ký hiệu kết hợp từ hộp công cụ ở bên trái và thêm nó vào khung hình của bạn. Sau đó, để có nó kết nối một lớp đệ quy (để chính nó) nhấp đúp chuột vào nó và bấm chọn "Autoroute" là không có. Điều này sẽ cho phép bạn định hình tuyến đường cho chính mình và sẽ không giới hạn bạn với đường thẳng tự động được vẽ khi liên kết một lớp với chính nó.

Bạn sẽ kết thúc với một cái gì đó như thế này (trong ví dụ này là một đại diện của một Node trong một danh sách liên kết): enter image description here

+0

Câu hỏi là về tự gọi trong Sơ đồ chuỗi, không phải trong Sơ đồ lớp. –

Các vấn đề liên quan