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

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

Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,

Apresentações semelhantes


Apresentação em tema: "Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,"— Transcrição da apresentação:

1

2 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba

3 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Tópicos 1 - Visão Geral de Orientação a Objetos e UML 2 - Visão Geral do Fluxo de Análise e Projeto 3 - Atividade Analisar de Caso de Uso 4 - Atividade Projetar Arquitetura 5 - Atividade Projetar Caso de Uso 6 - Atividade Projetar Subsistema 7 - Atividade Projetar Classe Aspectos de Concorrência, Distribuição e Projeto de Base de Dados não serão abordados

4 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Referências Descrição do fluxo de análise e projeto –Link para o RUP a partir da página do curso Capítulos 8 e 9 do livro The Unified Software Development Process –Uma observação importante é que o CD do RUP apresenta um único fluxo para análise e projeto, enquanto no livro são dois fluxos independentes The Unified Modeling Language User Guide –Introdução e consultas eventuais à notação de UML

5 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 1 - Visão Geral de Orientação a Objetos e UML

6 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Objetivos Apresentar os princípios do paradigma de orientação a objetos Apresentar os conceitos de orientação a objetos com a notação UML correspondente

7 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Princípios básicos de OO Abstração Encapsulamento Modularidade Herança

8 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Abstração Construção de um modelo para representação de uma realidade Concentração nas características essenciais, gerenciando complexidade

9 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Abstração - Objetos do mundo real cliente gado automóvel

10 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Abstração - construção de um modelo para a realidade Automovel modelo preco... atualizaPreco()...

11 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Encapsulamento Elimina dependência de implementação, escondendo-a do cliente Uso de interfaces Mudanças internas não têm impacto sobre os clientes

12 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Encapsulamento - Objeto televisão

13 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Número Saldo ,32 Crédito Débito Encapsulamento: Objeto conta bancária

14 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Modularidade Decomposição de um problema em pequenos pedaços, para gerenciar complexidade Cada conceito independente deve ser representado por um módulo Construção de módulos desacoplados Dividir para conquistar...

15 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Modularidade

16 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Herança Criação de hierarquias de abstração Permite ordenar hierarquias relacionadas Base conceitual para permitir extensibilidade do software Reuso de código e comportamento (subtipo)

17 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Herança Figura RetânguloTriângulo Polígono ContaEspecialPoupança Conta

18 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Herança: Objeto poupança Número Saldo ,32 Crédito Débito R. Juros

19 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Conceitos básicos de OO Objeto Classe Interface Componente Pacote Subsistema Relacionamentos

20 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classe Descrições de objetos com propriedades e comportamento comuns Abstração que –enfatiza o que é relevante –suprime o que não interessa Classes são fábricas de objetos Objetos são agrupados em classes

21 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classes de Objetos Quantas classes temos aqui? Fonte: Rational

22 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classe de Contas Bancárias

23 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classe em UML Conta Nome da Classe Conta Atributos Operações numero saldo credito() debito() getSaldo() getNumero() estrutura comportamento

24 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Objeto Modelo de um objeto real –entidade física, conceitual ou de software Possui comportamento, estado e identidade Exemplo: objetos conta e poupança apresentados

25 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Objeto em UML : Conta ContaSaque : Conta ContaSaque Apenas o nome da classe Apenas o nome do objeto Nome da classe e do objeto

26 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Objeto em UML : ContaDeposito numero = saldo = 500,00 : ContaSaque numero = saldo = 875,32 Conta numero saldo Valor do Atributo Objeto

27 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Polimorfismo Escondendo diferentes implementações através de uma única interface Manufacturer B Manufacturer CManufacturer A Fonte: Rational interface bem definida

28 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Interface Interfaces formalizam polimorfismo Interfaces permitem o uso de arquitetura baseada em componentes Relacionamento de realização Círculo Pirâmide Cubo Desenhar Mover ModificarTamanho Rotacionar > Forma Fonte: Rational

29 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exemplo: Repositório de Contas ListaContas RepositorioBDR RepositorioBDOO Incluir Remover credito debito > Repositorio Fonte: Rational

30 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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 implementam interfaces –provêem implementação para os métodos especificados em uma interface

31 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Interface em UML Círculo Pirâmide Cubo Desenhar Mover ModificarTamanho Rotacionar Representação Canônica Representação com ícone Forma > Forma Círculo Pirâmide Cubo Fonte: Rational

32 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classe abstrata Classe abstrata é aquela que não possui instância Em geral, possui pelo menos um método abstrato Métodos abstratos não têm corpo –devem ser implementados em subclasses não abstratas

33 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Classes abstratas x Interfaces Herança de tipos x herança de código Classes descrevem propriedades fundamentais de um objeto Interfaces descrevem papéis desempenhados por um objeto em determinadas situações Interfaces são úteis para implementar herança múltipla

34 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Componente Parte 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

35 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Componente em UML Source File Name > Executable Name > Component Name Component Interface

36 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Pacote Mecanismo para organizar elementos em grupos Facilita entendimento do sistema Favorece modularidade e reuso em larga escala Essencial para estruturar sistemas complexos Package Name

37 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Coesão e Acoplamento Acoplamento é a medida de quão conectadas duas classes são –cuidado com herança Coesão é a medida de quão auto- contida uma classe é Sistemas devem ter baixo acoplamento e alta coesão –bom para manutenção

38 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Subsistema União de –pacote (agrupa outros elementos) –classe (comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento

39 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Subsistema em UML Subsistema Interface Realização > Subsystem Name

40 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

41 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Relacionamentos Associação –simples –agregação –composição Dependência Generalização Realização

42 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Associação Relação estrutural entre classes Pessoa Empresa trabalha Associação Nome da associação Classe Empregado Empregador Papéis

43 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

44 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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 DepartamentoEmpresa TodoParte Composição

45 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

46 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Dependência Pode existir relacionamento de dependência entre vários elementos de UML Classe Pacote PacoteFornecedor Componente ClienteFornecedor Cliente PacoteCliente Dependência Fonte: Rational

47 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exercício - Relacionamentos Modele os relacionamentos existentes entre as classes abaixo: UniversidadeDepartamentoEstudanteDisciplinaInstrutor

48 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

49 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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..* , 4..6

50 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exemplo: Multiplicidade Pessoa Empresa Multiplicidade 1..*1

51 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

52 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exemplo: Navegação Pessoa Empresa Navegação 1..*1

53 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exercício - Multiplicidade Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.

54 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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)

55 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Generalização Uma subclasse pode –adicionar atributos, operações e relacionamentos –redefinir operações herdadas Tipos de herança: simples e múltipla

56 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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

57 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Herança Múltipla Classes herdando de mais de uma classe ObjetoVoadorAnimal Herança múltipla Avião HelicópteroPássaro Lobo Cavalo Fonte: Rational

58 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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?

59 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Realização Subsistema Componente Classe Caso de usoRealização de Caso de uso Indica que um elemento serve como contrato que o outro deve seguir Exemplos :

60 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Exercício - Generalização Modele a hierarquia de classes de uma aplicação bancária com contas correntes (contas comuns, sem cheque especial), poupanças e contas especiais (contas com certo crédito).

61 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Mecanismos adicionais de UML Estereótipos Notas Propriedades (T agged values) Restrições

62 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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 >

63 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Estereótipos - Exemplo Classes de fronteira: ClasseFronteira > ClasseFronteira

64 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Notas Anotação utilizada para adicionar informação a diagramas –Pode ser associada 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.

65 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 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} LeitoraCartao {location=server}

66 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Paradigma de Orientação a Objetos Benefícios –Favorece modularidade, extensibilidade, compatibilidade e reuso, suportando a evolução do sistema –Aproxima-se do mundo real –Uso do mesmo conceito em todas as fases do desenvolvimento

67 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Respostas dos Exercícios

68 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Relacionamentos Resposta do exercício UniversidadeDepartamentoEstudanteDisciplinaInstrutor vinculado inscritoministra alocado no coordena

69 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Multiplicidade Resposta do exercício UniversidadeDepartamentoEstudanteDisciplinaInstrutor vinculado inscritoministra alocado no coordena ***1..* * * 1 *

70 Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio Todos os direitos reservados. Generalização Resposta do exercício Conta-correnteContaPoupançaConta especial


Carregar ppt "Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,"

Apresentações semelhantes


Anúncios Google