Você está na página 1de 50

Análise e Projeto de Sistemas

Aula 4
Modelagem de Classes de Domínio

Prof. Jorge Viana Doria Junior, M.Sc.


jjunior@unicarioca.edu.br
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
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

3
Conteúdo da Aula

• Modelagem de Classes de Domínio


– Identificando as Classes
– Identificando relacionamentos entre Classes

4
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.

5
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.

6
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.

7
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. Processo de
Desenvolvi-
• O modelo de classes de especificação mento de
Software
é 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.
8
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.

9
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

10
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.

11
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

12
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.

13
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.

14
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

15
Resultado

17
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.

18
Exemplo (Classe ContaBancária)

19
Exercício
•• Elaborar
Elaborar um
um diagrama
diagramade declasses
classes aapartir
partirdo
doprocesso
processo de
de
vistoria
vistoria de
de um
um carro
carro no
no Detran
Detran
–– OOmotorista
motorista agenda
agenda aa vistoria
vistoria do
do seu
seu veículo
veículopara
parauma
uma
determinada
determinada data.
data.OOveículo
veículopode
podeser
serumumcarro,
carro,moto
motoou ou
caminhão.
caminhão.OOagendamento
agendamentoda davistoria
vistoriapode
podeacontecer
acontecerporpor22
meios:
meios: telefone ou internet.
–– OOveículo
veículopossui
possuium
umproprietário,
proprietário, masmasoutra
outrapessoa
pessoa pode
pode
fazer
fazer
a
avistoria,
vistoria,desde
desdeque
queela
elaseja
sejadevidamente
devidamenteregistrada
registradaeeautorizada
autorizada
–– AAvistoria
vistoriapode
podeser
serfeita
feitaem
emvários
váriospostos.
postos. Os
Os postos
postos estão
estão
localizados
localizadosem embairros
bairros ee possuem
possuem uma uma quantidade
quantidade de
de cabines
cabines
determinadas.
determinadas. Os Osmaiores
maiorespostos
postospossuem
possuem12 12cabines,
cabines,osos
menores,
menores,apenas
apenas4.4.
–– AAvistoria
vistoriapossui
possui22tipos
tiposdedeavaliação.
avaliação. AA avaliação
avaliação de
de segurança
segurança ee
aaavaliação
avaliaçãodedeemissão
emissãode deCO2.
CO2.Apenas
Ambas veículos
as avaliações
com idade
podemmaior
ter
que
resultados
5 anos positivos
fazem a avaliação
ou negativos
de CO2.
duranteAmbas
a vistoria.
as avaliações
podem ter resultados positivos ou negativos durante a vistoria.

20
Conteúdo da Aula

• Modelagem de Classes de Domínio


– Identificando as Classes
– Identificando relacionamentos entre Classes

21
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.

22
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

23
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.

24
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

25
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.

26
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 li..ls

27
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..*

28
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.

29
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

30
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.

31
Exemplo (Nome de Associação,
Direção de Leitura e Papéis)

Nome da Direção
Papel associação de leitura

Papel

contratante Contrata contratado


Organização Indivíduo
* *

32
Direção das Associações

• Uma associação, no modelo conceitual, deve


ser não-direcional.

33
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:


Afiliada membro
AssociaçãoEsportiva Equipe Jogador
* * * *

34
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?
35
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

36
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

37
Exemplo (Associação Reflexiva)

Supervisão

supervisor 1
*
Empregado
supervisionado

38
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.

39
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.

40
Classe Associativa

• Utilizamos Classes de Associação (Classe


Associativa) quando desejamos acrescentar
atributos ou métodos a uma associação.

• IMPORTANTE: os atributos ou métodos da


classe de associação se referem a um e
somente um par formado pelas instâncias
das classes associadas. Se puder existir
mais de um par formado pelas mesmas
instâncias das classes associadas, NÃO
podemos usar classes de associação!

41
Notação para uma Classe Associativa

• Exemplo:
Empresa PessoaFisica
Empresa PessoaFisica
0..1 *

1
1
0..1
Contrato *
Contrato
+dataContratacao
+dataDesligamento +dataContratacao
+dataDseligamento

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.

43
Exemplo (Associação Ternária)

Projeto
Técnico 1 1
Uso nome
nome
verba

Computador
modelo

44
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.

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
Elaborar um
um diagrama
diagramade declasses
classes aapartir
partirdo
doprocesso
processo de
de
vistoria
vistoria de
de um
um carro
carro no
no Detran
Detran
–– OOmotorista
motorista agenda
agenda aa vistoria
vistoria do
do seu
seu veículo
veículopara
parauma
uma
determinada
determinada data.
data.OOveículo
veículopode
podeser
serumumcarro,
carro,moto
motoou ou
caminhão.
caminhão.OOagendamento
agendamentoda davistoria
vistoriapode
podeacontecer
acontecerporpor22
meios:
meios: telefone ou internet.
–– OOveículo
veículopossui
possuium
umproprietário,
proprietário, masmasoutra
outrapessoa
pessoa pode
pode
fazer
fazer
a
avistoria,
vistoria,desde
desdeque
queela
elaseja
sejadevidamente
devidamenteregistrada
registradaeeautorizada
autorizada
–– AAvistoria
vistoriapode
podeser
serfeita
feitaem
emvários
váriospostos.
postos. Os
Os postos
postos estão
estão
localizados
localizadosem embairros
bairros ee possuem
possuem uma uma quantidade
quantidade de
de cabines
cabines
determinadas.
determinadas. Os Osmaiores
maiorespostos
postospossuem
possuem12 12cabines,
cabines,osos
menores,
menores,apenas
apenas4.4.
–– AAvistoria
vistoriapossui
possui22tipos
tiposdedeavaliação.
avaliação. AA avaliação
avaliação de
de segurança
segurança ee
aaavaliação
avaliaçãodedeemissão
emissãode deCO2.
CO2.Apenas
Ambas veículos
as avaliações
com idade
podemmaior
ter
que
resultados
5 anos positivos
fazem a avaliação
ou negativos
de CO2.
duranteAmbas
a vistoria.
as avaliações
podem ter resultados positivos ou negativos durante a vistoria.

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.

48
Resolução (Opção 1)

49
Resolução (Opção 2)

50

Você também pode gostar