2009-07-13 51 views
6

Tôi có một hệ thống dựa trên sự kiện C# khá cơ bản nhưng tôi không chắc chắn cách tôi mô hình hóa nó trong UML. Tôi obviosuly muốn hiển thị các nhà xuất bản sự kiện, thuê bao, xử lý và các lớp EventArgs .. Tôi nghĩ rằng bạn sử dụng 'tín hiệu' nhưng tôi không thể tìm thấy bất kỳ ví dụ. Bất cứ ai có thể chỉ cho tôi một ví dụ hoặc đổ ánh sáng nào?Làm cách nào để biểu diễn kiến ​​trúc dựa trên sự kiện trong một mô hình UML tĩnh?

Cảm ơn

Edit: tôi đang tạo ra một mô hình tĩnh, tôi không cần phải đại diện cho nhà nước hoặc đường dẫn thông qua quá trình này. Xin lỗi Nếu tôi không làm rõ điều đó trong câu hỏi ban đầu ..

Trả lời

0

Sử dụng biểu đồ trạng thái hoặc sơ đồ hoạt động.

0

xem here để biết ví dụ về sơ đồ trạng thái và here cho biểu đồ hoạt động, sau đó chọn những gì phù hợp với nhu cầu của bạn!

2

Như được chỉ ra bởi lexu và John, bạn có thể sử dụng biểu đồ thống kê và sơ đồ hoạt động để mô hình hóa một số khía cạnh động của hệ thống của bạn.

Đối với mô hình tĩnh của bạn, bạn có thể lập mô hình các sự kiện mà một lớp có thể xử lý dưới dạng hoạt động. Bạn có thể sử dụng bản mẫu (<<event>>) để phân biệt các hoạt động này với những người khác (ví dụ: các phương thức được gọi đồng bộ).

0

Tôi muốn có thể chỉ cần sử dụng một mô hình thành phần logic để đại diện cho nguồn/người tiêu dùng và các hoạt động rập khuôn để mô tả sự tương tác ..

Tuy nhiên như một ý tưởng trái-field - possbility khác ocurrs với tôi ....

Tôi tự hỏi liệu bạn có thể sử dụng một số khía cạnh của BPMN hay không. - một số công cụ uml như sparx ea bao gồm

Cú pháp messaage của nó sẽ cho phép bạn mô tả sự kiện nguồn và bạn có thể mô tả người tiêu dùng/người xử lý sử dụng hồ bơi hoặc hoạt động mà không cần phải lo lắng về bản thân hành vi nội bộ. (Tôi đang nghĩ đến mức trừu tượng tương tự như BPMN "level1" của bruce siver) tương tự, bạn có thể sử dụng tương tác nhắn tin để phân tách các tải trọng/EventArgs

nếu bạn đang sử dụng mọi thứ tương tự như sparx, bạn có thể có thể thêm phụ thuộc dấu vết từ các phần tử bpm vào mô hình lớp "thực" của mã C#.

4

Mẫu cặp "Nhà xuất bản-người đăng ký" (a.k.a "Quan sát viên"), có thể được triển khai khác nhau trong từng khung lập trình (ngôn ngữ), do đó, được thiết kế khác nhau, trong U.M.L. Bất kỳ cách nào, khái niệm, khi một sự kiện ("tín hiệu" hoặc "tin nhắn") được gửi đi, từ một nhà xuất bản (hay còn gọi là "server") tới bất kỳ người đăng ký nào ("khách hàng"), đôi khi, một "id" để nhận dạng một sự kiện cụ thể, từ các sự kiện khác, các sự kiện được cung cấp và một số thông số hoặc dữ liệu bổ sung của nó cũng được gửi.

Khi các câu trả lời khác đã đề cập, bạn có thể yêu cầu biểu đồ (lớp) mô tả mô hình tĩnh. (Lưu ý rằng có một "tập hợp", không phải "sáng tác", "hiệp hội" có thể được sử dụng):

.............................. 
+--------------------------+.. 
|  <<Publisher>>  |.. 
|  VectorDrawApp  |.. 
+--------------------------+.. 
| [+] create()    |.. 
+--------------------------+.. 
| [+] send(EventArgs e) |.. 
+------------+-------------+.. 
............/ \............... 
............\ /............... 
.............|................ 
.............|................ 
+------------+-------------+.. 
|  <<Subscriber>>  |.. 
|   Figure   |.. 
+--------------------------+.. 
| [+] create()    |.. 
+--------------------------+.. 
| [+] receive(EventArgs e) |.. 
+--------------------------+.. 
.............................. 
+--------------------------+.. 
|  <<Event>>   |.. 
|  EventArgs   |.. 
+--------------------------+.. 
| [+] Sender: TObject  |.. 
+--------------------------+.. 
| [+] receive(EventArgs e) |.. 
+------------+-------------+.. 
.............|................ 
.............+................ 
............/ \............... 
...........+---+.............. 
.............|................ 
+------------+-------------+.. 
|  <<Event>>   |.. 
| FillEventArgs: EventArgs|.. 
+--------------------------+.. 
| [+] ForeColor   |.. 
| [+] BackColor   |.. 
| [+] FillStyle   |.. 
+--------------------------+.. 
.............................. 

Và cũng có thể, bạn có thể yêu cầu một sơ đồ để mô tả các mô hình động:

......................................... 
+----------------+..+----------------+... 
| <<Publisher>> |..| <<Subscriber>> |... 
| VectorDrawApp |..|  Figure |... 
+--------+-------+..+--------+-------+... 
.........|...................|........... 
.......+-+-+...............+-+-+......... 
.......| |...send(fill)..| |..Fill(). 
.......| +==============>+ +---+..... 
.......| |...............| |...|..... 
.......| |...<<return>>..| |...|..... 
.......| |<--------------+ +<--+..... 
.......| |...............| |......... 
.......+-+-+...............+-+-+......... 
.........|...................|........... 
.........X...................X........... 
......................................... 

Khuôn mẫu, trong UML, là "bạn bè uống rượu" của bạn, và cho phép bạn mô tả hoặc hạn chế những gì diễn viên, đối tượng, lớp học, đặc điểm hoặc giao diện thực hiện.

Khi bạn sử dụng chúng, làm nổi bật khi một đối tượng hoặc lớp, là lớp con của một lớp, hoặc thực hiện, một giao diện có liên quan đến các hoạt động, được được mô hình, ngay cả khi có các lớp học phụ huynh khác, hoặc giao diện.

Chúc mừng.

+0

Yêu những biểu đồ ASCII quyến rũ đó! +1 –

0

Tiếp cận vấn đề từ một góc lịch sử cuộc sống thực thể (người mẫu sự kiện, ref, ví dụ, Jackson System [of] Development.):

UML and Data Modeling: A Reconciliation By David C. Hay Ref. p.34

Software Evolution with UML and XML edited by Hongji Yang 'Lịch sử thực thể - vấn đề và vấn đề', p142 - Tôi không đồng ý btw, một chuỗi trình tự. có thể được sử dụng tương đối dễ dàng nếu bị hạn chế đối với thực thể được đề cập, trong khi đó là một nhà nước. được minh họa thành công trong Software Systems Architecture, Nick Rozanski, Eoin Woods, 'Mô hình Vòng đời Thông tin', p 317.

+0

Kỹ thuật mà tôi nghĩ là phác họa một trường hợp sử dụng UML và mô hình kiến ​​trúc sự kiện với một sơ đồ trạng thái, nhúng nó vào sơ đồ như được mô tả 'Mô tả hành vi trường hợp sử dụng' http: //www.uml-diagrams .org/use-case-diagrams-how-to.html - cùng một trang web cũng cho thấy UML không loại trừ việc sử dụng các kỹ thuật mô hình khác, một ELH thực sự khá dễ phác thảo trong chế độ văn bản, không yêu cầu đặt tên một trạng thái (thuận tiện nếu ban đầu không rõ ràng), và cũng có thể được chuyển sang một sơ đồ trạng thái, cấu trúc ELH (các mức trừu tượng) cũng có thể được chuyển qua. – user5321531

+0

Sử dụng giải thích về trường hợp sử dụng mở rộng để xác định điều kiện sẽ là một cách tiếp cận khác? Ref. 'UML Use Case Extend' http://www.uml-diagrams.org/use-case-extend.html#extension-point, xem thêm bài đăng này https://stackoverflow.com/questions/23223704/precondition-in- một trường hợp sử dụng – user5321531

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