Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Tema 04 
Modelo de Classes de Análise
Professor
Alberto Tavares da Silva
1
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
❑ As funcionalidades de um SSOO são realizadas internamente através de 
colaborações entre objetos.
▪ Externamente, os atores visualizam resultados de cálculos, relatórios 
produzidos, confirmações de requisições realizadas, etc.
▪ Internamente, os objetos colaboram uns com os outros para produzir 
os resultados.
❑ Essa colaboração pode ser vista sob o aspecto dinâmico e sob o aspecto 
estrutural estático. 
❑ O modelo de classes representa o aspecto estrutural e estático dos objetos 
que compõem um SSOO.
2
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ O modelo de classes evolui durante o desenvolvimento do 
SSOO.
▪ À medida que o SSOO é desenvolvido, o modelo de objetos é 
incrementado com novos detalhes.
▪ Há três níveis sucessivos de detalhamento:
▪ Análise → Especificação (Projeto) → Implementação. 
3
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Objetivo da Modelagem de Classes
Prover respostas para as seguintes perguntas:
▪ Por definição um sistema OO é composto de objetos...em 
um nível alto de abstração, que objetos constituem o 
sistema em questão?
▪ Quais são as classes candidatas?
▪ Como as classes do sistema estão relacionadas entre si?
▪ Quais são as responsabilidades de cada classe?
4
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Modelo de Análise: Foco no Problema
▪ O modelo de análise não representa detalhes da solução do 
problema.
▪ Embora este sirva de ponto de partida para uma posterior definição das 
classes de software (especificação).
Venda
data
hora
Venda
-data:Date
-hora:Time
+getTotal():Currency
Pagamento
quantia 1 1Pago-por
Pagamento
-quantia: Currency
+getValor(): Currency
1 1Pago-por
Projeto (Especificação)
Análise
5
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ Um diagrama de classes mostra a existência das classes e os 
seus relacionamentos numa visão lógica e estática do sistema
▪ A UML modela os elementos de um diagrama de classes:
▪ Classes, sua estrutura e comportamentos.
▪ Associações, agregações e relacionamentos de herança.
▪ Multiplicidade e indicadores de navegação.
6
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Uma classe descreve um conjunto de objetos com:
▪ propriedades semelhantes;
▪ comportamentos semelhantes;
▪ relacionamentos comuns com outros objetos.
A classe é uma fábrica de objetos.
Classe Pessoa
Objeto João Objeto Ana
Classificação
Instanciação
7
Classe
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Classes
Uma classe descreve esses objetos através de atributos e 
operações.
Atributos > correspondem às informações que um objeto armazena.
Operações > correspondem às ações que um objeto sabe realizar.
Notação na UML: “caixa” com no máximo três compartimentos 
exibidos. 
Detalhamento utilizado depende do estágio de desenvolvimento e do 
nível de abstração desejado.
8
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Classe - Diagramação 
Nome da Classe
Atributos
Operações
9
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Exemplo (classe ContaBancária)
10
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Atributos
▪ A estrutura da classe é representada por seus atributos.
▪ Os atributos podem ser encontrados examinando-se as 
definições das classes, as suas características e aplicando-se o 
conhecimento do domínio.
Cada Aluno tem uma 
matrícula, nome, 
endereço
Aluno
matrícula
nome
endereço
11
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Operações
• O comportamento da classe é representado por operações
• As operações podem ser encontradas examinando-se os diagramas 
de interação 
Coordenação
addCurso (Aluno, Curso)
Formulário de 
Registro
Coordenação
Add Curso(João,Inglês)
12
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Relacionamentos
Os relacionamentos ligam as classes/objetos entre si criando 
relações lógicas entre estas entidades. 
Podem ser:
▪ Associação.
▪ Especialização/Generalização (Herança).
▪ Agregação/ composição.
13
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ Relação que descreve um conjunto de vínculos entre classes.
▪ Em relação ao número de classes envolvidas na associação, uma 
associação pode ser unária, binária ou n-ária.
▪ Uma associação entre classes é o equivalente ao relacionamento 
entre conjuntos de entidades, do DER.
Associações
14
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Funcionário
Lotação1..* 1
é lotado Lota
Departamento
Nome da Associação
Papéis
Multiplicidade
Multiplicidade
Associação Binária
15
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Funcionário Chefiar
*
1
é chefiado
chefia
Associação Reflexiva 
16
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Associação Ternária
Funcionário
*
*
Departamento
Projeto
*
17
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Multiplicidades 
▪ Representam a informação dos limites inferior e superior da 
quantidade de objetos aos quais outro objeto pode se associar.
▪ Cada associação em um diagrama de classes possui duas 
multiplicidades, uma em cada extremo da linha de associação.
Nome Simbologia na UML
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
18
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Associações - Multiplicidades
Classe
1 Exatamente um
Classe
* Muitos (zero ou mais)
Classe
0..1 Zero ou um
19
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Exemplos (multiplicidade)
Exemplo:
– 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. 
Exemplo:
– Uma corrida está associada a, no mínimo, dois velocistas 
– Uma corrida está associada a, no máximo, seis velocistas. 
– Um velocista pode estar associado a várias corridas.
20
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Conectividade
▪ A conectividade corresponde ao tipo de associação entre duas 
classes: “muitos para muitos”, “um para muitos” e “um para 
um”.
▪ A conectividade da associação entre duas classes depende dos 
símbolos de multiplicidade que são utilizados na associação.
Conectividade Em um extremo No outro extremo
Um para um 0..1
1
0..1
1
Um para muitos 0..1
1
*
1..*
0..*
Muitos para muitos *
1..*
0..*
*
1..*
0..*
21
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Exemplos de Conectividade
gerencia gerenciado
1 0..1
alocado aloca
0..* 1
alocado aloca
0..* 1..*
22
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Associação - Agregação
▪ Forma especial de Associação que serve para mostrar que uma 
determinada classe de objetos é composta por outra classe.
▪ Semanticamente indica que o objeto parte é um atributo do 
objeto todo (é-parte-de).
▪ A agregação oferece uma variação denominada COMPOSIÇÃO .
23
TimeTorneio
0..* *
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ O objeto parte só tem existência se o objeto todo existir. 
▪ A multiplicidade da associação é sempre 1 do lado do objeto 
todo. 
▪ A representação é feita colocando-se um losango cheio do lado 
do objeto todo.
Item PedidoPedido
1 1..*
Associação - Composição
24
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Associações - Agregação
▪ A existência do objeto parte é independentedo objeto todo, 
podendo, inclusive, fazer parte de mais de um objeto todo.
▪ A representação é feita colocando-se um losango vazio do lado 
do objeto todo.
TimeTorneio
0..* *
25
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Classe associativa
▪ Classe que está ligada a uma associação, em vez 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. 
▪ Sinônimo: classe de associação.
26
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Notação para Classes Associativas
▪ Notação é semelhante à utilizada para classes ordinárias. A 
diferença é que esta classe é ligada a uma associação por uma linha 
tracejada. 
▪ Exemplo: para cada par de objetos [pessoa, empresa], há duas informações 
associadas: salário e data de contratação.
27
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Classe Associativa
28
Fornecedor 1..*1..* Produto
Fornecimento
quantidade
fornece fornecido
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Classe Associativa
29
Médico 1..*1..* Paciente
Consulta
data
diagnóstico
atende atendido
Exame
solicita solicitado
0..*0..*
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Herança
▪ Generalização/Especialização é a abstração que permite compartilhar 
semelhanças, preservando diferenças
30
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ É um relacionamento entre em elemento mais geral (superclasse) e um 
elemento mais específico (subclasse).
▪ Indica que a superclasse tem atributos, operações e associações comuns 
que são compartilhados por todas as subclasses derivadas.
▪ Um objeto de uma subclasse é um tipo-de objeto da superclasse.
Herança
Funcionário
Engenheiro Motorista
31
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Herança
▪ Mecanismo para modelar similaridades entre classes, representando 
as abstrações de generalização e especialização. 
▪ A herança possibilita:
▪ Reutilização;
▪ Captura explícita de características comuns;
▪ Facilidade de manutenção;
▪ Facilidade de criar novas classes.
▪ O desenvolvimento orientado a objetos é fortemente baseado na 
construção de hierarquias de classes.
32
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Herança
public class ClAluno extends ClPessoa {
private String matricula;
private String email;
//construtor
public ClAluno() {
super("");
matricula = new String("");
email = new String("");
}
public ClAluno(String nome, String matricula, String email){
super(nome);
this.matricula = matricula;
this.email = email;
}
public void Imprime(){
System.out.println("Aluno nome: " + super.nome + " matrícula: " + matricula + " E-mail: " + email);
}
}
33
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
▪ Uma classe abstrata é aquela no qual um ou mais métodos são declarados 
mas não definidos.
▪ Quando se deriva uma classe a partir de uma classe abstrata não há 
necessidade de definirem todos os métodos abstratos na subclasse; nesse 
caso, a subclasse também será abstrata.
▪ Não se pode instanciar um objeto a partir de uma classe abstrata, mas 
pode-se fazer referência a uma classe abstrata por meio de um objeto de 
uma sub-classe.
Classe Abstrata
34
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Classe Abstrata
• Uma classe que provê organização.
35
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
Classe Abstrata
public abstract class ClPessoa {
protected String nome;
public ClPessoa(String nome) {
this.nome = nome;
}
public abstract void show();
}
36
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
▪ Uma interface é essencialmente uma coleção de atributos e métodos 
abstratos que podem ser implementados numa classe.
▪ Quando o programador deseja declarar um conjunto de métodos que 
serão implementados apropriadamente num conjunto de classes e 
que serão usados posteriormente, ele pode dispensar a definição de 
uma superclasse e obter o mesmo resultado usando interfaces.
Interface
37
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Pessoa
Professor Aluno
IMatricula
Interface
38
Engenharia de Software – Prof Tavares
Modelo de Classes de Análise
public interface IMatricula {
void ImprimeMatricula();
}
Interface
39
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Herança - Restrições
▪ Sobreposição - objetos podem ocorrer simultaneamente em mais de 
uma subclasse de uma mesma superclasse.
▪ Disjunção - objetos só podem pertencer a uma subclasse de uma 
mesma superclasse.
▪ Completo - todas as subclasses estão representadas.
▪ Incompleto - Nem todas as subclasses estão representadas.
Funcionário
Engenheiro Motorista
{disjunção, incompleto} {sobreposição, completo}
Pessoa
Cliente Funcionário
40
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
▪ Especifica condições e proposições que devem ser satisfeitas nas 
associações. 
▪ A restrição é colocada entre chaves, sobre a linha que representa a 
associação.
Associações - Restrições
Cliente 1..*1
realiza
Pedido
{Se nível de crédito insuficiente,
pagamento à vista}
realizado
41
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Modelagem de Objetos 
m1
m4 m2
m3
m1
m4 m2
m3m1
m4 m2
m3
dados
dados
dados
Msg 1
Msg 2
Msg 3
ator
Paradigma objeto/mensagem/método
42
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
Diagrama de Objetos
▪ Além do diagrama de classes, a UML define um segundo tipo de 
diagrama estrutural, o diagrama de objetos.
▪ Pode ser visto com uma instância de diagramas de classes
▪ Representa uma “fotografia” do sistema em um certo momento.
▪ exibe as ligações formadas entre objetos conforme estes 
interagem e os valores dos seus atributos.
43
 
2678: Contrato de Aluguel 
Num_Contrato : 2678 
Veículo : "BMW 914" 
2679: Contrato de Aluguel 
Num_Contrato : 2679 
Veículo : "Audi V8" 
Pablo: Cliente 
Nome : "Pablo F. Barros" 
Idade : 20 
CPF : 94168912-15 
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
PedidoItemPedidoProduto
nome = "Caderno M"
descrição = "Caderno em espiral tamanho médio"
preçoUnitário = 4,50
desconto = 15
produto20 : Produto
nome = "Caneta ESF"
descrição = "Caneta esferográfica 5mm"
preçoUnitário = 1,20
desconto = 2
produto12 : Produto
nome = "Esquadro"
descrição = "Esquadro de acrílico 20 cm"
preçoUnitário = 2,35
desconto = 10
produto07 : Produto
quantidade = 20
item2 : ItemPedido
quantidade = 6
item1 : ItemPedido
quantidade = 1
item3 : ItemPedido
data = 13/09/2002
hora = 10:00am
Pedido1 : Pedido
Diagrama de Objetos
45
Modelo de Classes de Análise
Engenharia de Software – Prof Tavares
possui {tipoDeParticipante = 'Autor' 
e possui artigo aceito na Área}
{situaçãoFinalDoArtigo = 
'Aprovado'}
Avaliação
conceito
conceituarArtigo( )
{tipoDeParticipante = 'Avaliador' }
{tipoDeParticipante = 'Autor' }
apresenta
1..1
é apresentada 
por
1..*
é patrocinador por1..*
patrocina*
Patrocinador
códigoDoPatrocinador
nomeDoPatrocinador
incluirPatrocinador( )
alterarPatrocinador( )
excluirPatrocinador( )
participa
1..*
Pessoa
identidadeDePessoa
nomeDePessoa
endereçoDePessoa
empresaDePessoa
incluirPessoa( )
alterarPessoa( )
excluirPessoa( )1..*
é alocado
*
aloca
1..1
determina 0..1
corresponde1..1
é composto 1..*
Congresso
códigoDoCongresso
títuloDoCongresso
frequênciaDoCongresso
dataDoCongresso
localDoCongresso
incluirCongresso( )
alterarCongresso( )
1..*
1
1..*
1..*
compõe
1..*
é incrito por 1..*
inscreve 1..*
avalia
1..*
é avaliado por3..*
Artigo
códigoDoArtigo
títuloDoArtigo
palavrasChaveDoArtigosituaçãoFinalDoArtigo
incluirArtigo( )
alterarArtigo( )
atribuirSituacaoFinal( )
é presidida por *
Sessão
códigoDaSessãp
dataDaSessão
salaDaSessão
incluirSessao( )
alterarSessao( )
excluirSessao( )
1..11..*
preside1..1
vincula
1..*
Área
códigoDaÁrea
descriçãoDaÁrea
incluirArea( )
alterarArea( )
*1..1
0..1
1..1
1..*
1..*
é ivinculado
1..*
Participante
númeroDeInscrição
tipoDeParticipante
incluirParticipante( )
excluirParticipante( )
1..*
1..* 1..*
3..*
*
1..1
1..*
1..*
Diagrama de Classes de Projeto
46
Engenharia de Software– Prof Tavares
Modelo de Classes de Análise
47
Até a próxima!

Mais conteúdos dessa disciplina