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

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

Fluxo de Análise e Projeto 7 - Atividade Projetar Classes.

Apresentações semelhantes


Apresentação em tema: "Fluxo de Análise e Projeto 7 - Atividade Projetar Classes."— Transcrição da apresentação:

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


Carregar ppt "Fluxo de Análise e Projeto 7 - Atividade Projetar Classes."

Apresentações semelhantes


Anúncios Google