Buscar

Modelagem de classes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Princípios de Análise 
e Projeto de Sistemas 
com UML 
2ª edição 
Eduardo Bezerra 
 
Editora Campus/Elsevier 
Capítulo 5 
Modelagem de Classes de Análise 
“O engenheiro de software amador está sempre à procura da 
mágica, de algum método sensacional ou ferramenta cuja 
aplicação promete tornar trivial o desenvolvimento de software. 
Ë uma característica do engenheiro de software profissional 
saber que tal panacéia não existe” -Grady Booch 
Tópicos 
• Diagrama de Classes 
 
• Responsabilidade e Colaboração 
 
• Identificação das Classes Iniciais 
 
• Construção do Modelo de Classes de Domínio 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 3 
Tópicos 
• Diagrama de Classes 
 
• Responsabilidade e Colaboração 
 
• Identificação das Classes Iniciais 
 
• Construção do Modelo de Classes de Domínio 
 
 
 Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 4 
Introdução 
• O modelo de casos de uso fornece uma perspectiva do sistema 
do ponto de vista externo. 
 
• Externamente os atores visualizam resultados de cálculos, 
relatórios, confirmações de requisições; 
 
• Internamente os objetos colaboram entre si para formar os 
resultados que são visíveis ao usuário externo; 
 
• Essa colaboração pode ser vista do aspecto dinâmico e 
estrutural estático. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 5 
Introdução 
• O aspecto dinâmico descreve as trocas de mensagens entre 
os objetos e sua reação com eventos que ocorrem no sistema. 
 
• O aspecto estrutural estático mostra como o sistema está 
organizado internamente; 
– Estático refere-se ao fato de não possuir relação com o tempo 
– Estrutural refere-se ao fato das estruturas das classes e das relações 
entre elas serem representadas. 
 
• O diagrama que representa o aspecto estrutural estático de um 
sistema OO é o diagrama de classes. O modelo de classes 
consiste no diagrama e na descrição textual associada. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 6 
Modelo de Classes 
• O modelo de classes evolui durante o desenvolvimento do 
sistema; 
 
• Há três níveis: 
– Modelo de classes de domínio – Representa as classes no domínio do 
negócio, é construído ainda na análise e não leva em consideração as 
restrições da tecnologia utilizada. 
– Modelo de classes de especificação – Consiste na adição de detalhes 
específico no modelo de domínio. É feita no projeto. 
– Modelo de classes de implementação – É uma extensão do modelo de 
especificação, corresponde a implementação das classes em uma 
linguagem de programação. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 7 
Nomenclatura Utilizada 
• Padrão adotado no livro texto. Os termos não apresentam 
espaços em branco e preposições. 
 
• Para nome de classes e relacionamentos, palavras iniciam em 
maiúsculo: Cliente, ItemPedido, Pedido... 
 
• Para nome de atributos e nomes de operações (Exceto 
siglas), a primeira letra em minúsculo e as demais iniciais em 
maiúsculo: quantidade, precoUnitario, CPF, nome, 
dataNascimento... 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 8 
Diagrama de Classes 
Classes 
• São representadas através de uma caixa com no máximo três 
compartimentos. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 9 
Nome 
Atributos 
Operações 
Nome 
Nome 
Atributos 
Nome 
Operações 
Nome 
Atributos 
Operações 
Possíveis notações 
Diagrama de Classes 
• Exemplos de representação de uma mesma classe. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 10 
ContaBancaria 
ContaBancaria 
numero 
saldo 
dataAbertura 
ContaBancaria 
numero 
saldo 
dataAbertura 
criar(); 
bloquear(); 
desbloquear(); 
creditar(); 
debitar(); 
Diagrama de Classes 
Relacionamento entre objetos (associação) 
• Representa o relacionamento entre objetos de duas classes; 
 
• Uma associação é representada através de um segmento de reta 
ligando as classes. 
 
• Exemplo: um cliente compra produtos. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 11 
Cliente Produto 
Diagrama de Classes 
Relacionamento entre objetos (associação) – Multiplicidade 
• As associações permitem representar limites inferior e superior 
da quantidade de objetos o outro pode estar associado; 
 
• Esses limites são chamados de multiplicidade. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 12 
Nome Simbologia 
Apenas um 1..1 ou 1 
Zero ou muitos 0..* ou * 
Um ou muitos 1..* 
Zero ou um 0..1 
Intervalo específico i..j 
Diagrama de Classes 
Relacionamento entre objetos (associação) – Multiplicidade 
• Um cliente pode estar associado a vários pedidos 
 
 
• Uma corrida pode ter de 2 a 6 velocistas. 
 
 
• Pode haver outras multiplicidades, exemplo: 1,3,5..9,11 
significa que as a multiplicidade é: {1,3,5,6,7,8,9,11} 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 13 
Cliente Pedido 
1 0..* 
Velocista Corrida 
2..6 1 
Diagrama de Classes 
Relacionamento entre objetos (associação) – Multiplicidade 
• As associações podem ser agrupadas em três grandes tipos: 
“muitos para muitos”, “um para muitos”, “um para um”. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 14 
Conectividade Multiplicidade de um 
extremo 
Multiplicidade do outro 
extremo 
Um para um 0..1 ou 1 0..1 ou 1 
Um para muitos 0..1 ou 1 * ou 1..* ou 0..* 
Muitos para muitos * ou 1..* ou 0..* * ou 1..* ou 0..* 
Diagrama de Classes 
Relacionamento entre objetos (associação) – Multiplicidade 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 15 
Empregado Departamento 
1 0..1 
Empregado Departamento 
0..* 1 
Empregado Projeto 
0..* 1..* 
Um para um 
Um para muitos 
Muitos para muitos 
Diagrama de Classes 
Nome de associação, direção de leitura e papeis. 
• O nome da associação é posicionado na linha da associação; 
• A direção de leitura informa como a associação deve ser lida. 
• Os papéis de cada objeto em um relacionamento pode ser 
representado. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 16 
Diagrama de Classes 
Nome de associação, direção de leitura e papeis. 
• São muito úteis quando o significado de uma associação é 
difícil de compreender. 
• Auxilia em situações em que há múltiplas associações entre as 
mesmas classes. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 17 
Diagrama de Classes 
Agregação e Composição 
• São tipos especiais de associação, que representam 
relacionamentos todo-parte. 
 
• Agregação: Relação de dependência fraca: A existência do 
objeto-parte faz sentido sem o objeto-todo; É representado por 
um losango branco. 
 
• Composição: Relação de dependência forte: O objeto-parte 
não existe sem o objeto-todo. É representado por um losango 
preto. 
 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 18 
Diagrama de Classes 
Agregação e Composição 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 19 
Agregação 
Composição 
Diagrama de Classes 
Classes associativas 
• São classes que estão ligadas a associações, em vez de outras 
classes; 
• Mais comum em associações muitos para muitos 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 20 
Diagrama de Classes 
Classes associativas 
• Mais um exemplo: Consertos em automóveis são realizados 
por funcionários,mas é necessário saber que especialidade foi 
utilizada; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 21 
Diagrama de Classes 
Classes Associativas 
• Uma classe associativa é um elemento híbrido: classe e 
associação; 
• Normalmente opta-se por remover essa classe e inserir uma 
classe ordinária com multiplicidade 1 para muitos. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 22 
Diagrama de Classes 
Associação ternária 
• São necessárias para associar elementos de três classes 
distintas; 
• São representadas como na figura abaixo. 
• Não são muito utilizadas. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 23 
Diagrama de Classes 
Associação ternária 
• Pode ainda haver uma utilização mútua de classes associativas 
e associação ternária. 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 24 
Diagrama de Classes 
Associações reflexivas 
• Também chamadas de auto associação; 
• Associa objetos de uma mesma classe. 
• Os papéis são importantes para facilitar a leitura; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 25 
Tópicos 
• Diagrama de Classes 
 
• Responsabilidade e Colaboração 
 
• Identificação das Classes Iniciais 
 
• Construção do Modelo de Classes de Domínio 
 
 
 Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 26 
Identificando Classes Iniciais 
• Quando buscamos identificar as classes, estamos procurando 
os objetos que irão compor o sistema. 
 
• A identificação das classes se divide em duas etapas que são 
intercaladas: 
– Identificação das classes candidatas 
– Eliminação das classes desnecessárias 
 
• Existem dois métodos principais para identificar as classes de 
domínio: 
– Método dirigido a dados 
– Método dirigido a responsabilidades (será estudado) 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 27 
Responsabilidades e Colaboradores 
Responsabilidades 
• Em OO, os objetos encapsulam dados e comportamentos; 
 
• As responsabilidades são as obrigações que um objeto tem 
para com o sistema. 
 
• Através das responsabilidades, um objeto colabora com outros 
para alcançar os objetivos do sistema. 
 
• Na prática, é algo que o objeto faz. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 28 
Responsabilidade e Colaboradores 
Responsabilidade 
• Considerando um objeto cliente: 
– Ele conhece seu nome, endereço, telefone... 
 
• Considerando um pedido: 
– Ele conhece sua data de realização, ele também sabe calcular seu valor 
total. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 29 
Responsabilidade e Colaboração 
Colaboração 
• Algumas vezes um objeto tem responsabilidades que ele não 
consegue cumprir sozinho; 
 
• Deve haver colaboração com outros objetos; 
 
• Por exemplo na impressão da fatura de um pedido: 
– O objeto Pedido informa o seu valor total 
– O objeto Cliente o seu nome 
– Cada objeto ItemPedido a quantidade e o subtotal 
– Cada objeto Produto informa seu nome e preço unitário 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 30 
Responsabilidade e Colaboração 
• Resumindo... 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 31 
Objetos 
Responsabilidades 
O que o objeto conhece 
+ 
O que o objeto faz 
Colaboradores 
O padrão de comunicação 
entre os objetos 
Possuem 
Precisam de 
Realizadas por 
Categorias de Responsabilidade 
• Os objetos podem ser categorizados de acordo com o tipo de 
responsabilidade; 
 
• Os objetos podem ser divididos em (Proposto por Ivan 
Jacobson): 
– Objetos de entidade 
– Objetos de controle 
– Objetos de fronteira 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 32 
Categorias de Responsabilidade 
Objetos de Entidade 
• É um repositório para alguma informação manipulada pelo 
sistema; 
 
• Normalmente armazenam informações persistentes no sistema; 
 
• Os atores não possuem acesso direto a esses objetos; 
 
• Normalmente participam de vários casos de uso 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 33 
Categorias de Responsabilidade 
Objetos de Entidade 
• Algumas responsabilidades típicas: 
– Informar valores de seus atributos a objetos de controle 
– Realizar cálculos simples, normalmente com a colaboração de objetos 
de entidade; 
– Criar e destruir objetos todo-parte 
 
• Eles devem conhecer os elementos da sua criação. Por 
exemplo, um cliente deve conhecer nome, telefone, endereço... 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 34 
Categorias de Responsabilidade 
Objetos de Fronteira 
• Traduzem eventos gerados por um ator em eventos relevantes 
ao sistema; 
 
• São responsáveis por apresentar os resultados de uma iteração 
em algo que possa ser entendido pelo ator; 
 
• Permitem a comunicação com o mundo exterior; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 35 
Categorias de Responsabilidade 
Objetos de Fronteira 
• As classes de fronteira normalmente fazem: 
– Notificam aos objetos de controle os eventos gerados externamente ao 
sistema; 
– Notificam aos atores o resultado de interações entre objetos internos. 
 
• Já as responsabilidades de conhecer, normalmente estão 
voltadas a propriedades da interface de comunicação. 
 
• No início os objetos de fronteira esses objetos são abstraídos. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 36 
Categorias de Responsabilidade 
Objetos de Controle 
• Servem como uma ponte entre os objetos de fronteira e os de 
entidade; 
 
• Decidem o que o sistema faz quando ocorre um evento externo 
relevante; 
 
• São bastante acoplados à lógica da aplicação. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 37 
Categorias de Responsabilidade 
Objetos de Controle 
• Responsabilidades de fazer típicas: 
– Realizar monitorações, a fim de responder a eventos externos ao 
sistema; 
– Coordenar a realização de um caso de uso através do envio de 
mensagens a objetos de fronteira e de entidade; 
– Assegurar que as regras de negócio estão sendo seguidas; 
– Coordenar a criação de associação entre objetos de entidade; 
 
• As responsabilidades de conhecer são usados para manter 
valores acumulados ou derivados durante a realização de um 
caso de uso, ou manter informações de estado dele. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 38 
Divisão de Responsabilidades 
• As categorias propostas por Jacobson implica que cada objeto 
é especialista em um de três tipos de tarefas: 
– Se comunicar com atores : Fronteira 
– Manter informações do sistema: Entidade 
– Coordenar a realização de um caso de uso: Controle 
 
• Auxilia na resposta a mudanças: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 39 
Tipo de mudança Onde mudar 
Mudanças na interface do sistema (interface gráfica ou 
comunicação com outros sistema) 
Objetos de fronteira 
Mudanças nas informações manipuladas pelo sistema Objetos de entidade 
Mudanças em funcionalidades complexas (vários objetos) Objetos de controle 
Divisão de Responsabilidades 
• Como exemplo, consideremos uma loja de aluguel de carros; 
 
• O sistema necessita ser atualizado para que os clientes possam 
utilizar o sistema via internet; 
 
• Os objetos que precisam ser modificados nesse caso são os de 
fronteira; 
 
• A mudança é complexa, mas somente um subconjunto dasclasses seria modificado. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 40 
Divisão de Responsabilidades 
• Continuando o exemplo, esse sistema deve ter como classes de 
entidade: Carro, Aluguel, etc. 
 
• Deve também na classe de controle, uma lógica para calcular o 
valor total das locações feitas por um cliente; 
 
• Caso haja uma mudança na lógica, somente as classes de 
controle serão alteradas. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 41 
Divisão de Responsabilidades 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 42 
<<Fronteira>> <<Controle>> 
<<Entidade>> 
<<Entidade>> 
<<Entidade>> 
Tópicos 
• Diagrama de Classes 
 
• Responsabilidade e Colaboração 
 
• Identificação das Classes Iniciais 
 
• Construção do Modelo de Classes de Domínio 
 
 
 Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 43 
Identificação das Classes Iniciais 
• Os casos de uso podem ser usados como base para o 
desenvolvimento de um sistema; 
 
• É lógico, pois a existência de uma classe só faz sentido se ela 
participar de alguma forma de um comportamento visível do 
sistema; 
 
• O modelador analisa cada caso de uso e identifica as classes 
candidatas a desempenhar responsabilidades nas categorias: 
fronteira, controle e entidade. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 44 
Identificação das Classes iniciais 
• A descrição dos casos de uso são estudados para identificar as 
classes candidatas. 
 
• Todos os fluxos são analisados (principal, alternativos e 
exceção); 
 
• Na análise, os substantivos e locuções equivalentes são 
destacados e são removidos os sinônimos. Os nomes restante 
são classes candidatas. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 45 
Identificação das Classes Iniciais 
• Para identificar as responsabilidades de fazer, deve-se 
identificar os verbos que representam ações. 
• O substantivo da frase representa a classe que possui essa 
responsabilidade; 
 
• Vantagem: Abordagem simples; 
• Desvantagem: Depende da descrição dos casos de uso, e a 
linguagem natural omite alguns aspectos; 
• Solução: Após a análise, modelar CRC. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 46 
Modelagem CRC 
• Classe Responsabilidades e Colaboradores: Proposta em 1989; 
 
• Não faz parte da UML; 
 
• Na modelagem CRC os usuários, modeladores, projetistas, 
programadores trabalham juntos; 
 
• Utilizam cartões simples. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 47 
• Utiliza pequenos cartões onde constam o nome da classe e sua 
especialidade (fronteira, entidade ou controle), na esquerda são 
listadas suas responsabilidades e na direita os colaboradores. 
Modelagem CRC 
Nome da Classe (especialidade) 
Responsabilidades Colaboradores 
1ª responsabilidade 1º colaborador 
2ª responsabilidade 2º colaborador 
... ... 
nª responsabilidade mº colaborador 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 48 
• Exemplo 
Modelagem CRC 
ContaBancaria (entidade) 
Responsabilidades Colaboradores 
1 – Conhecer o seu cliente Cliente 
2 – Conhecer o seu número Historico 
3 – Conhecer o seu saldo HistoricoTransacoes 
4 – Manter um histórico de transações 
5 – Aceitar saques e depósitos 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 49 
Modelagem CRC 
Dicas para atribuição de responsabilidades: 
 
• Associar responsabilidades com base na especialidade da 
classe: 
– Fronteira 
– Entidade 
– Controle 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 50 
Modelagem CRC 
Dicas para atribuição de responsabilidades: 
 
• Distribuir a inteligência do sistema; 
• Não sobrecarregar uma ou um conjunto de classes; 
 
– Exemplo: Um objeto Pedido tem a responsabilidade de saber o seu 
valor total implica que ele deve saber os subtotais de cada item; 
 
– Solução: Cada objeto ItemPedido é responsável por calcular seu 
subtotal, com a ajuda de um objeto Produto 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 51 
Modelagem CRC 
Dicas para atribuição de responsabilidades: 
 
• Agrupar responsabilidades conceitualmente relacionadas 
 
– Responsabilidades relacionadas devem ser mantidas em uma classe; 
 
– Não “espalhar” as responsabilidades; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 52 
Modelagem CRC 
Dicas para atribuição de responsabilidades: 
 
• Evitar responsabilidades redundantes: 
 
– Não repetir responsabilidades, criar uma nova classe ou escolher uma 
das classes para persistir a informação; 
 
– Lembrando-se da dica anterior... 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 53 
Tópicos 
• Diagrama de Classes 
 
• Responsabilidade e Colaboração 
 
• Identificação das Classes Iniciais 
 
• Construção do Modelo de Classes de Domínio 
 
 
 Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 54 
Criação do Modelo de Classes de 
Domínio 
• Após identificar classes e responsabilidades, deve-se verificar 
incoerências e inconsistências; 
 
• Depois devem ser definidas responsabilidades e colaborações 
entre as classes; 
 
• Esse modelo resumido comporá as classes de domínio. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 55 
Criação do Modelo de Classes de 
Domínio 
Definição das Prioridades de uma Classe 
 
• Após identificar as responsabilidades para atributos, deve-se 
verificar se os atributos: 
– Guardam valores atômicos 
 
– Não contém estrutura interna (complementa a anterior) 
 
– Aplica-se a todos os objetos da classe. Exemplo: É incoerente um 
atributo salário na classe Pessoa. 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 56 
Criação do Modelo de Classes de 
Domínio 
• É comum mapear responsabilidades de conhecer como 
atributos, mas as vezes uma associação é mais indicada. Ex.: 
 
– Atributo nomeCliente na classe Pedido, poderia ser trocada por uma 
associação entre Cliente e Pedido; 
– Se há a relação, não necessita de um atributo na classe fazendo 
referência. Confusão com o modelo relacional. 
 
 
 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 57 
Criação do Modelo de Classes de 
Domínio 
• É comum também no início definir um identificador para as 
classes. 
 
• No modelo de classes de domínio, não é necessário. 
 
• Isso não quer dizer que atributos que são identificadores 
naturais não possam ser definidos: 
– CPF 
– Código de um produto ou pedido 
– Número de matrícula 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 58 
Criação do Modelo de Classes de 
Domínio 
• Os atributos dependem do contexto: 
 
– Para um sistema de recursos humanos, uma Pessoa possui matrícula, 
nome, salário, data de contratação. 
 
– Para um sistema que guarda informações criminais: fotografia, peso, 
altura... 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 59 
Criação do Modelo de Classes de 
Domínio 
 
• As responsabilidades de fazer são as operações: 
 
• No início é difícil de identificar todas as operações; 
 
• Os diagramas de interação ajudam a identificar; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 60 
Criação do Modelo de Classes de 
Domínio 
Associações e agregações 
 
• Se uma classe colabora com outra, deve haver relacionamentosentre elas; 
 
• As agregações são identificadas quando percebe-se uma 
relação todo-parte entre elementos das classes; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 61 
Criação do Modelo de Classes de 
Domínio 
Classes associativas 
• Surgem quando há uma responsabilidade de saber que não 
pode ser atribuída a uma das classes; 
• Muitas pessoas trabalham em muitos projetos: 
– Quantas horas uma pessoa trabalha em cada projeto? Não pode ser 
atribuído a pessoa, nem a projeto; 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 62 
Criação do Modelo de Classes de 
Domínio 
Documentando o modelo de classes 
• Após identificar classes, responsabilidades e colaboradores, os 
mesmos devem ser organizados em um documento; 
 
• Na diagramação, as associações devem poder ser lidas da 
esquerda para direita ou de baixo para cima; 
 
• Podem ser definidos estereótipos para as classes: 
<<fronteira>>, <<entidade>> e <<controle>> 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 63 
Criação do Modelo de Classes de 
Domínio 
Documentando o modelo de classes 
 
• A construção de um único diagrama para todas as classes pode 
ser complexo; 
 
• Uma alternativa é criar uma VCP (Visão de Classes 
Participantes) para cada caso de uso; 
 
• As VCPs podem ser juntadas para formar um único diagrama, 
se ficar muito grande pode-se esconder as classes de fronteira 
ou até as de controle. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 64 
Criação do Modelo de Classes de 
Domínio 
Documentando o modelo de classes 
 
• Além do diagrama, deve haver uma documentação textual; 
 
• Pode-se utilizar os cartões CRC, com a adição de um pequeno 
texto para descrever a classe; 
 
• A medida que o desenvolvimento evolui, novos detalhes são 
adicionados. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 65 
Criação do Modelo de Classes de 
Domínio 
• Após construir o modelo de classes de domínio, deve-se 
retornar aos casos de uso para verificar inconsistências; 
 
• Há uma estrita relação entre os casos de uso e as classes de 
domínio: 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 66 
Criação do Modelo de Classes de 
Domínio 
• A construção do diagrama de classes é um processo 
incremental; 
 
• É necessário um pouco de experiência dos modeladores; 
 
• As classes de domínio sofrerão mudanças, principalmente 
quando adiciona-se aspectos dinâmicos: Diagrama de 
Interações e Diagrama de Estados 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 67 
Estudo de Caso 
• Páginas 130 a 137 do livro texto. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 68 
Exercício 
• Construir o modelo de casos de uso, e o modelo de classes de 
domínio para um caixa eletrônico. Considere inicialmente os 
casos de uso: Realizar Saque e Realizar Depósito. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 69 
Referências 
• BEZERRA, Eduardo. Princípios de Análise e Projeto de 
Sistemas com UML. Rio de Janeiro: Editora Campus, 2006. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 70

Outros materiais