Coesão de Classe, Suporte de Estados e de Comportamentos

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Sistemas Operacionais - Aula 6
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
A EXPLICAÇÃO CAUSAL MARIA DAS GRAÇAS RUA
Sistemas distribuídos
Diagrama de fluxo de dados (DFD)
Diagrama de Classes.
Engenharia de Software
UML - Diagrama de Classes e objetos
Centrado na arquitetura
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Linguagens de Modelagem para SMA
Sistemas Baseados em Agentes
Interação Cliente Servidor
Professora: Aline Vasconcelos IF Fluminense
Contratos em Projeto OO
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Threads.
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Ferramentas para Avaliação de Software
Helpdesk-3 A partir deste ponto você conhecerá os inovadores conceitos de nossa solução. Tecle Enter para Avançar ou Esc para Sair.
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Encapsulamento e Congeneridade
SQL Server 2012 Introdução a Modelagem de Dados
Fundamentos Corel Draw Aula I Prof. David Bianchini
UML Diagramas de Classe
Espaço-estado e Comportamento
Conformidade de tipo e comportamento fechado
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Análise e Projeto de Sistemas
Diagrama de Classes George Gomes Cabral.
Tipos Abstratos de Dados
UNIDADE 2 UML MODELAGEM TEMPORAL
Linguagem e Ambiente Scratch
Construções Lógico –Matemáticas – Aula 02
Orientação a Objetos Parte I
Programação Orientada à Objetos
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
UML - Unified Modeling Language
Sistemas Operacionais
PROGRAMAÇÃO ORIENTADA A OBJETOS
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Análise e Projeto de Sistemas
Integração de Ferramentas CASE
Desenvolvimento de Software Dirigido a Modelos
Diagramas UML de Seqüência
Expansão dos Casos de Uso
CÁLCULO COM GEOMETRIA ANALÍTICA II Funções de várias variáveis
Jobson Ronan Padrões GoF Jobson Ronan
Introdução a Orientação a Objetos
Um caso de uso conta uma história de como alcançar um objetivo ou um conjunto de histórias de tanto alcançando quanto falhando Caso de uso: “Fazer um pedido”
Autorizar programas para usuários
Modelo Entidade-Relacionamento
Palavras-Chaves Linguagem gráficas e utilizações de símbolos.
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Engenharia de Software Orientada a Objetos
NEGOCIAÇÃO.
Laço ou loop e repetição
Interações entre objetos
Trabalho de matemática
Avaliação de interface Usabilidade. O processo de avaliação de uma interface não deve ser avaliado como uma fase única dentro do processo de design de.
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
INTRODUÇÃO A POO Dilvan Moreira. Por que estudar POO?  Escrever código é fácil  Entender código é difícil  Boa organização e um bom projeto do código.
Transcrição da apresentação:

Coesão de Classe, Suporte de Estados e de Comportamentos

Suporte de Estados em uma Interface de Classe Estados ilegais Estados incompletos Estados inapropriados Estados ideais Coesão de Classe

Estados ilegais Uma interface de classe que permita estados ilegais, habilita a um objeto o alcance de estados que violam a invariante de classe desse objeto. Por ex: operação moverPonto definida sobre Retângulo >> se permitir que um único vértice se mova independentemente dos outros Coesão de Classe

Estados incompletos Uma interface de classe com estados incompletos, permite estados válidos que um objeto não consegue alcançar Por ex: na hipótese que, devido ao desenho pobre da classe Retângulo, todos os retângulos deverão apresentar larguras maiores do que as alturas Coesão de Classe

Estados inapropriados Classe com estados inapropriados propicia ao usuário do lado de fora de um objeto alguns estados que não são partes da abstração de classe do objeto Por ex: uma classe Pilha em que os elementos individuais sejam visíveis (quando o topo deveria ser visível) Coesão de Classe

Estados ideais Classe com estados ideais é a que tem o melhor desenho: um objeto pode atingir qualquer estado válido, mas somente os estados válidos. O conhecimento de quais estados são válidos, e quais são ilegais, depende do entendimento da finalidade da classe e da definição de sua invariante de classe. Coesão de Classe

Suporte de comportamentos em Interface de Classes Comportamento ilegal Comportamento perigoso Comportamento irrelevante Comportamento incompleto Comportamento inábil Comportamento replicado Comportamento ideal Coesão de Classe

Comportamento ilegal O comportamento ilegal permite a um objeto fazer transições ilegais de um estado para outro Por ex: PedidoDeCliente puder ir do estado de nãoAprovado para cumprido (sem passar por aprovado!) Coesão de Classe

Comportamento perigoso Quando várias mensagens são necessárias para efetivar uma única etapa de comportamento de um objeto, e pelo menos uma mensagem leva a um estado ilegal Por ex: enviar 4 mensagens para deslocar cada vértice de um Retângulo Coesão de Classe

Comportamento irrelevante O comportamento irrelevante em uma interface de classe é o comportamento que simplesmente não pertence a essa classe e a seus objetos Por ex: operação CalcularRestituição DeEmpréstimo em PedidoDeCliente Coesão de Classe

Comportamento incompleto Classe com comportamento incompleto não permite todo o comportamento que deveria ser posto em prática por objetos dessa classe Por ex: estado aprovado em PedidoDeCliente não pode voltar a nãoAprovado (num caso de falência do cliente!) Coesão de Classe

Comportamento inábil O comportamento inábil pode requerer duas ou mais mensagens para uma única etapa de comportamento válido. Mas nenhuma delas conduz a um estado ilegal Por ex: mudar a dataDeRemessa em um pedido cumprido exige voltar a aprovado e depois a cumprido de novo Coesão de Classe

Comportamento replicado Uma interface que permite a mesma etapa de comportamento por mais de um modo Ex 1: classe Hominóide: - virarÀDireita - virarNoSentidoHorário(90o) Ex2: classe ContaDeAções: - venderPosição (ações, qtde, out vendaOK) - venderTodasPosiçõesDeAções (out vendaOK) Coesão de Classe

Comportamento ideal Um objeto em um estado válido pode mover-se somente para outro estado válido Pode mover-se para outro estado somente por meio de um modo válido Há apenas um modo de utilização da interface a fim de efetivar uma etapa de comportamento Coesão de Classe

Exemplo: PilhaAparelho Topo: Aparelho; Extrair; Empilhar (novoElemento: Aparelho); estáVazia: booleano; estáCheia: booleano; Coesão de Classe

Exemplo: PilhaAparelho Topo: Aparelho; (*) Extrair; (*) Empilhar (novoElemento: Aparelho); estáVazia: booleano; estáCheia: booleano; Coesão de Classe

Coesão de Operações em Interface de Classes Coesão alternada Coesão múltipla Coesão funcional Coesão de Classe

Coesão alternada Aparece quando o desenhista combina deversas etapas de comportamento em uma única operação, que, no recebimento de uma mensagem, aplica somente uma etapa de comportamento do objeto Ex: na classe Retângulo: reduzirOuGirar (fatorDeEscala: Real, ânguloDeRotação: Ângulo, oQueFazer: Booleano) Coesão de Classe

Coesão múltipla Semelhante à coesão alternada, só que aplica todas as etapas de comportamento! Ex1: Pessoa.alterarEndereçoETelefone Ex2: - área - áreaMaiorQue (algumaÁrea: área) (*)>> if retângulo.área > algumaÁrea then … Coesão de Classe

Coesão funcional Tanque.encher Retângulo.área ItemDeProduto.peso PedidoDeCliente.despachar Aeroplano.virar Conta.fazerDepósito Coesão de Classe