Refinamento de Dados Estende o refinamento de operações –O estado da especificação abstrata pode ser diferente do concreto –Viabiliza a troca de tipos.

Slides:



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

gerador de código intermediário
Aula 8 Contratos.
Projeto 1.
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Modelos no Domínio do Tempo de Sistemas LTI Contínuos
INE Fundamentos de Matemática Discreta para a Computação
1.a. FUNÇÃO DE TRANSFERÊNCIA
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Introdução a Programação
Modelagem de Sistemas de Informação
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Contratos Modelagem Funcional.
Projeto da Camada de Domínio
Selma Shin Shimizu Melnikoff 2006
O Portal do Estudante de Computação
Introdução a Programação
DIAGRAMA DE COMPONENTES
Paradigmas de programação
Tópicos em Sistemas Distribuídos
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
1 Funções (versão C) Funções são pedaços de código encapsulados para fácil acesso. Em C e C++ o processo de construção de uma função passa por 2 etapas.
Linguagem de Programação II Parte IX
Estrutura de dados, pseudocódigo
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Estruturas de Dados Módulo 3 – Controle de Fluxo
Laboratório I Mateus Raeder Material baseado nos originais da
Subset Sum Algoritmos e Estruturas de Dados – IF672
Conjuntos (continuação)
Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n Esquemas são estruturas que agrupam variáveis.
Curso Prático de Métodos Formais Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)
Caso de Uso - Definição Um caso de uso é uma descrição narrativa de uma seqüência de eventos que ocorre quando um ator (agente externo) usa um sistema.
Programação Orientada à Objetos
Projeto de Software Joabe Jesus Engenharia de Software e Sistemas.
Programação Orientada à Objetos
FUNÇÃO INVERSA Conteúdo: Profª Maria Cristina Kessler
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Programação de PIC em C Exposição das funções básicas para
POO II JEAN CARLO MENDES
ANÁLISE ESTATÍSTICA II
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.
A Linguagem Formal de Especificação VDM-SL
Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)
Administração Financeira II
Factory.
Instrutor: Objetivos:.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Introdução a Programação
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
Etapas : Algoritmo é uma sequência lógica de instruções que podem ser executadas. É importante destacar que qualquer tarefa que siga um certo padrão.
Algoritmos e Programação I
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo.
Computador Simplificado
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Estrutura de Dados Prof. André Cypriano M. Costa
Introdução a Programação Aula 02 Jackson Eduardo
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Análise e Conceção de Sistemas
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Lógica de programação Introdução à lógica de programação
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Jean Carlo mendes
Transcrição da apresentação:

Refinamento de Dados Estende o refinamento de operações –O estado da especificação abstrata pode ser diferente do concreto –Viabiliza a troca de tipos de dados abstratos por representações computacionais mais adequadas –As entradas e saídas têm que permanecer as mesmas e com os mesmos tipos. Não é possível o refinamento de interface mas sim dos dados (são admitido estarem encapsulados)

Refinamento de Dados Exemplos (informal – ver o PS) –Controle de pessoas num recinto –Cálculo da média aritmética e máximo –Refinamento em etapas Exemplo de refinamento para specification statement Exemplo de refinamento para pseudocódigo Exemplo de refinamento para pascal

Refinamento Dados – Traduçao para Specification Statement w:[pre,post] Esquema de entrada de números da média (EnterNumber) –n?,sum,size:[true, sum=sum+n? ^ size = size 0 + 1] Esquema de cálculo da média –m!:[size <> 0, m! = sum div size]

Refinamento Dados - Pseudocódigo Procedure ENTER(val n?: IN); sum := sum + n?; size := size + 1; Procedure MEAN(res m!: IR); m! := sum / size;

Refinamento Dados – Código Pascal

Refinamento de Dados – Exemplo com Etapas Podemos considerar que: –State1 é apropriado para uma especificação inicial –State2 é apropriado para uma etapa de projeto –State3 é apropriado para uma implementação Temos que garantir as relações de correspondência entre cada etapa (executando as devidas obrigações de prova, como veremos a seguir)

Refinamento de Dados Devemos estabelecer uma relação entre o estado abstrato e o estado concreto –Isto significa que precisamos determinar como cada estado abstrato é representado no estado concreto. –Definimos então um esquema (normalmente chamado Retrieve) que captura esta relação Suas declarações são equivalentes às do estado abstrato e concreto O predicado que o determina tem que capturar a relação entre os valores a serem refinados –Exemplo: diagrama nuvens

Refinamento de Dados Semelhantemente ao refinamento de operações precisamos provar os dois predicados: –Um sobre a pré condição –Outro sobre a realização da operação propriamente dita A diferença é que agora temos que envolver o esquema que relaciona os estados abstrato e concreto.

Refinamento de Dados: Obrigações de Prova No caso das pré condições No caso das operações No caso especial do estado inicial

Refinamento Funcional de Dados Quando a relação Retrieve entre dois estados define uma função total –Para todo elemento representado no estado abstrato temos uma representação do mesmo no estado abstrato (função total entre Astate e Cstate). Os exemplos do curso irão tratar apenas refinamentos de dados funcionais Simplifica as obrigações de prova Exemplo do diagrama de nuvens

Refinamento Funcional de Dados: Obrigações de Prova Temos as mesmas obrigações de prova que o refinamento comum, entretanto, as mesmas estão simplificadas como mostrado a seguir Antes de mais nada, para que o Retrieve seja considerado funcional temos que provar: Vejamos então os teoremas simplificados visto que o refinamento já é funcional

Refinamento Funcional de Dados: Obrigações de Prova No caso das pré condições (não muda) No caso das operações (retiramos o quantificador existencial No caso especial do estado inicial

Refinamento Funcional de Dados Para o refinamento ser bem sucedido temos que atravessar o seguinte percurso para toda opetação disponível na especificação