Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLeandro Branco Antas Alterado mais de 8 anos atrás
1
Visão Geral e Conceitos
2
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos Apresentar os princípios e conceitos de orientação a objetos com a notação UML correspondente Importância de processos de software e padrões
3
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 3 Princípios básicos de OO Modelagem centrada em dados Por que não funções? Potencialmente, embutem características como Abstração Encapsulamento e information hiding modularidade Extensibilidade (herança) Polimorfismo
4
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 4 Abstração Construção de um modelo para representação de uma realidade Concentração nas características essenciais, gerenciando complexidade
5
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 5 Encapsulamento Agrupa elementos relacionados em uma unidade sintática (cápsula, módulo, classe, pacote,...)
6
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 6 Information hiding Elimina dependência de implementação, escondendo-a do cliente Uso de interfaces Implementado via mecanismos de controle de visibilidade Ex.: elementos privados em classes Java
7
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 7 Número Saldo 21.342-7 875,32 Crédito Débito Exemplo: objeto conta bancária Encapsulamento agregação de elementos Information hiding ocultamento de elementos
8
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 8 Modularidade
9
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 9 Modularidade Decomposição de um problema em partes menores, para gerenciar complexidade Cada conceito independente deve ser representado por um módulo (abstração) Construção de módulos desacoplados e coesos Dividir para conquistar...
10
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 10 Herança Figura RetânguloTriângulo Polígono ContaEspecialPoupança Conta
11
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 11 Herança Criação de hierarquias de abstração Base conceitual para permitir extensibilidade do software Reuso de código e comportamento (subtipo) Herança comportamental (behavioural inheritance) Referência clássica: A behavioral notion of subtyping (Liskov & Wing)
12
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 12 Polimorfismo Linguagens polimórficas permitem que valores e identificadores (variáveis e operações) possuam mais de um tipo Há vários tipos de polimorfismo: Paramétrico, de inclusão, overloading e coerção Referência clássica: On understanding types, data abstraction and polymorphism (Cardelli & Wegner)
13
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 13 Polimorfismo de inclusão Herança define polimorfismo Objeto da subclasse usado no lugar do objeto da classe Exemplo: uso de poupança em contextos onde contas são esperadas Interfaces também definem polimorfismo Reuso de tipo, mas não de código
14
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 14 Polimorfismo real ou paramétrico Forma mais pura de polimorfismo O mesmo objeto ou operação usada uniformemente em diferentes contextos (tipos só determinados em tempo de execução) Exemplo: generics em Java 1.5
15
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 15 Polimorfismo via overloading e coerção Overloading permite o uso do mesmo nome para vários elementos semânticos Exemplo: métodos ou construtores em Java Coerção é semelhante, mas inclui conversão implícita de tipos Exemplo: soma envolvendo um operando inteiro e outro real
16
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 16 Elementos básicos de OO em UML Objeto Classe Atributo Operação Interface Componente Pacote Subsistema Relacionamentos
17
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 17 Objeto em UML : Conta contaSaque : Conta contaSaque Apenas o nome da classe Apenas o nome do objeto Nome da classe e do objeto
18
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 18 Classe em UML Conta Nome da Classe Conta Atributos Operações numero saldo credito() debito() getSaldo() getNumero() estrutura comportamento
19
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 19 Atributo e cenários em UML : Conta numero = 23.025-1 saldo = 500,00 : Conta numero = 21.342-7 saldo = 875,32 Conta numero: String saldo: Real Valor do Atributo Objeto
20
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 20 Operação em UML Conta credito(valor:Real) debito(valor:Real) getSaldo(): Real getNumero(): String Especificação das operações
21
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 21 Visibilidade Marcações de acesso podem ser usadas para especificar o tipo de acesso permitido aos atributos e operações + público # protegido - privado
22
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 22 Interface Interfaces definem um tipo especificando apenas a assinatura de seus métodos Interfaces não possuem atributos e seus métodos não têm corpo Classes, subsistemas e componentes implementam interfaces provêem implementação para os métodos especificados em uma interface
23
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 23 Exemplo: Independência do meio de armazenamento Isolando as coleções de negócio de mudanças na coleção de dados correspondente RepositorioContasBDRRepositorioContasOOCadastroContas > RepositorioContas
24
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 24 Interface em UML: notação alternativa RepositorioContas Relacionamentos de realização RepositorioContasOO RepositorioContasXMLRepositorioContasBDR
25
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 25 Classe abstrata Classe abstrata não possui instância Em geral, possui pelo menos um método abstrato Métodos abstratos não têm corpo subclasses não abstratas são obrigadas a fornecer uma implementação para eles
26
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 26 Classes, Interfaces e Classes Abstratas Classes Atributos Métodos Classes Abstratas Atributos Métodos Assinatura de Métodos Interfaces Assinaturas dos métodos
27
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 27 Componente Parte não trivial, 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
28
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 28 Componente em UML Interface do Componente Arquivo fonte > Componente > Arquivo executável
29
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 29 Pacote Mecanismo para organizar elementos em grupos Facilita entendimento do sistema Favorece modularidade e reuso em larga escala Essencial para estruturar sistemas complexos nome do pacote
30
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 30 Coesão e Acoplamento Acoplamento é a medida de quão conectadas duas classes são Coesão é a medida de quão auto- contida uma classe é Sistemas devem ter baixo acoplamento e alta coesão
31
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 31 Subsistema União de pacote (agrupa outros elementos) classe (comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento
32
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 32 Subsistema em UML Subsistema Interface Realização > Nome do subsistema
33
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 33 Subsistemas e Componentes Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes são a realização física dos subsistemas Projeto Implementação Nome do componente > Nome do subsistema
34
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 34 Relacionamentos Associação simples agregação composição Dependência Generalização Realização
35
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 35 Associação Relação estrutural entre classes Pessoa Empresa trabalha Associação Nome da associação Classe Empregado Empregador Papéis
36
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 36 Agregação Tipo especial de associação Relacionamento todo-parte O todo possui um nível de abstração maior que a parte DepartamentoEmpresa TodoParte Agregação
37
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 37 Composição Tipo especial de agregação Relação de posse mais forte O todo é responsável pela criação da parte A parte não vive sem o todo Não permite compartilhamento DepartamentoEmpresa TodoParte Composição
38
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 38 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!
39
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 39 Dependência Relacionamento 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) Relacionamento de Dependência
40
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 40 Dependência Pode existir relacionamento de dependência entre vários elementos de UML Classe Pacote PacoteFornecedor Componente FornecedorCliente PacoteCliente Dependência Fonte: Rational FornecedorCliente
41
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 41 Exercício - Relacionamentos Modele os relacionamentos existentes entre as classes abaixo: UniversidadeDepartamento AlunoDisciplina Professor Curso Turma
42
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 42 Multiplicidade Multiplicidade define quantos objetos participam do relacionamento O número de instâncias de uma classe relacionadas a uma instância de outra classe Especificado em cada uma das pontas da associação
43
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 43 Tipos de Multiplicidade Não especificada Exatamente um Zero ou mais Muitos (mesmo que 0..*) Um ou mais Zero ou um Intervalo determinado Valores múltiplos 1 0..* * 1..* 0..1 2..4 2, 4..6
44
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 44 Exemplo: Multiplicidade Pessoa Empresa Multiplicidade 1..*1
45
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 45 Navegação Especifica a direção da associação Associações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direção Associações bidirecionais são mais difíceis de implementar
46
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 46 Exemplo: Navegação Pessoa Empresa Navegação 1..*1
47
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 47 Exercício - Multiplicidade Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior
48
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 48 Generalização Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes Define uma hierarquia de abstrações Relacionamento “é um tipo de” (is-a-kind-of) Herança comportamental
49
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 49 Generalização Uma subclasse pode adicionar atributos, operações e relacionamentos redefinir operações herdadas Tipos de herança: simples e múltipla
50
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 50 Herança Simples Classes herdando de apenas uma outra classe Círculo raio centro desenhar() Retângulo vertices desenhar() diagonal() Figura cor largura da linha desenhar() girar(graus) selecionar() Subclasses Superclasse (pai) Relacionamento de Generalização Quadrado
51
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 51 Herança Múltipla Classes herdando de mais de uma classe Mamífero AnimalVoador Herança múltipla Cachorro GatoMorcegoPassarinho Gaviao
52
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 52 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?
53
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 53 Realização Subsistema Classe Caso de uso Indica que um elemento serve como contrato que o outro deve seguir Exemplos: Componente Realização de Caso de uso
54
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 54 Exercício - Arquitetura Defina uma arquitetura simplificada da aplicação bancária (QIB)
55
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 55 Mecanismos adicionais de UML Estereótipos Notas Propriedades (Tagged values) Restrições OCL (Object Constraint Language)
56
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 56 Estereótipos Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro já existente Como criando um novo ícone utilizando a notação >
57
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 57 Estereótipos - Exemplo Classes de fronteira: ClasseFronteira > ClasseFronteira
58
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 58 Notas Anotaçã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: LeitorCartao Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.
59
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 59 Propriedades (Tagged Values) Servem para estender elementos UML, adicionando informações sobre eles Exemplos já definidos em UML: Persistence Location (ex: no cliente, no servidor) Você pode criar suas próprias propriedades Cliente {persistence} LeitorCartao {location=server}
60
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 60 Restrições Pessoa Empresa {subset} funcionários diretores 1..* 1 31 Usadas para criação de novas regras sobre elementos do modelo Ou modificação de regras existentes
61
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 61 OCL (Object Constraint Language) Empresa É uma linguagem usada para definir restrições sobre elementos do modelo ou modificação de restrições existentes Invariantes de classe Pré e pós-condições de operações context Empresa inv diretoresNecessarios: self.diretor->size() == 3
62
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 62 Diagramas UML Diagramas usados no curso serão apresentados sob demanda Seqüência Colaboração Classes Pacotes Estados Estrutura
63
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes 63 Processos e Padrões Orientação a objetos e DBC são paradigmas promissores, mas Reuso Extensibilidade Escalabilidade... exigem Processos Técnicas Disciplina Experiências anteriores de sucesso (padrões)!
64
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 64 Analisar Casos de Uso Revisar Projeto Projetar Arquitetura Projetista de Banco de Dados Arquiteto de Software Revisor de projeto Projetar Casos de Uso Projetar Subsistemas Projetar Base de Dados Analista de Sistemas Fluxo de Análise e Projeto decisões do arquiteto > Check List bla bla bla blabla Projetar classes
65
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes 65 Padrões de Projeto e Arquiteturais Projetistas experientes (re)utilizam soluções bem sucedidas no passado Padrões sistematizam soluções, incluindo Nome Problema Solução Conseqüência Exemplo,... Durante as duas última décadas, surgiu uma “comunidade” voltada a padrões
66
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Exemplo: Padrão Fachada 66 Fachada
67
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes 67 Anti-Padrões São uma maneira de documentar soluções recorrentes que não tiveram sucesso Podem também incluir soluções re-trabalhadas que sejam efetivas
68
Respostas dos Exercícios
69
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 69 Relacionamentos Resposta do exercício Universidade Departamento Aluno Disciplina Professor Curso Turma
70
Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 70 Multiplicidade Resposta do exercício Universidade Departamento Aluno Disciplina Professor Curso Turma 1..3 ** * 1 * * 1 1 * *1 1 1 * *
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.