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.
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!
À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.
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.
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.
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.
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.
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.
-
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ó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.
|