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

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

UML no CICLO de DESENVOLVIMENTO
UML Modelando um sistema.
Projeto 1.
Diagrama de Classes.
Engenharia de Software
Rational Unified Process(RUP)
Valéria Maria Lauande Março/2010
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Mapeamento Objeto Relacional
Projeto de Software Orientado a Objetos
Diagrama de Classes.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
RUP: Fluxo de Análise e Projeto
Geração de Código.
Projeto da Camada de Domínio
Classes e objetos Modelagem
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Diagrama de Classes e Diagrama de Objetos
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
Diagrama de Classes e Colaboração
Visão Geral do RUP.
DIAGRAMA DE CLASSE Modelagem de Software
Profa Simone Sawasaki Tanaka
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Metolodogia de Desenvolvimento de Data Warehouse
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
Diagramas de classes rational rose. introdução interação classes atributos, operações associações associação, agregação, composição, generalização, dependência.
PSBD II Projeto de Sistemas de Banco de Dados II
Marcio de Carvalho Victorino
Análise e Projeto de Sistemas
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
Analisar Caso de Uso 10/04/ /04/2017 Analisar caso de uso
Análise Orientado aos Objetos Prof. Wolley W. Silva
Marcio de Carvalho Victorino
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
RUP - Cap. 4 – Processo Centrado na Arquitetura
Laboratório de Programação
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios.
Abr-17 Analisar Caso de Uso Analisar caso de uso.
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Orientação a Objetos com UML
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Abr-17 Projetar Subsistema Projetar subsistema.
Modelo de Análise e Projeto
5 - Atividade Projetar Caso de Uso
Fluxo de Análise e Projeto 6 - Atividade Projetar Subsistema.
2 - Visão Geral do Fluxo de Análise e Projeto
Arquitetura de Software Projetos de Interface
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Orientação a Objetos com UML. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões|
Engenharia de Software Fluxo de Requisitos
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
Análise e Projeto de Sistemas
Professora: Kelly de Paula Cunha
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo.
Interações entre objetos
Projetar Base de Dados. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar base de dados | 2 Objetivos deste.
Diagrama de Classes Herança Dependências.
Analisar Caso de Uso. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Projeto de Arquitetura de Software
Analisar Caso de Uso. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Analisar caso de uso | 2 Objetivos deste módulo.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Transcrição da apresentação:

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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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)

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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( );

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 20 Passo 5. Refinar relacionamentos Detalhar as associações entre as classes –tipo –navegabilidade –multiplicidade Avaliar relacionamentos de generalização

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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?

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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)

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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)

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio Todos os direitos reservados. 32 Fonte: Rational Classificação  11 Metamorfose: a solução Estudante nome endereco matricula EstudanteParcial numMaxDisciplinas EstudanteIntegral dataGraduacao

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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

Fluxo de Análise e Projeto Maio, 2000Copyright CESAR-Qualiti, Maio 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