Buscar

[04] APS Modelgaem de Classes

Prévia do material em texto

1
Análise e Projeto de Sistemas
Aula 4
Modelagem de Classes de Domínio
Prof. Rafael Targino
rtargino@unicarioca.edu.br
2
O conteúdo desta aula foi parcialmente 
baseado nos slides disponíveis do livro:
Engenharia de Requisitos
Ricardo de Almeida Falbo, Notas de Aula, UFES, 2012
Princípios de Análise e Projeto de Sistemas com UML
Eduardo Bezerra, Campus, 1a edição, 2006 
2
3
Resumo Até Aqui
• Paradigma Orientado a Objetos
• Processo de Desenvolvimento de Software
• Modelagem de Negócios com Diagrama de 
Atividades
• Modelagem de Casos de Uso
4
Conteúdo da Aula
• Modelagem de Classes de Domínio
– Identificando as Classes
– Identificando relacionamentos entre Classes
3
5
Análise de Domínio
• Descoberta das informações que são 
gerenciadas no sistema
– Representação e transformação da informação.
• Ocorre em pelo menos duas fases do 
Processo Unificado.
– Na fase de concepção (RUP) pode-se fazer um 
modelo conceitual preliminar.
– Na fase de elaboração (RUP) este modelo é 
refinado e complementado.
6
Caracterização do Modelo Conceitual
• Deve ser independente da solução 
tecnológica que virá a ser adotada.
• Deve conter apenas elementos referentes ao 
domínio do problema em questão.
• O diagrama da UML utilizado para 
representar o modelo conceitual é o 
diagrama de classes.
• O modelo de classes é composto desse 
diagrama e da descrição textual associada.
4
7
Modelo de Classes
• O modelo de classes evolui durante o 
desenvolvimento do sistema.
–À medida que o sistema é desenvolvido, o 
modelo de classes é incrementado com 
novos detalhes.
• Três níveis sucessivos de abstração:
–Domínio
–Especificação
– Implementação. 
8
Modelo de classes
• O modelo de classes de domínio
representa as classes no domínio do 
negócio em questão. Não leva em 
consideração restrições inerentes à 
tecnologia a ser utilizada na solução de 
um problema.
• O modelo de classes de especificação
é obtido através da adição de detalhes ao 
modelo anterior conforme a solução de 
software escolhida.
• O modelo de classes de 
implementação corresponde à 
implementação das classes em alguma 
linguagem de programação.
Processo de 
Desenvolvi-
mento de 
Software
5
9
Classes
• Uma classe representa um grupo de objetos 
semelhantes.
• Uma classe descreve esses objetos através 
de atributos e operações.
• Os atributos correspondem às informações 
que um objeto armazena.
• As operações correspondem às ações que 
um objeto sabe realizar.
10
Atributos
• São os tipos escalares e representam uma 
característica ou qualidade associada a uma 
classe
• NÃO são estruturas de dados como listas, 
tabelas e arrays
• São sempre representados no contexto de 
uma classe
6
11
Identificando Classes
• De uma forma geral, a identificação de 
classes se divide em duas atividades. 
– Primeiramente, classes candidatas são 
identificadas.
– Depois disso, são aplicados alguns princípios para 
eliminar classes candidatas desnecessárias.
• Identificar possíveis classes para um sistema 
não é complicado; o difícil é eliminar deste 
conjunto o que não é necessário. 
12
Identificando Classes
• A identificação de classes pode ser feita a 
partir dos documentos produzidos na 
Elicitação e Análise de Requisitos
– Identificação Inicial
• Documento de Descrição do Problema / 
Descrição do Negócio
– Identificação Posterior
• Modelo de Casos de Uso
• Diagrama de Atividades
7
13
Identificando Classes
• Cada Documento de Descrição do Negócio 
ou Caso de Uso é analisado para identificar 
classes candidatas. 
• Premissa: a partir da descrição textual dos 
documentos, podem-se derivar as classes 
do sistema.
– a existência de uma classe em um sistema só 
pode se justificar se ela participa de alguma 
forma para o comportamento externamente 
visível do sistema.
14
Identificando Classes
• Os substantivos que aparecem no texto 
são destacados. 
– São também consideradas locuções equivalentes 
a substantivos. 
• Sinônimos são removidos.
• Vantagem: abordagem é bastante simples. 
• Desvantagem: depende de como o texto e 
os casos de uso foram escritos.
– em linguagem natural, as formas de expressar 
uma mesma idéia são bastante numerosas.
8
15
Identificando Atributos de uma 
Classe
• Os textos que indicam posse e 
responsabilidade estão relacionado a 
atributos de uma determinada classe
– Um pedido possui o valor total e a data prevista
de entrega
– Um cliente tem nome, idade e sexo
– Uma venda acontece em uma determinada data
9
17
Resultado
18
Notação para uma Classe
• Representada através de uma “caixa” com 
no máximo três compartimentos exibidos. 
• Notação utilizada depende do nível de 
abstração desejado.
10
19
Exemplo (Classe ContaBancária)
20
Exercício
• Elaborar um diagrama de classes a partir do processo de 
vistoria de um carro no Detran
– O motorista agenda a vistoria do seu veículo para uma 
determinada data. O veículo pode ser um carro, moto ou 
caminhão. O agendamento da vistoria pode acontecer por 2 
meios: telefone ou internet.
– O veículo possui um proprietário, mas outra pessoa pode fazer a 
vistoria, desde que ela seja devidamente registrada e autorizada
– A vistoria pode ser feita em vários postos. Os postos estão 
localizados em bairros e possuem uma quantidade de cabines 
determinadas. Os maiores postos possuem 12 cabines, os 
menores, apenas 4.
– A vistoria possui 2 tipos de avaliação. A avaliação de segurança e 
a avaliação de emissão de CO2. Ambas as avaliações podem ter 
resultados positivos ou negativos durante a vistoria.
• Elaborar um diagrama de classes a partir do processo de 
vistoria de um carro no Detran
– O motorista agenda a vistoria do seu veículo para uma 
determinada data. O veículo pode ser um carro, moto ou 
caminhão. O agendamento da vistoria pode acontecer por 2 
meios: telefone ou internet.
– O veículo possui um proprietário, mas outra pessoa pode fazer 
a vistoria, desde que ela seja devidamente registrada e autorizada
– A vistoria pode ser feita em vários postos. Os postos estão 
localizados em bairros e possuem uma quantidade de cabines
determinadas. Os maiores postos possuem 12 cabines, os 
menores, apenas 4.
– A vistoria possui 2 tipos de avaliação. A avaliação de segurança e 
a avaliação de emissão de CO2. Apenas veículos com idade maior 
que 5 anos fazem a avaliação de CO2. Ambas as avaliações 
podem ter resultados positivos ou negativos durante a vistoria.
11
21
Conteúdo da Aula
• Modelagem de Classes de Domínio
– Identificando as Classes
– Identificando relacionamentos entre Classes
22
Associações
• Para representar o fato de que objetos 
podem se relacionar uns com os outros, 
utiliza-se a associação.
• Uma associação representa relacionamentos 
(ligações)que são formados entre objetos 
durante a execução do sistema.
– embora as associações sejam representadas 
entre classes do diagrama, tais associações 
representam ligações possíveis entre objetos das 
classes envolvidas. 
12
23
Identificação de Associações entre 
Classes
• Os verbos que são usado para conectar um 
substantivo a outro (que já foram 
identificados na etapa anterior) podem 
indicar possíveis associações entre classes
– O Comprador compra Livros
– O Comprador seleciona um Endereço para 
Entregra
24
Identificação de Associações entre 
Classes
• O fato de uma classe possuir colaboradores 
indica que devem existir relacionamentos 
entre estes últimos e a classe. 
– Isto porque um objeto precisa conhecer o outro para 
poder lhe fazer requisições.
– Portanto, para criar associações, verifique os 
colaboradores de uma classe.• O raciocínio para definir associações 
reflexivas, ternárias e agregações é o 
mesmo.
13
25
Notação para uma Associação
• Representada através de um segmento de 
reta ligando as classes cujos objetos se 
relacionam.
• Exemplos: 
Cliente Produto
ContaCorrente HistóricoTransações
Hóspede Quarto
26
Multiplicidades 
• Representam a informação dos limites 
inferior e superior da quantidade de objetos 
aos quais um outro objeto pode estar 
associado.
• Cada associação em um diagrama de classes 
possui duas multiplicidades, uma em cada 
extremo da linha de associação.
14
27
Multiplicidades
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 l
i
..l
s
28
Exemplo (Multiplicidade)
• Pode haver um cliente que esteja associado 
a vários pedidos.
• Pode haver um cliente que não esteja 
associado a pedido algum.
• Um pedido está associado a um, e somente 
um, cliente. 
Cliente Pedido
1 0..*
15
29
Participação
• Uma característica de uma associação que 
indica a necessidade (ou não) da existência 
desta associação entre objetos. 
• A participação pode ser obrigatória ou 
opcional.
– Se o valor mínimo da multiplicidade de uma 
associação é igual a 1 (um), significa que a 
participação é obrigatória
– Caso contrário, a participação é opcional. 
30
Armadilha da Obrigatoriedade
• A toda venda corresponde um pagamento.
• Mas isso não torna a associação obrigatória, 
pois a venda pode existir sem um 
pagamento.
• Um dia ela possivelmente será paga, mas 
ela pode existir sem o pagamento por algum 
tempo.
• Então esse papel não é obrigatório para a 
venda
16
31
Nome de associação, direção de 
leitura e papéis 
• Para melhor esclarecer o significado de uma 
associação no diagrama de classes, a UML 
define três recursos de notação:
– Nome da associação: fornece algum significado 
semântico a mesma.
– Direção de leitura: indica como a associação 
deve ser lida
– Papel: para representar um papel específico em 
uma associação.
32
Exemplo (Nome de Associação, 
Direção de Leitura e Papéis) 
contratante
*
contratado
*
Contrata
Organização Indivíduo
Papel
Nome da
associação
Papel
Direção
de leitura
17
33
Direção das Associações
• Uma associação, no modelo conceitual, deve 
ser não-direcional.
34
Agregação 
• É um caso especial da associação
– consequentemente, multiplicidades, participações, papéis, 
etc. podem ser usados igualmente
• Utilizada para representar conexões que guardam 
uma relação todo-parte entre si.
• Em uma agregação, um objeto está contido no 
outro, ao contrário de uma associação.
• Onde se puder utilizar uma agregação, uma 
associação também poderá ser utilizada. 
Notação para Agregação:
JogadorEquipe
*
membro
*
AssociaçãoEsportiva
* *
Afiliada
18
35
Agregação 
• Características particulares:
– Agregações são assimétricas: se um objeto A é 
parte de um objeto B, B não pode ser parte de A.
– Agregações propagam comportamento, no 
sentido de que um comportamento que se aplica 
a um todo automaticamente se aplica as suas 
partes. 
• Sejam duas classes associadas, X e Y. Se 
uma das perguntas a seguir for respondida 
com um sim, provavelmente há uma 
agregação onde X é todo e Y é parte.
– X tem um ou mais Y?
– Y é parte de X?
36
Composição
• A Composição é uma agregação mais forte; 
nela, a existência do Objeto-Parte NÃO faz 
sentido se o Objeto-Todo não existir. 
• Exemplo: itemPedido não existe se não 
existir Pedido
19
37
Associações Reflexivas
• Associa objetos da mesma classe.
– Cada objeto tem um papel distinto na associação.
• A utilização de papéis é bastante importante 
para evitar ambigüidades na leitura da 
associação.
• Uma associação reflexiva não indica que um 
objeto se associa com ele próprio.
– Ao contrário, indica que objetos de uma mesma 
classe se associam
38
Exemplo (Associação Reflexiva)
Empregado
supervisor 1
supervisionado
*
Supervisão
20
39
Herança (Generalização e Especialização)
• Usada para fatorar propriedades.
• Só existe entre classes (não entre instâncias)
• Se A é generalização de B então instâncias de B 
também são instâncias de A e possuem os 
mesmos atributos e associações.
40
Classe Associativa
• É uma classe que está ligada a uma 
associação, ao invés de estar ligada a outras 
classes.
• É normalmente necessária quando duas ou 
mais classes estão associadas, e é 
necessário manter informações sobre esta 
associação.
• Uma classe associativa pode estar ligada a 
associações de qualquer tipo de 
conectividade. 
21
41
Notação para uma Classe Associativa
• Representada pela notação utilizada para 
uma classe. A diferença é que esta classe é 
ligada a uma associação.
• Exemplo:
nome
telefone
endereço
Pessoa
razãoSocial
endereço
Empresa
salário
dataContratação
Emprego
*
empregado
*
empregador
42
Associações n-árias
• São utilizadas para representar a associação 
existente entre objetos de n classes.
• Uma associação ternária são uma caso 
mais comum (menos raro) de associação n-
ária (n = 3). 
• Na notação da UML, as linhas de associação 
se interceptam em um losango.
22
43
Exemplo (Associação Ternária)
Uso
nome
Técnico
modelo
Computador
nome
verba
Projeto
1 1
*
Exercício – Verdadeiro ou Falso
• A partir deste modelo foram elaboradas as seguintes 
assertivas: 
I. O modelo permite identificar inequivocamente as cidades de 
origem e destino de um voo. 
II. Um piloto só pode comandar os voos da empresa para a 
qual trabalha. 
III. Toda cidade é atendida por pelo menos um voo. 
23
45
Exercício – Verdadeiro ou Falso
• I. FALSO - O relacionamento liga não permite 
distinguir origem e destino, talvez um atributo seja 
suficiente para isso mas este não é especificado no 
diagrama. 
• II. FALSO - Esta condição poderia ser satisfeita 
fazendo-se um relacionamento ternário entre as três 
entidades. Da forma como as relações estão 
definidas não há qualquer relação entre os o 
"trabalha", o "comanda" e o "pertence", logo um 
piloto pode trabalhar para uma empresa e 
comandar um outro avião que não pertença a esta. 
• III. FALSO - Toda cidade é atendida por pelo menos 
um aeroporto, entretanto, um aeroporto pode não 
ser ligado por qualquer voo
46
Exercício
• Elaborar um diagrama de classes a partir do processo de 
vistoria de um carro no Detran
– O motorista agenda a vistoria do seu veículo para uma 
determinada data. O veículo pode ser um carro, moto ou 
caminhão. O agendamento da vistoria pode acontecer por 2 
meios: telefone ou internet.
– O veículo possui um proprietário, mas outra pessoa pode fazer a 
vistoria, desde que ela seja devidamente registrada e autorizada
– A vistoria pode ser feita em vários postos. Os postos estão 
localizados em bairros e possuem uma quantidade de cabines 
determinadas. Os maiores postos possuem 12 cabines, os 
menores, apenas 4.
– A vistoria possui 2 tipos de avaliação. A avaliação de segurança e 
a avaliação de emissão de CO2. Ambas as avaliações podem ter 
resultados positivos ou negativos durante a vistoria.
• Elaborar um diagrama de classes a partir do processo de 
vistoria de um carro no Detran
– O motorista agenda a vistoria do seu veículo para uma 
determinada data. O veículo pode ser um carro, moto ou 
caminhão. O agendamento da vistoria pode acontecer por 2 
meios: telefone ou internet.
– O veículo possui um proprietário, mas outra pessoa pode fazer 
a vistoria, desde que ela seja devidamente registrada e autorizada
– A vistoria pode ser feitaem vários postos. Os postos estão 
localizados em bairros e possuem uma quantidade de cabines
determinadas. Os maiores postos possuem 12 cabines, os 
menores, apenas 4.
– A vistoria possui 2 tipos de avaliação. A avaliação de segurança e 
a avaliação de emissão de CO2. Apenas veículos com idade maior 
que 5 anos fazem a avaliação de CO2. Ambas as avaliações 
podem ter resultados positivos ou negativos durante a vistoria.
24
47
Exercício – parte 2
• Ao chegar em um posto de vistoria o motorista deve informar o 
código do agendamento ao responsável pela triagem. O responsável 
pela triagem irá confirmar o agendamento no sistema, conferir a 
documentação e indicar o número da cabine que o motorista deverá 
se dirigir.
• Se as avaliações foram positivas, o motorista é encaminhado para o 
protocolo de entrega de documento. Neste protocolo, ele espera ser 
chamado, enquanto o setor administrativo imprime o novo 
documento do veículo.
• Se a avaliação for negativa, o motorista é liberado para resolver o 
problema e retornar para uma nova vistoria. Se ele resolver o 
problema no mesmo dia, ele pode retornar o posto, passar 
novamente pela triagem e fazer uma nova vistoria apenas no item 
que foi reprovado. Neste caso o avaliador realizará uma reavaliação 
de um ou mais itens de vistoria e informará o resultado, assim como 
fez na avaliação inicial.
• Se o motorista não resolver o problema no mesmo dia, ele deverá 
agendar uma nova vistoria.

Continue navegando