Como a construção do evento c # .net pode ser melhor representada em um diagrama de classes UML?

Eu estou projetando um sistema de entidade / componente onde o problema de comunicação intra-entidade é endereçado por um sistema de mensagem de evento. os componentes são divididos em duas partes, uma na entidade e uma espécie de "entidade proxy" em um subsistema, mantida em sincronia através de um sistema tipo observador. Eu estou tentando uma implementação com eventos e delegados.

Eu estou tentando modelar a estrutura do evento / sistema de mensagens do meu aplicativo e estou tendo problemas com os delegados. A forma como é agora é um diagrama (anexado) mostrando o delegate, eventArgs e entidades no sistema, no entanto, a natureza de seus relacionamentos está sendo representada apenas como associações genéricas. Eu também tenho um segundo diagrama mostrando as interfaces do sistema. Eu preciso mostrar os eventos que são levantados nesses objetos, como isso, onde a maior parte da complexidade do sistema é.

Eu sei que preciso também de diagramas dinâmicos de colaboração e de tempo, mas estou tentando descobrir de que tipo e quantas classes de suporte a eventos diferentes eu preciso, além de como será a estrutura de herança. Eu quero me dar uma escolha de tipos de mensagens que eu sei que irão trabalhar juntos. Eu acho que posso escolher um derivado EventArgs e um tipo delegado desses tipos predefinidos para reutilizá-los na diagramação dinâmica e no tempo de construção de componentes.

A principal coisa que não consigo descobrir é se modelar o evento como um atributo ou operação. Eu tenho tentado usar uma classe de associação para o delegado e uma operação de tipo OnSomeEvent () com um estereótipo de evento. Eu não gosto disso porque um evento não é uma operação. Eu tenho protegido métodos no código com esta convenção de nomenclatura On **** () já. A assinatura de delegado, o comportamento de multicast e o padrão de observador não são realmente capturados por essa abordagem.

Que método outros estão usando para expressar essas classes complexas e fortemente acopladas? O ponto dos diagramas para mim é documentar e entender mais completamente as interfaces no sistema. Nesta fase do meu processo, espero congelar as Interfaces e prosseguir para a Implementação dos componentes em si.

questionAnswers(2)

yourAnswerToTheQuestion