Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouHenrique Vilalobos Valverde Alterado mais de 9 anos atrás
1
Fluxo de Análise e Projeto 7 - Atividade Projetar Classes
2
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 2 Analisar caso de uso ProjetistaProjetista de banco de dados Revisar projeto Projetar caso de uso ArquitetoRevisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes Projetar Classes
3
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 3 O que foi feito até agora Identificação das classes de análise, seus atributos, responsabilidades e relacionamentos Mapeamento das classes de análise em elementos de projeto Identificação das oportunidades de reuso Definição da organização do sistema Refinamento das realizações dos casos de uso (substituição dos elementos de análise por elementos de projeto) Distribuição do comportamento dos elementos dos subsistemas
4
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 4 Objetivos desta atividade Detalhar a estrutura interna (atributos e operações) das classes de projeto Identificar classes e relacionamentos adicionais Garantir que as classes fornecem o comportamento necessário à realização dos casos de uso Realizada para cada classe da iteração corrente
5
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 5 Na prática... Os passos desta atividade são realizados simultaneamente às atividades de projeto: –projeto da arquitetura; –projeto de casos de uso e –projeto de subsistemas Aqui o objetivo é rever o que foi feito, refinando e acrescentando detalhes
6
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 6 Visão geral dos artefatos Classes de projeto Projetar classes Realização de casos de uso Requisitos não funcionais Classes de projeto Modelo de análise e projeto
7
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 7 Passos para Projetar Classes 1. Identificar classes de projeto 2. Definir visibilidade da classe 3. Definir atributos 4. Definir operações 5. Refinar relacionamentos
8
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 8 Passo 1. Identificar classes de projeto Iniciado no projeto da arquitetura Classe de projeto já identificada dá origem a uma ou mais classes A estratégia de criação de classes faz uso do estereótipo definido na análise (fronteira, controle e entidade) Pode fazer uso de padrões de projeto (design patterns)
9
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 9 Projetando Classes de Fronteira Interface com usuário –depende da ferramenta de desenvolvimento a ser usada (de quanto pode ser automatizado) Interface com subsistemas externos –usualmente resulta em um subsistema –se for muito simples (servindo apenas como interface para uma API existente), deve resultar em uma ou mais classes de projeto
10
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 10 Projetando Classes de Entidade Normalmente dão origem a uma única classe Requisitos não funcionais (como performance) podem demandar alterações no projeto
11
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 11 > Exemplo +atributoMuitoUsado1 +atributoMuitoUsado2 +atributoPoucoUsado1 +atributoPoucoUsado2 Análise Exemplo + getAtributoMuitoUsado1 () + getAtributoMuitoUsado2 () + getAtributoPoucoUsado1 () + getAtributoPoucoUsado2 () ExemploEager +atributoMuitoUsado1 +atributoMuitoUsado2 ExemploLazy + atributoPoucoUsado1 + atributoPoucoUsado2 Projeto Alterações em função da performance Fonte: Rational
12
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 12 Projetando Classes de Controle Podem ser eliminadas –se não estiverem desempenhando nenhum papel adicional à classe fronteira correspondente Podem dar origem a uma única classe –se encapsulam algum fluxo de controle relevante Podem ser divididas –se o controle encapsulado for muito complexo ou para atender, por exemplo, requisitos de distribuição
13
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 13 A B Visibilidade Pública Visibilidade Privada Classe A1 Classe A2 Classe A3 +Classe B1 Pacote A Pacote B -Classe B2 Fonte: Rational Passo 2. Definir visibilidade da classe
14
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 14 Passo 3. Definir atributos Identificados a partir das informações que a classe necessita manter e descrição das operações Atributos derivados –avaliar questões de desempenho
15
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 15 Definir atributos Aspectos envolvidos –Nome, tipo e valor inicial (default) –Visibilidade atributos devem ser privados! –Escopo atributos de instância atributos de classe
16
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 16 Passo 4. Definir operações Mapear responsabilidades definidas na análise para operações que implementem essas responsabilidades Aspectos envolvidos –nome, assinatura e descrição da operação –visibilidade privado - protegido # público + –escopo: operação de classe ou de instância
17
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 17 Operações de classe e de instância Operações de instância são executadas por uma instância específica (um objeto) da classe –emitirExtrato( ); –creditar(valor:float); –... Operações de classe são executadas pela própria classe –getSaldoMinimo( );
18
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 18 Definindo Operações Decisões a serem tomadas: –parâmetros (passagem por valor ou referência, intervalo válido,...) –quanto menos parâmetros, melhor –passar objetos como parâmetros
19
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 19 calcularFrete(destino:Endereco): float Transporte Endereco Definindo Operações Classes e relacionamentos adicionais podem ser necessários para suportar a assinatura
20
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 20 Passo 5. Refinar relacionamentos Detalhar as associações entre as classes –tipo –navegabilidade –multiplicidade Avaliar relacionamentos de generalização
21
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 21 Menor nível de acoplamento Maior nível de acoplamento Tipo dos relacionamentos Dependência Associação Agregação Composição Generalização
22
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 22 Navegabilidade Que direções são necessárias? Analisar diagramas de interação Priorizar o uso de apenas uma direção quando: –o uso de uma das direções for infreqüente –o número de instâncias de uma das classes é pequeno
23
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 23 Navegabilidade: exemplo Espera-se que existam quantos produtos? Dado um fornecedor qualquer, ocorre com freqüência a busca pelos seus produtos?
24
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 24 Instrutor estaEnsinando( ) : Boolean Disciplina temInstrutor( ) : Boolean 0..* Multiplicidade Se o relacionamento é opcional, crie uma operação para testar a existência do relacionamento –garantir a existência da instância sendo utilizada
25
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 25 Avaliar relacionamentos de generalização Muito bom, mas… –usar com cautela Devem representar uma relação é-um –o descendente é um objeto do tipo do ancestral
26
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 26 Fonte: Rational Animal comer() Leão comer() Tigre comer() Pilha Lista inserirInicio (Item) inserirFim (Item) removerInicio() removerFim () inserir (Item, posicao) Avaliar relacionamentos de generalização
27
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 27 Factoring: compartilhamento de implementação Suporta o reuso de implementação de outra classe Não pode ser utilizado se a classe a ser utilizada não puder ser modificada
28
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 28 Compartilhamento de implementação: exemplo Lista Pilha inserirInicio( Item) removerFim () Lista inserirInicio (Item) removerFim () inserir (Item, posicao) Pilha Fonte: Rational ContainerSequencial inserirInicio (Item) inserirFim (Item) removerInicio() removerFim () inserir (Item, posicao)
29
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 29 Delegação Suporta o reuso de implementação de outra classe Pode ser utilizado se a classe a ser utilizada não puder ser modificada
30
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 30 Fonte: Rational Lista Pilha push (Item) pop () : Item 11 Pilha Delegação: exemplo inserirInicio (Item) inserirFim (Item) removerInicio() removerFim () inserir (Item, posicao) inserirInicio (Item) inserirFim (Item) removerInicio() removerFim () inserir (Item, posicao)
31
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 31 Fonte: Rational Estudante nome endereco matricula EstudanteParcial numMaxDisciplinas EstudanteIntegral dataGraduacao O que vai acontecer se um aluno “part-time” se tornar “full-time”? Metamorfose: o problema
32
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 32 Fonte: Rational Classificação 11 Metamorfose: a solução Estudante nome endereco matricula EstudanteParcial numMaxDisciplinas EstudanteIntegral dataGraduacao
33
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 33 Passos realizados nesta atividade 1. Identificar classes de projeto 2. Definir visibilidade da classe 3. Definir atributos 4. Definir operações 5. Refinar relacionamentos
34
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 34 Projeto em Equipes Data de entrega: 22/11/2000 A partir do documento de requisitos –Parte 1: Escolha três casos de uso relevantes e faça a análise (produzindo diagramas de interação e, em seguida um VOPC, com estereótipos, responsabilidades e associações para cada caso de uso; identifique classes persistenes
35
Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 35 Projeto em Equipes –Parte 2: Faça o projeto da arquitetura identificando subsistemas, interfaces, pacotes e camadas. Produza um diagrama de pacotes, relacione classes de análise em elementos de projeto, e agrupe elementos de projeto em camadas. –Parte 3: Faça o projeto de pelo menos um caso de uso, refazendo os diagramas de interação e o VOPC já incluindo elementos de projeto (deve ilustrar imclusão de persistência e interfaces de subsistemas) –Parte 4: Faça o projeto de um subsistema e de uma classe
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.