A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2.

Apresentações semelhantes


Apresentação em tema: "Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2."— Transcrição da apresentação:

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


Carregar ppt "Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2."

Apresentações semelhantes


Anúncios Google