Diretriz: Evento de Negócios
Eventos de negócio representam importantes ocorrências nas tarefas diárias da empresa. Esta diretriz explica como modelá-los.
Relacionamentos
Elementos Relacionados
Descrição Principal

Explicação

Eventos de negócio representam importantes ocorrências nas tarefas diárias da empresa. Obviamente, há milhares de coisas acontecendo na empresa e em volta dela todos os dias. Os eventos de negócios permitem gerenciar complexidades, concentrando-se no que realmente é importante e, nesse sentido, são arquiteturalmente significativos. Os eventos de negócios possuem as seguintes características:

  • Representam uma ocorrência com significado, isto é, não são comuns.
  • Parecem ocorrer aleatoriamente, ou pelo menos inesperadamente.
  • Ocorrem independentemente um do outro.
  • Resultam em uma ação imediata por parte da empresa.

Um evento de negócios que não possui uma dessas características é suspeito.

Os eventos de negócios são acionados e recebidos pelos atores de negócios, trabalhadores de negócios e entidades de negócios, enquanto interagem para realizar um uso de negócios. Os eventos de negócios podem ser acionados:

  • Pelos atores de negócios para indicar o início ou o fim de um caso de uso de negócios. Por exemplo, quando um fornecedor entrega mercadorias, um evento de negócios Entrega indicaria o início do caso de uso de negócios Entrega de Mercadorias.
  • Pelas entidades de negócios para indicar uma alteração de estado. Por exemplo, como parte do caso de uso de negócios Recrutar Funcionários, um evento de negócios CandidateQualified indicaria que as referências de um possível funcionário foram verificadas.
  • Pelos trabalhadores de negócios para indicar um ponto específico em uma realização de caso de uso de negócios. Por exemplo, uma vez lançado um foguete, um evento de negócios Lançamento indicaria que o rastreio da trajetória do foguete pode ser iniciado.
  • Com o decorrer do tempo. Por exemplo, seis horas após um paciente ter saído da sala de cirurgia, um evento de negócios PatientCoherent indicaria que uma enfermeira deverá examinar o paciente.

Modelando Eventos de Negócio

Eventos de negócios podem conter informações que fornecem mais contexto sobre a ocorrência que o evento representa. Essas informações são modeladas como atributos da classe de eventos de negócios, conforme mostrado na figura. Os atributos de um evento de negócios podem ser determinados, considerando quais informações os receptores do evento exigem para tomar uma ação. 

Exemplo de UML para texto associado.

Eventos de negócios que representam mudanças no estado das entidades de negócios devem ter uma associação com a entidade de negócios à qual se relacionam, conforme mostrado na figura. Isso permite que os receptores do evento de negócios acessem a entidade de negócios em questão e recuperem as informações necessárias.

Exemplo de UML para texto associado.

Atores, trabalhadores e entidades de negócios podem tanto disparar quanto receber eventos de negócios. A classe que aciona um evento de negócio é chamada de publicador, enquanto a classe que recebe um evento de negócio é chamada de assinante.

Um publicador exige uma dependência estereotipada de <<enviar>> para os eventos de negócio que irá acionar, conforme mostrado na figura.

Exemplo de UML para texto associado.

Um assinante exige uma operação estereotipada <<evento de negócio>> com o mesmo nome do evento de negócio e parâmetros que correspondam aos atributos do evento de negócio, conforme mostrado na figura. Lembre-se de que a assinatura da operação precisa ser mantida consistente com os atributos e o nome do evento de negócios.

Exemplo de UML para texto associado.

Uma abordagem alternativa é inventar uma dependência estereotipada <<receber>> do assinante para o evento de negócio, embora isso não seja um UML padrão. As assinaturas de operações podem ser deduzidas de todas as dependências <<receber>>. Um exemplo dessa abordagem fora dos padrões é mostrado na figura.

Exemplo de UML para texto associado.

O disparo real de eventos de negócios é mostrado nos diagramas de interação ou de atividade. Nos diagramas de interação, o publicador envia uma mensagem assíncrona para o receptor, com o nome do evento de negócios. Um exemplo disso é mostrado na figura. Observe que a mensagem é assíncrona. Isso indica que o publicador não aguarda que o assinante conclua o processamento do evento de negócios antes de continuar. Em vez disso, o publicador dispara o evento de negócios e continua diretamente o que estava fazendo. O assinante por sua vez inicia o processamento dos eventos de negócios assim que os recebe. Isso representa a vida real mais de perto do que mensagens assíncronas.

Exemplo de UML para texto associado.

Nos diagramas de atividade, o publicador é mostrado para disparar o evento de negócios. O receptor é mostrado para receber o evento de negócios, seja no mesmo diagrama ou em outro. Um exemplo disso é mostrado na figura.

Exemplo de UML para texto associado.

Localizando Eventos de Negócio

Quando uma associação entre um ator de negócios e um caso de uso de negócios é nomeada, um evento de negócios correspondente pode ser utilizado para sinalizar o início do caso de uso de negócios, o que seria uma ocorrência significativa para o negócio.

Analise as interações entre os trabalhadores de negócios nos diagramas de seqüência. Para cada mensagem entre trabalhadores de negócios, considere o seguinte:

  • Mensagens de local transmitidas entre trabalhadores de negócios em diferentes locais são sugestões de eventos de negócios.
  • Mensagens de tempo nas quais há uma diferença de tempo significativa entre o disparo e o recebimento são sugestões de eventos de negócios.
  • Mensagens de finalidade que resultam em ações as quais possuem uma finalidade diferente com relação às ações que dispararam o evento de negócios são sugestões de eventos de negócios.
  • Mensagens de responsabilidade executadas por um trabalhador de negócios com responsabilidades diferentes são sugestões de eventos de negócios.

A análise dos limites dos sistemas de negócios ajuda a identificar diferenças na finalidade ou na responsabilidade.

Nos diagramas de atividades, considere se uma ação é requerida diretamente antes ou após cada tarefa ou se alguma parte deve ser notificada do resultado de um ponto de decisão.

Entidades de negócios também fornecem indícios de eventos de negócios. Qualquer operação significativa de uma entidade de negócios é considerada uma sugestão de eventos de negócios. Os diagramas de estados das entidades de negócios são muito úteis. Transições de estado indicam possíveis eventos de negócios, pois podem representar uma alteração de estado do negócio.

Ao identificar eventos de negócios, é útil imaginar um arquivo no qual as entidades de negócios são dossiês e os escriturários lêem e alteram os dossiês e os transportam por toda parte, dentro e fora de caixas. Assim que um dossiê precisa ser duplicado completamente para que possa ser encaminhado a diferentes destinos, você pode ter descoberto um evento de negócios - há vários destinatários. Além disso, quando um trabalhador de negócios precisa redigir um aviso após a execução de uma tarefa, com a finalidade de informar uma outra pessoa, essa tarefa pode também ser qualificado como um evento de negócios. Obviamente, os dossiês não permanecem sem uso sobre as mesas o dia inteiro - são arquivados. Quando há necessidade de remover um dossiê do fichário ou colocar um dossiê de volta no fichário, considere o que levou à necessidade de remover ou colocar de volta o dossiê. A ocorrência que levou ou disparou a necessidade de remover um dossiê ou colocá-lo de volta no lugar pode ser um evento de negócios.

Generalização de Eventos de Negócio

Eventos de negócio podem ser categorizados ou agrupados em "famílias" de eventos, definindo relacionamentos de generalização entre eventos de negócio mais generalizados e mais especializados. Isso permite que mais de um tipo de evento de negócios seja tratado da mesma maneira pelas partes não interessadas nos diferentes subtipos existentes.

Exemplo de UML para texto associado.

O diagrama anterior mostra que Doença, Ausência e Morte de funcionários são versões mais especializadas da ausência de um funcionário. A definição do supertipo Ausência permite que qualquer um dos três subtipos seja tratado como uma ausência. Em uma empresa de consultoria, por exemplo, o gerente de contas pode precisar informar ao cliente da ausência de um funcionário e providenciar uma substituição, independentemente da razão da ausência. O gerente portanto está interessado somente no evento de negócios Ausência. A recepcionista, por outro lado, pode ter de encarregar-se de uma ação específica se um funcionário ficar doente; por exemplo, chamar um médico ou enviar flores. O gerente de recursos humanos e o gerente geral podem precisar ser informados da morte de um funcionário.

Nesse exemplo, vemos que especializações de eventos de negócios são úteis quando diferentes partes precisam encarregar-se de várias ações em resposta a circunstâncias diversas (específicas). Generalizações de eventos de negócios são úteis quando determinadas partes precisam responder da mesma maneira a determinados eventos de negócios, independentemente das circunstâncias específicas.

Na prática, claro, a parte provavelmente será notificada do evento real (especializado). Se um funcionário vier a falecer, você poderá estar certo de que o gerente de contas também será informado do fato, mas a ação tomada será a mesma. Hierarquias de eventos de negócios ajudam a criar um Modelo de Análise de Negócios mais simples e mais fácil de entender.

Automação de Eventos de Negócio

Faz sentido automatizar a definição, o disparo e a propagação de eventos de negócios, mas isso nem sempre é prático. Às vezes, sai mais caro criar um sistema que faça isso do que enviar um e-mail para um colega. Algumas questões, como estas, devem ser consideradas ao ponderar sobre a automação de eventos de negócios:

  • o custo de adquirir ou implementar e manter um sistema que automatiza aspectos do gerenciamento de eventos
  • a viabilidade técnica de uma solução automatizada
  • o custo de alternativas não automatizadas
  • o impacto do não acionamento ou recebimento de determinados eventos
  • a possibilidade de que determinados eventos possam cruzar os limites dos negócios no futuro
  • os canais de notificação atualmente disponíveis

Em uma arquitetura orientada a serviços, as mensagens são utilizadas para separar sistemas de software uns dos outros e de locais físicos. Mensagens assíncronas também podem ser utilizadas para separar sistemas de software a tempo. Eventos de negócios serão implementados como mensagens nesses tipos de sistemas de software, embora certamente nem todas as mensagens terão um evento de negócios associado. O EAI (Enterprise Application Integration) é um aplicativo de negócios muito útil. Aqui cada aplicativo define vários eventos de negócios os quais outros aplicativos podem assinar. Isso permite que os aplicativos interajam sem fazer isso diretamente.

Por exemplo, considere uma companhia de seguros que possui um sistema de front-office para gerenciar interações, propostas e contratos de clientes. Essa empresa possui ainda um sistema de back-office para administrar produtos e apólices. Quando um cliente solicita uma proposta, o sistema de front-office reúne as informações necessárias sobre o cliente e o objeto segurado. Em seguida, o sistema de administração de produtos calcula o prêmio com base nas informações e gera uma apólice de seguro preliminar que está vinculada a uma proposta. Depois que o cliente aceita a proposta, o sistema de administração de apólices deve finalizar a apólice. Nesse exemplo, duas mensagens foram desconectadas em tempo, local e responsabilidade - CalculatePremiums e FinalizePolicy. Entretanto, somente FinalizePolicy seria modelada como um evento de negócios, porque possui significado fora do contexto atual.