Projeto da Camada de Domínio

Slides:



Advertisements
Apresentações semelhantes
Projeto – Parte II - Exemplos de Diagrama de Colaboração
Advertisements

DIAGRAMA DE COLABORAÇÃO
Modelagem de Estados.
Aula 8 Contratos.
UML Modelando um sistema.
Projeto 1.
Diagrama de Classes.
Contratos de Operação.
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Diagramas de Seqüência
Orientação a Objetos: Encapsulamento e Classificação
Linguagens de Modelagem para SMA
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.
Projeto de Software Orientado a Objetos
Contratos em Projeto OO
Padrões GoF – Factory Method
Modulo I Padrões GRASP Professores
Atividade de Projeto Design
Linguagem de Programação
(Linguagem de Modelagem Unificada)
Programação orientada a objetos com Java
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
Introdução Visão Geral do Método.
Padrões para Atribuições de Responsabilidades
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Contratos Modelagem Funcional.
Geração de Código.
Modelagem de Interações
Diagramas de Sequência e Comunicação
Diagramas de Seqüência
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
Prof. Dr. Daniel D. Abdala Baseada nas transparências de professor Leandro Becker.
Diagrama de Classes e Colaboração
Diagrama de Classes Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição de detalhes ao modelo conceitual.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 11. Comunicação Objetivo: compreender a notação do diagrama de.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
UML Diagrama de classes.
UML - Unified Modeling Language
Diagramas de Comunicação
Instrutor: Objetivos:.
Análise Orientada Objeto
Análise Orientado aos Objetos Prof. Wolley W. Silva
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Padrão- MVC Model, View, Controller
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios.
Construtores e Destrutores
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Modelo de Análise e Projeto
Projetando Objetos com Responsabilidades
Fluxo de Análise e Projeto 7 - Atividade Projetar Classes.
Expansão dos Casos de Uso
Contratos Modelagem Funcional.
Atividade de Projeto Design. O Que é Projeto OO? É desvendar a caixa-preta de um objeto :Sistema Como o objeto complexo :Sistema deveria ser definido?
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Linguagem de Programação I Parte IV
Palavras-Chaves Linguagem gráficas e utilizações de símbolos.
Modelagem de Sistemas Orientada a Objeto Com UML
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Metodologia de modelagem etapa 7
Diagrama de Colaboração
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Projeto de Arquitetura de Software
18/1/2016 Professor Leomir J. Borba- – CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS.
Análise e Design de Software Site:
GRASP: Projeto de Objetos com Responsabilidade – Parte 2.
Transcrição da apresentação:

Projeto da Camada de Domínio Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP)

Projeto da Camada de Domínio Diagramas de Colaboração (Comunicação na UML 2) permitem realizar a modelagem dinâmica do sistema, ou seja, como os objetos que fazem parte da arquitetura trocam mensagens para realizar suas responsabilidades.

Em relação ao Modelo Conceitual, o DCP apresenta: Adição dos métodos Adição da direção das associações Possível detalhamento dos atributos e associações Possível alteração na estrutura das classes e associações Possível criação de atributos privados ou protegidos

Pseudocódigo concentrador

Diagrama de Colaboração

Código com Responsabilidades Distribuídas

Visibilidade Por associação. Quando as classes de dois objetos estão associadas no DCP Por parâmetro. Quando um objeto recebe outro como parâmetro em um método Localmente declarada. Quando um objeto recebe outro como retorno de um método Global. Quando um objeto é declarado globalmente

Visibilidade por Associação (para 1)

Visibilidade por Associação (para muitos)

Visibilidade por Parâmetro

Visibilidade Localmente Declarada

Visibilidade por Associação (qualificada – sem qualificador)

Visibilidade por Associação (qualificada – com qualificador)

Visibilidade por Associação (0..1)

Estabelecida por Pré-Condição de Contrato existe um Pagamento associado à Venda

Visibilidade de Classes de Associação

Do ponto de vista da classe de associação:

Com visibilidade para uma instância associada

Influência das Pré-Condições de Contrato nos Diagramas Garantia de Parâmetros (associação não qualificada)

Influência das Pré-Condições de Contrato nos Diagramas Garantia de Parâmetros (associação qualificada)

Realização das Pós-Condições dos Contratos nos Diagramas Mensagens básicas. São aquelas que efetivamente realizam aquilo que a pós-condição requer Mensagens delegadas. Passam adiante a responsabilidade de realizar uma operação básica quando o objeto que detém o controle da execução não possui visibilidade direta para o objeto que deve executar a operação

Mensagens Básicas Criação de instância Destruição de instância Criação de associação Destruição de associação Consulta de associação Alteração de valor de atributo Consulta de valor de atributo

Criação de Instância

Cria e imediatamente associa

Destruição de Instância

Criação de Associação Método implementado na origem da associação

Criação de Associação Associação bidirecional

Destruição de Associação Implementação na origem

Modificação de Valor de Atributo

Delegação Faculta o acoplamento fraco

Estilo de projeto sem delegação

Estilo de projeto com delegação

Pós-condição condicionada

Contribuições dos Diagramas de Colaboração ao DCP Métodos delegados. Sempre que um objeto receber uma mensagem delegada, a classe correspondente ao objeto deve registrar a implementação deste método Sentido das associações. O sentido das associações no DCP corresponderá ao sentido do envio das mensagens sobre as ligações de visibilidade baseadas em associações

Design Patterns Básicos Especialista Criador Acoplamento Fraco Coesão Alta

Especialista Quem implementa a consulta “valorTotalDaVenda”?

Pseudocódigo que não atende ao padrão Especialista

Pseudocódigo que atende ao padrão especialista

Criador – quem deve criar uma instância? Em primeiro lugar, verifique se o objeto é parte de uma agregação ou composição. Se for, o criador será o objeto agregador Caso contrário, verifique se alguma classe tem associação de 1 para * ou de 1 para 0..1 para a classe do objeto a ser criado. Se existir uma classe nessa situação e ela estiver em algum caminho possível na direção do controlador, então ela poderá ser a criadora Se houver empate, decida pela classe que parecer mais fortemente associada à classe a ser criada. Esse critério é subjetivo, mas é exatamente onde entra o julgamento o projetista sobre qual a opção mais adequada para fazer um caminho de delegação até a operação básica de criação de um objeto

Quem cria quem?

Acoplamento fraco Evite a criação de novos acoplamentos

Acoplamento definido pelo modelo conceitual e mantido pelo pseudocódigo que atende ao padrão especialista (anterior)

Acoplamento definido pelo pseudocódigo que não atende ao padrão especialista (anterior)

Coesão alta Verifique se o valor de algum atributo determina a possibilidade de outro atributo ser nulo ou não Verifique se existem subgrupos de atributos que estejam fortemente correlacionados Verifique se existem grupos de atributos que repetirão sempre os mesmos valores quando ocorrerem em diferentes instâncias

Exemplo de classe com baixa coesão

Solução com alta coesão