Diretriz: Entidade de Negócios
Entidades de negócios representam "coisas" manipuladas ou utilizadas pelos trabalhadores de negócios conforme eles executam um caso de uso de negócios. Esta diretriz mostra como modelar Entidades de Negócios.
Relacionamentos
Descrição Principal

Explicação

Entidades de negócio representam "coisas" manipuladas ou utilizadas pelos trabalhadores de negócio conforme eles executam um caso de uso de negócios. Uma entidade de negócios geralmente representa algo de valor para vários casos de uso de negócios ou instâncias de caso de uso, para que o objeto de entidade de negócios tenha uma vida razoavelmente longa. Geralmente, é bom quando a entidade de negócios não mantém nenhuma informação sobre como e por quem ela é usada.

Geralmente, uma entidade de negócios representa um documento ou uma parte essencial de um produto. Às vezes, ela representa algo menos tangível, como conhecimentos importantes sobre um mercado ou um cliente. Exemplos de entidades de negócios em um restaurante são Menu e Bebidas; em um aeroporto, Passagem e Cartão de Embarque são entidades de negócios importantes.

Na modelagem de negócio, normalmente pensamos em Entidades de Negócio como partes significativas (e persistentes) de informações, na verdade, essa é a maneira que as retratamos na descrição do artefato. No entanto, em geral, as "coisas" manipuladas ou utilizadas por trabalhadores de objeto podem ser objetos físicos: se um trabalhador de negócio for realizado por um sistema físico complexo que não tem fluxos de materiais entre seu limite, então, poderá ser útil que as Entidades de Negócio representem os análogos de informações para essas coisas físicas - elas são a forma que o trabalhador de negócio comunica suas ações para o resto da empresa. Então, você pode lidar com as considerações físicas para o trabalhador de negócio separadamente do contexto de modelagem de negócio - quando você lida com o trabalhador de negócio como um sistema por si próprio.

É necessário modelar como Entidades de Negócios apenas aqueles fenômenos os quais outras classes no modelo do domínio de negócios devem consultar. Outras "coisas" podem ser modeladas como atributos das classes relevantes ou apenas descritas textualmente nessas classes.

Atributos

Um atributo de uma classe representa uma parte da informação sobre um objeto da classe que é mantida com o objeto. Um atributo possui um tipo de atributo. Cada atributo e tipo de atributo tem um nome respectivamente.

Geralmente, um objeto mantém várias informações que descrevem algumas de suas características. Essas partes de informações podem ser descritas implicitamente na descrição textual da classe do objeto ou modeladas explicitamente como um atributo da classe.

Um atributo de um determinado tipo. Um atributo possui um nome, preferivelmente um substantivo que descreva a função do atributo em relação à classe. Um tipo de atributo pode ser mais ou menos básico, começando com uma seqüência de caracteres ou um número simples. As classes diferentes podem ter atributos com estruturas idênticas. Esses atributos devem compartilhar uma descrição; ou seja, devem compartilhar o tipo de atributo.

Nota: Você deve modelar atributos somente para fazer com que a classe possa ser entendida!

Utilizando Atributos ou Entidades

Às vezes, é difícil saber se você deve descrever um conceito como um atributo de uma classe ou como uma classe de entidade de negócios separada. A regra geral é modelar um fenômeno como um atributo se não mais que um objeto precisa ter acesso direto a ele ou se a única maneira de acessá-lo for através do objeto. Caso contrário, modele o conceito separadamente, em uma classe própria.

Diagrama descrito no texto associado.

No caso de uso de check-in no aeroporto, as passagens são importantes. Cada passagem tem um nome de passageiro e um vôo. Aqui, os atributos Nome e Vôo são identificados. O último é mais complexo, consiste em empresa aérea, destino, horário da partida e horário da chegada.

Diagrama descrito no texto associado.

O vôo é compartilhado por todos os passageiros que viajam no mesmo vôo. A empresa aérea é a mesma de vários vôos. Portanto, a melhor alternativa é para modelar vôo e empresa aérea como classes.

Uma vez decidido se um conceito é tão importante para o caso de uso que deve ser modelado, o que controla se ele deve ser modelado como uma classe separada ou simplesmente como um atributo de classe não é sua importância na vida real. Em vez disso, o que determina como ele é modelado é a necessidade comercial de acessá-lo. Isso significa que alguns conceitos são modelados diferentemente por negócios diferentes.

Considere um exemplo: para os funcionários que trabalham em um caso de uso de planejamento de tráfego em um aeroporto, os vôos são essenciais. O horário de partida, a empresa aérea e o destino devem ser definidos para cada vôo. Nesse caso, é possível usar uma classe, Vôo e fornecer os atributos de horário da partida, empresa aérea e destino.

Diagrama descrito no texto associado.

Os vôos são essenciais para os funcionários que trabalham em um caso de uso de planejamento de tráfego em um aeroporto.

Por outro lado, a situação é diferente para os funcionários de uma agência de viagem. Embora eles precisem do horário de partida, empresa aérea e destino, há necessidades adicionais. O mais importante para uma agência de viagem é encontrar um vôo com um determinado destino, no qual seja apropriado criar uma classe separada para Destino. As classes Vôo e Destino devem, é claro, estar cientes uma da outra. Uma associação bidirecional permite isso.

Diagrama descrito no texto associado.

Os departamento de vôo e os destinos são igualmente essenciais para os funcionários que trabalham em um caso de uso de agência de viagem.

Teoricamente, tudo pode ser modelado como uma classe. No entanto, o uso de atributos quando apropriado reduz o número de classes que precisam ser mantidas e facilita a compreensão do modelo de objetos.

Operações

Para cumprir com as responsabilidades de um trabalhador de negócios, a pessoa que atua nessa função utiliza uma ou várias ferramentas para manipular as entidades de negócios. Você pode definir essas ferramentas de forma geral ou implícita, com a ajuda de operações e mensagens que representam as ferramentas utilizadas e os acessos feitos. Uma operação define a ferramenta com a qual uma entidade de negócios é manipulada. O acesso é iniciado por uma mensagem. Uma ferramenta que pode ser utilizada para manipular um objeto de entidade de negócio é representada como uma operação da classe de entidade de negócio, com um nome e, opcionalmente, parâmetros. O acesso de uma unidade de entidade de negócio é mostrado como uma mensagem enviada ao objeto de entidade de negócio.

Por exemplo, uma operação "associar bagagem" na entidade de negócio "passagem" envolve afixar etiquetas de bagagem na passagem. Os parâmetros devem incluir as etiquetas de bagagem.

Cada operação é definida por um nome, que deve indicar sua finalidade e, opcionalmente, um número de parâmetros. Os parâmetros especificam o que um objeto da classe deve esperar receber de um objeto que solicita suporte ou criação de acesso, bem como o que o objeto fornecerá quando a operação for executada. Como exemplo, é possível fornecer parâmetros que reflitam quando um trabalhador de negócios deve realizar uma etapa na operação do trabalhador ou quando ele deve acessar uma determinada entidade de negócios, iniciando uma das operações da entidade de negócios. Os parâmetros também podem representar o que for mais ou menos tangível e entregue.

As operações podem ser definidas informalmente, ou em mais detalhes, dependendo da importância ou do nível de detalhes requerido em um caso de uso. Uma descrição "mais detalhada" pode descrever uma seqüência de comportamento que indica os atributos e os relacionamentos utilizados durante o seu desempenho, como os objetos de outras classes são contactados e finalizados.

Características de uma Boa Entidade de Negócio

  • Seu nome e a descrição são claros e podem ser entendidos.
  • Os relacionamentos de entidades de negócios não dependem uns dos outros.
  • Cada relacionamento é usado no workflow de pelo menos um caso de uso de negócios.
  • Todas as "coisas" no negócio, como produtos, documentos, contratos e outros, são modeladas como entidades de negócio.
  • Participa de pelo menos um caso de uso de negócios.
  • Possui um proprietário que é um trabalhador de negócios ou um ator de negócios responsável pela entidade de negócios.

Eventos de Negócio

Eventos de negócios podem ser utilizados para notificar partes interessadas (incluindo outras entidades de negócios) de uma alteração no estado da entidade. A criação e eliminação de uma entidade de negócios pode ser significativa. Se você definiu uma máquina de estado, examine os estados da entidade de negócios. Cada transição é um possível evento de negócios. Examine também os atributos e as operações da entidade de negócios. Operações significativas utilizadas sem muita freqüência podem ter um evento de negócios associado. Alterações em atributos importantes podem disparar um evento. Padrões de processo de negócios e entidade de negócios podem também fornecer percepção para eventos de negócios úteis. Por exemplo, se uma entidade de negócio deve ser aprovada antes de ser utilizada posteriormente, um evento de negócio <algo> Aprovado pode ser útil para notificar outras partes de que o evento de negócio está pronto para uso. Para obter informações adicionais sobre como localizar eventos de negócio, consulte Diretriz: Evento de Negócio.