GRASP: Projeto de Objetos com Responsabilidade. 2 Pauta Responsabilidades e métodos Responsabilidades e métodos Padrões Padrões GRASP: Padrões e princípios.

Slides:



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

Projeto de Software Orientado a Objetos
Padrões para Atribuições de Responsabilidades
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Modelagem Visual de Objetos Com UML
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Padrões GRASP.
Vamos conversar sobre … SPSS Aplicado à Pesquisa Acadêmica Antonio Pedro Castro Mota Amanda Reis Silva
Usando “Casos de Uso”. Ator Define um papel que o usuário terá quando interagir com o sistema. Uma entidade, tal como um outro sistema ou um banco de.
SPEM (Software Process Engineering Metamodel): Uma Linguagem para Modelagem de Processos de Software.
Técnicas de Representação de Conhecimento Regras de Produção.
Aula 5 Bioestatística. Estatísticas para uma variável.
NORMA Documento que formaliza certo nível de consenso a respeito do que foi discutido. Aquilo que é estabelecido como base para a realização ou avaliação.
Análise Orientada a Objetos Wedson Quintanilha da Silva
Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 29/5/ :40 1 Atividades: 1 - Criar uma base de dados para uma empresa.
Funções Prof. Márcio.
Introdução POO Thiago Medeiros Sistemas de Informação Definição: Sistemas de Informação é uma combinação de pessoas, dados, processos, redes de.
Modelagem de Dados Aula 1.
CONSELHO DELIBERATIVO ESCOLAR (OU CONSELHO ESCOLAR) ESPAÇO PARA EFETIVAÇÃO DA GESTÃO DEMOCRÁTICA NA ESCOLA FULANO DE TAL GERED DE
J. Rawls Teoria da Justiça (1971). Propõe uma teoria da justiça baseada no conceito duma sociedade ordenada racionalmente com base em princípios de justiça.
Tecnologias para Wireles LAN (IEEE ) Aula Computação Úbiqua Prof. Me. Diovani MIlhorim.
Cálculo Numérico Computacional Prof. Linder Cândido da Silva.
Aula 5. Teste de Hipóteses II. Capítulo 12, Bussab&Morettin “Estatística Básica” 7ª Edição.
1/6/2016 Computação Gráfica
Universidade Federal do Espírito Santo - UFES Laboratório de Computação de Alto Desempenho - LCAD Banco de Registradores e ALU Prof. Alberto F. De Souza.
Conhecimentos Pedagógicos – Aula 5 Professores PI e PII CMA Concursos
Professor: Gerson Leiria Nunes.  Análise dos sistemas discretos  Sistemas recursivos.
Média, Moda e Mediana Prof.: Adeilton Silva..
CONACEN UM NOVO INSTRUMENTO DE CONTROLE SOCIAL. Os conselhos de consumidores de energia elétrica foram criados por meio da Lei nº de 04 de março.
Curso de Pré Física UTFPR – CM 2014/01 Aula 10 Monitores: Hugo Brito Natalia Garcia
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
Adriano Mendonça Dante Guilherme Diego Juvêncio Eduardo Coelho Márcio R. Oliveira CURSO DE ENGENHARIA MECÂNICA.
1/13 Jogos de Empresas Prof. Fauzi Timaco Jorge UNIP Jogos de Empresas Prof. Fauzi Timaco Jorge UNIP.
Matemática Financeira. JUROS SIMPLES Juro e Consumo Existe juro porque os recursos são escassos. As pessoas têm preferência temporal: preferem consumir.
Modelagem de CASO DE USO
Normalização ISO 10002:2005 Tratamento de Reclamações
Aula – 05 – UNIDADE 1 O PAPEL DO PROFESSOR
Medidas de Tendência Central ou de Posição 2- MODA- mo 1.1-Para Dados não Agrupados indica a região das máximas freqüências – que se evidencia – que está.
OPERAÇÕES COM NÚMEROS NATURAIS
14 DE MAIO DE 2016 Os discípulos do Filho do Homem Depois disso designou o Senhor outros setenta, e os enviou adiante de si, de dois em dois, a todas as.
CONCEITOS NA ANÁLISE DE SISTEMAS ANÁLISE É O ESTUDO DE UM PROBLEMA QUE ANTECEDE À EXECUÇÃO DE UMA AÇÃO. ANÁLISE DE SISTEMAS NO DOMÍNIO ESPECÍFICO DO DESENVOLVIMENTO.
Cap 27 – O oligopólio. Sumário Introdução Diferentes estratégias – Liderança Quantidade – Liderança Preço – Simultâneo Quantidade – Simultâneo Preço –
Fundamentos do Comportamento Organizacional I AULA : capítulo 10: Liderança e confiança LIDERANÇA E CONFIANÇA CAPÍTULO 10.
DIREITO AMBIENTAL CAROLINNE FERNÁNDEZ DIREITO AMBIENTAL.
Disciplina: Análise e Projeto de Sistemas
Sistema para reserva de salas informatizadas via web Saulo Alexandre Corrêa Orientador: Oscar Dalfovo WAITAHA - Sistema para reserva de salas informatizadas.
CICLO BÁSICO GEOMETRIA OBJETIVOS Espera-se que o aluno:
Elaborado por Claudio V. Nasajon Como usar o business case a partir do curso The Art of Case Writing do Prof. José Dornelas (Babson.
Sistemas de Informação Prof. Me. Everton C. Tetila Dependências funcionais e normalização para bancos de dados relacionais Banco de Dados I.
Ciência da Computação Modelos Evolucionários e Tratamento de Incertezas Aula 07 Inferência Difusa Sistemas de Controle Difuso Max Pereira.
Determinantes e Sistemas Lineares parte I Profª Juliana Schivani Laplace (1749 – 1827) Pierre Sarrus (1798 – 1861) Jacobi (1804 – 1851)Cramer (1704 – 1752)
Aula 2: O foco no processo de aprendizagem organizacional ● A essência da “organização que aprende”
Implementação de Projetos Escolares para escolas que estão com baixo índice de desempenho no Saresp.
Padrões de Projeto Aula 14 – Padrão Abstract Factory.
Revisão BD Thiago Medeiros Barros. O que é? Um banco de dados “é uma coleção de dados inter- relacionados, representando informações sobre um domínio.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Economia II – Estes materiais não são parte integrante da bibliografia da unidade curricular. Aula Teórica nº 15 Bibliografia: Obrigatória: Amaral et al.
Prof. Thales Castro.  Breve revisão  Diagramas de Classe.
Diagramas de Sequência e Comunicação
Metodologia do Ensino da Matemática – Aula 05 IMES – Fafica Curso de Pedagogia – 3º Ano Prof. MSc. Fabricio Eduardo Ferreira
 Mapeamento de seus cenários internos e externos, identificando requisitos essenciais a serem atendidos;  Tradução de requisitos em informações a serem.
1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior.
Enviem suas contribuições para
Prof. Gustavo Fernandes de Lima Descrevendo Circuitos Lógicos Capítulo 3 Parte II.
Comissão de Enfrentamento à Violência Doméstica contra Crianças e Adolescentes/Quebrando o Silêncio CMDCA - Campinas - SP.
Ensino Médio. Problematização para compor parte de uma aula no laboratório de informática Elabore o gráfico da função quadrática considerada.
Calculo de Hoare Daniel Soares, Gabriel Alabarse Hernandez(150756) e Vanius Zapalowski(150843)
UNIDADE 1- Seção 1 Palavras-chave: Conflito de interesses; relação processual; litisconsórcio. COMPETÊNCIA GERAL: Conhecer os institutos fundamentais da.
Fatores de Avaliação Know-how : É a soma total de quaisquer habilidades, conhecimentos e experiências requeridas por um cargo, de maneira a propiciar um.
ORÇAMENTO BASE ZERO.
Transcrição da apresentação:

GRASP: Projeto de Objetos com Responsabilidade

2 Pauta Responsabilidades e métodos Responsabilidades e métodos Padrões Padrões GRASP: Padrões e princípios gerais de atribuição de responsabilidades GRASP: Padrões e princípios gerais de atribuição de responsabilidades Especialista na Informação (Especialista) Especialista na Informação (Especialista) Previsão de tempo médio por slide: 2 minutos

3 Desenhar diagramas UML é uma conseqüência da decisão sobre o projeto de objetos Desenhar diagramas UML é uma conseqüência da decisão sobre o projeto de objetos O que realmente importa são habilidades para o projeto de objetos, em vez de saber desenhar diagramas UML O que realmente importa são habilidades para o projeto de objetos, em vez de saber desenhar diagramas UML Fundamentalmente, o projeto de objetos exige o conhecimento de: Fundamentalmente, o projeto de objetos exige o conhecimento de: Princípios de atribuição de responsabilidades Princípios de atribuição de responsabilidades Padrões de projeto Padrões de projeto A saber...

4 Responsabilidades e Métodos As responsabilidades estão relacionadas com as obrigações de um objeto em termos de comportamento (método); As responsabilidades estão relacionadas com as obrigações de um objeto em termos de comportamento (método); Basicamente essas responsabilidades são de um dos dois tipos: Basicamente essas responsabilidades são de um dos dois tipos: Conhecer; Conhecer; Fazer; Fazer;

5 Responsabilidades e Métodos As responsabilidades fazer de um objeto incluem: As responsabilidades fazer de um objeto incluem: Fazer algo como por exemplo criar um objeto ou realizar um cálculo; Fazer algo como por exemplo criar um objeto ou realizar um cálculo; Iniciar uma ação em outros objetos; Iniciar uma ação em outros objetos; Controlar e coordenar atividades em outros objetos; Controlar e coordenar atividades em outros objetos; As responsabilidades saber incluem: As responsabilidades saber incluem: Conhecimento sobre dados privados encapsulados; Conhecimento sobre dados privados encapsulados; Conhecer objetos relacionados; Conhecer objetos relacionados; Conhecer coisas que ele pode derivar ou calcular. Conhecer coisas que ele pode derivar ou calcular.

6 Responsabilidades e Métodos Exemplo: Exemplo: O objeto Venda é responsável por criar linha de ItemDeVenda (fazer); O objeto Venda é responsável por criar linha de ItemDeVenda (fazer); O objeto Venda é responsável por conhecer seu total (saber); O objeto Venda é responsável por conhecer seu total (saber);

7 Responsabilidades e Métodos Interação para criar o item de venda e obter o total da venda: fazer e saber Interação para criar o item de venda e obter o total da venda: fazer e saber Fazer Saber

8 Responsabilidades e Métodos As responsabilidades saber são dedutíveis do modelo de domínio através das associações e atributos; As responsabilidades saber são dedutíveis do modelo de domínio através das associações e atributos; A tradução de responsabilidades é influenciada pela granularidade da responsabilidade: Ex. Responsabilidade de fornecer acesso ao banco de dados pode envolver dezenas de classes e centenas de métodos. A tradução de responsabilidades é influenciada pela granularidade da responsabilidade: Ex. Responsabilidade de fornecer acesso ao banco de dados pode envolver dezenas de classes e centenas de métodos.

9 Responsabilidades e Métodos Uma responsabilidade não é a mesma coisa que um método, porém os métodos são implementados para satisfazer às responsabilidades. Uma responsabilidade não é a mesma coisa que um método, porém os métodos são implementados para satisfazer às responsabilidades.

10 Padrões São princípios e idiomas, codificados de forma estruturada, que descrevem o problema e a solução e são identificados por um nome. São princípios e idiomas, codificados de forma estruturada, que descrevem o problema e a solução e são identificados por um nome. Também conhecidos como princípios de soluções idiomáticas que guiam na criação de software. Também conhecidos como princípios de soluções idiomáticas que guiam na criação de software. Simplificando, um padrão é um par nomeado problema/solução que pode ser aplicado em novos contextos, com conselhos sobre sua aplicação em novas situações e uma discussão sobre as conseqüências de seu uso. Simplificando, um padrão é um par nomeado problema/solução que pode ser aplicado em novos contextos, com conselhos sobre sua aplicação em novas situações e uma discussão sobre as conseqüências de seu uso.

11 Padrões Exemplo: Nome do Padrão: Especialista na informação (Information Expert) Solução: Atribuir uma responsabilidade para a classe que tem a informação necessária para satisfazê-la; Problema que resolve: Qual é o princípio básico de atribuição de responsabilidade?

12 GRASP: Padrões e princípios gerais de atribuição de responsabilidades Descrevem princípios fundamentais de projeto baseado em objetos e atribuição de responsabilidades aos mesmos. Descrevem princípios fundamentais de projeto baseado em objetos e atribuição de responsabilidades aos mesmos. GRASP é: General Responsability Assignment Software Patterns GRASP é: General Responsability Assignment Software Patterns Saber o nome original (inglês) e o significado das siglas é importante para a comunicação eficaz nos projetos de desenvolvimento de software.

13 Especialista na Informação (Information Expert) Atribuir uma responsabilidade ao especialista na informação: a classe que tem a informação necessária para satisfazer a responsabilidade. Atribuir uma responsabilidade ao especialista na informação: a classe que tem a informação necessária para satisfazer a responsabilidade. Dúvida importante: Olhamos no modelo de domínio ou no modelo de projeto para analisar as classes que têm a informação necessária? Dúvida importante: Olhamos no modelo de domínio ou no modelo de projeto para analisar as classes que têm a informação necessária? 1. Se houver classes relevantes no modelo de projeto, olhe lá primeiro; 2. Caso contrário, olhe no Modelo de Domínio.

14 Especialista na Informação (Information Expert) Analisaremos o caso abaixo em detalhes e vamos determinar o total da venda. Analisaremos o caso abaixo em detalhes e vamos determinar o total da venda.

15 Especialista na Informação (Information Expert) Que informação é necessária para determinar o total geral da venda? É preciso conhecer todas as instâncias de ItemDeVenda de uma Venda e a soma de seus subtotais. Uma instância de Venda conhece seus itens. Que informação é necessária para determinar o total geral da venda? É preciso conhecer todas as instâncias de ItemDeVenda de uma Venda e a soma de seus subtotais. Uma instância de Venda conhece seus itens. Segundo a diretriz do Especialista, Venda é uma classe de objetos adequada para receber essa responsabilidade; ela é a especialista nessa informação. Segundo a diretriz do Especialista, Venda é uma classe de objetos adequada para receber essa responsabilidade; ela é a especialista nessa informação.

16 Especialista na Informação (Information Expert) Diagrama de classe de software com suas responsabilidades: Diagrama de classe de software com suas responsabilidades: Responsabilidade adicionada Responsabilidades adicionadas

17 Especialista na Informação (Information Expert) Quem seria o responsável por calcular então o preço do item de venda? Pelo Especialista, o próprio item de venda teria a responsabilidade de fazer este cálculo uma vez que ele tem a informação do preço de venda e da quantidade e a regra diz que o preço do item de venda é calculado usando o produto aritmético entre a quantidade e o preço de venda. Quem seria o responsável por calcular então o preço do item de venda? Pelo Especialista, o próprio item de venda teria a responsabilidade de fazer este cálculo uma vez que ele tem a informação do preço de venda e da quantidade e a regra diz que o preço do item de venda é calculado usando o produto aritmético entre a quantidade e o preço de venda. Regra para cálculo do preço do item de venda

18 Especialista na Informação (Information Expert) Implementação do DS.

19 Prática Faça o projeto de classes, diagrama de interação (seqüência) e atribua as responsabilidades para calcular o percentual de presentes na aula. Considere o modelo de domínio abaixo. Implemente a solução em VB.NET. Faça o projeto de classes, diagrama de interação (seqüência) e atribua as responsabilidades para calcular o percentual de presentes na aula. Considere o modelo de domínio abaixo. Implemente a solução em VB.NET.

20 Resolução Diagrama de Classes de projeto Diagrama de Classes de projeto

21 Resolução Diagrama de interação Diagrama de interação

22 Resolução Agora implemente a solução em VB.NET!