Visão Geral de Orientação a Objetos
com UML
OO e UML | 2
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ObjetivosApresentar os princípios do paradigma de orientação a objetosApresentar os conceitos de orientação a objetos com a notação UML correspondente
OO e UML | 3
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Princípios básicos de OOAbstraçãoEncapsulamentoModularidadeHerança
OO e UML | 4
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Abstração
cliente
gado
automóvel
OO e UML | 5
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
AbstraçãoConstrução de um modelo para representação de uma realidade
Concentração nas características essenciais, gerenciando complexidade
OO e UML | 6
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
AbstraçãoConstrução de um modelo para a
realidade
Automovelmodelopreco...atualizaPreco()...
OO e UML | 7
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
EncapsulamentoExemplos de encapsulamento usados no nosso “dia-a-dia”?
OO e UML | 8
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
EncapsulamentoElimina dependência de implementação, escondendo-a do clienteUso de interfacesMudanças internas não têm impacto sobre os clientes
OO e UML | 9
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Número Saldo
21.342-7 875,32
Crédito
Débito
Exemplo: objeto conta bancária
OO e UML | 10
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Modularidade
OO e UML | 11
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ModularidadeDecomposição de um problema em pequenos pedaços, para gerenciar complexidadeCada conceito independente deve ser representado por um móduloConstrução de módulos desacopladosDividir para conquistar ...
OO e UML | 12
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Herança
Figura
RetânguloTriângulo
Polígono
ContaEspecialPoupança
Conta
OO e UML | 13
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo: objeto poupança
Número Saldo
21.342-7 875,32
Crédito
Débito
R. Juros
OO e UML | 14
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
HerançaCriação de hierarquias de abstraçãoPermite ordenar hierarquias relacionadasBase conceitual para permitir extensibilidade do softwareReuso de código e comportamento (subtipo)
OO e UML | 15
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Conceitos básicos de OOObjetoClasseAtributoOperaçãoInterfaceComponentePacoteSubsistemaRelacionamentos
OO e UML | 16
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ObjetoModelo de um objeto real entidade física, conceitual ou
de softwarePossui comportamento, estado e identidadeExemplo: objetos conta e poupança apresentados
donut
OO e UML | 17
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Objeto em UML
: Conta
contaSaque :Conta
contaSaqueApenas o nome daclasse
Apenas o nome doobjeto
Nome da classe e doobjeto
OO e UML | 18
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ClasseDescrições de objetos com propriedades e comportamento comunsAbstração que enfatiza o que é relevante suprime o que não
interessa Classes são fábricas de objetosObjetos são agrupados em classes
OO e UML | 19
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classe de Contas Bancárias
OO e UML | 20
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classes de ObjetosQuantas classes temos aqui?
Fonte: Rational
OO e UML | 21
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classe em UML
Conta
Nome da Classe Conta
Atributos Operações
numerosaldo
credito()debito()getSaldo()getNumero()
estrutura
comportamento
OO e UML | 22
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
AtributoPropriedades de um objetoArmazenam estado dos objetos
númerosaldo
OO e UML | 23
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Atributo em UML
: Conta
numero = 23.025-1saldo = 500,00
: Conta
numero = 21.342-7saldo = 875,32
Conta
numerosaldo
Valor do Atributo
Objeto
OO e UML | 24
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
OperaçãoModela comportamento das classesServiços que os objetos oferecem a outros objetos
númerosaldo
creditar debitar
getNumero
OO e UML | 25
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Operação em UML
Conta
credito()debito()getSaldo()getNumero()
Especificação das operações
OO e UML | 26
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
PolimorfismoEscondendo diferentes implementações através de uma única interface
interface bem definida
OO e UML | 27
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
InterfaceInterfaces formalizam polimorfismoAumentam o nível de reusabilidadeViabilizam o uso de componentesReduzem o esforço de evolução da aplicação
OO e UML | 28
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
InterfaceInterfaces definem um tipo especificando apenas a assinatura de seus métodosInterfaces não possuem atributos e seus métodos não têm corpo
Classes implementam interfaces provêem implementação para os métodos
especificados em uma interface
OO e UML | 29
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Interface em UML
Porca8mm
Porca6mm
Porca4mm
ApertarAfrouxar
<<interface>>ChaveKit
Relacionamentos de realização
OO e UML | 30
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Interface em UML
ChaveKit
Relacionamentos de realização
Porca8mm
Porca6mm
Porca4mm
OO e UML | 31
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classe abstrataClasse abstrata é aquela que não possui instânciaEm geral, possui pelo menos um método abstratoMétodos abstratos não têm corpo subclasses não abstratas são obrigadas
a fornecer uma implementação para eles
OO e UML | 32
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classes, Interfaces e Classes Abstratas
Classes
• Atributos• Métodos
Classes Abstratas
• Atributos• Métodos• Assinatura de Métodos
Interfaces
• Assinaturas dos métodos
OO e UML | 33
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classes abstratas x Interfaces
Herança de tipos x herança de códigoClasses descrevem propriedades fundamentais de um objetoInterfaces descrevem papéis desempenhados por um objeto em determinadas situaçõesInterfaces são úteis para implementar herança múltipla
OO e UML | 34
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ComponenteParte não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s)Exemplos um código fonte um componente de tempo de execução
um componente executável
OO e UML | 35
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Componente em UML
Interface doComponente
Arquivo fonte<<DLL>>
Componente<<EXE>>Arquivo
executável
OO e UML | 36
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
PacoteMecanismo para organizar elementos em gruposFacilita entendimento do sistemaFavorece modularidade e reuso em larga escalaEssencial para estruturar sistemas complexos
nome do pacote
OO e UML | 37
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Coesão e AcoplamentoAcoplamento é a medida de quão conectadas duas classes são cuidado com herançaCoesão é a medida de quão auto-contida uma classe é
Sistemas devem ter baixo acoplamento e alta coesão bom para manutenção
OO e UML | 38
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
SubsistemaUnião de pacote (agrupa outros elementos) classe (comportamento)
Realiza uma ou mais interfaces, que definem o seu comportamento
OO e UML | 39
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Subsistema em UML
Subsistema
Interface
Realização
<<subsystem>>
Nome do subsistema
OO e UML | 40
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Subsistemas e Componentes
Ambos encapsulam um comportamento modelado por interfacesSubsistemas representam componentes no modelo de projetoComponentes são a realização física dos subsistemas
Projeto
Implementação
Nome do componente
<<subsystem>>Nome do subsistema
OO e UML | 41
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
RelacionamentosAssociação simples agregação composiçãoDependência GeneralizaçãoRealização
OO e UML | 42
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
AssociaçãoRelação estrutural entre classes
Pessoa
Pessoa Empresa
Empresa
trabalha
Associação
Nome da associação
Classe
Empregado Empregador
Papéis
OO e UML | 43
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
AgregaçãoTipo especial de associaçãoRelacionamento todo-parteO todo possui um nível de abstração maior que a parte
DepartamentoEmpresa
Todo Parte
Agregação
OO e UML | 44
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
ComposiçãoTipo especial de agregaçãoRelação de posse mais forteO todo é responsável pela criação da parteA parte não vive sem o todo
DepartamentoEmpresa
Todo Parte
Composição
OO e UML | 45
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Associação x Agregação x Composição
Como você modelaria: Dependente e Funcionário? Pedido e Item do pedido? Funcionário e Cartão de ponto? Carro, Roda, Direção e Carburador?
Na dúvida, use agregação!
Na dúvida, use associação!
OO e UML | 46
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
DependênciaRelacionamento não estrutural (uso) mais fraco que associação
Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro
CartãoLeitoraCartao
lerCartao (cartao) Relacionamentode Dependência
OO e UML | 47
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
DependênciaPode existir relacionamento de dependência entre vários elementos de UML
Classe
Pacote
PacoteFornecedor
ComponenteFornecedorCliente
PacoteClienteDependência
Fonte: Rational
FornecedorCliente
OO e UML | 48
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exercício (opcional) - Relacionamentos
Modele os relacionamentos existentes entre as classes abaixo:
Universidade Departamento
Estudante Disciplina Instrutor
OO e UML | 49
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Multiplicidade
Multiplicidade define quantos objetos participam do relacionamento O número de instâncias de uma classe
relacionada a uma instância de outra classe
Especificado em cada uma das pontas da associação
OO e UML | 50
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Tipos de MultiplicidadeNão especificadaExatamente umZero ou maisMuitos (mesmo que 0..*)Um ou maisZero ou umIntervalo determinadoValores múltiplos
1
0..*
*
1..*
0..1
2..4
2, 4..6
OO e UML | 51
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo: Multiplicidade
PessoaEmpresa
Multiplicidade
1..*1
OO e UML | 52
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Navegação
Especifica a direção da associaçãoAssociações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direçãoAssociações bidirecionais são mais difíceis de implementar
OO e UML | 53
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo: Navegação
PessoaEmpresa
Navegação
1..*1
OO e UML | 54
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exercício (opcional) - Multiplicidade
Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.
OO e UML | 55
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Generalização
Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classesDefine uma hierarquia de abstraçõesRelacionamento “é um tipo de” (is-a-kind-of)
OO e UML | 56
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Generalização
Uma subclasse pode adicionar atributos, operações e
relacionamentos redefinir operações herdadas
Tipos de herança: simples e múltipla
OO e UML | 57
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Herança Simples
Classes herdando de apenas uma outra classe
Círculoraiocentrodesenhar()
Retânguloverticesdesenhar()diagonal()
Figuracorlargura da linhadesenhar()girar(graus)selecionar()
Subclasses
Superclasse(pai)
Relacionamentode Generalização
Quadrado
OO e UML | 58
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Herança Múltipla
Classes herdando de mais de uma classe
Mamífero AnimalVoadorHerançamúltipla
Cachorro Gato Morcego Passarinho Gaviao
OO e UML | 59
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Herança Múltipla
O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome? O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método?
OO e UML | 60
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Realização
Realização
SubsistemaClasse
Caso de uso
Indica que um elemento serve como contrato que o outro deve seguir
Exemplos:
Componente
Realização de Caso de uso
OO e UML | 61
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Mecanismos adicionais de UML
EstereótiposNotasPropriedades (Tagged values)Restrições
OO e UML | 62
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Estereótipos
Mecanismo utilizado para estender os elementos de UMLDefine um novo modelo de elemento em termos de outro já existente Como criando um novo ícone utilizando a notação <<novo_elemento>>
OO e UML | 63
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Estereótipos - Exemplo
Classes de fronteira:
ClasseFronteira
<<boundary>>ClasseFronteira
OO e UML | 64
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
NotasAnotação utilizada para adicionar informação a diagramas Pode ser afixionada a qualquer elemento de UML Pode ser ligada a um elemento com uma linha tracejada
Exemplo:
LeitoraCartao
Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.
OO e UML | 65
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Propriedades (Tagged Values)
Servem para estender elementos UML, adicionando informações sobre elesExemplos já definidos em UML: Persistence Location (ex: no cliente, no servidor)
Você pode criar suas próprias propriedades
Cliente{persistence}
LeitoraCartao {location=server}
OO e UML | 66
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Restrições
Pessoa Empresa{subset}
Funcionário
Diretor1..* 1
3 1
Usadas para criação de novas regras sobre elementos do modeloOu modificação de regras existentes
OO e UML | 67
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Paradigma de Orientação a Objetos
Benefícios Favorece modularidade,
manutenibilidade e reuso Aproxima-se do mundo real Uso do mesmo conceito em todas as
fases do desenvolvimento
Top Related