1 / 20

A Linguagem Formal de Especificação VDM-SL

A Linguagem Formal de Especificação VDM-SL . Aluna: Cibele Brunetto RA: 012107. Tópicos. O que é VDM Estrutura da Linguagem Abordagem para Construção de Especificações usando VDM Criação de um Estado do Sistema Construção de “Invariant” de Tipos de Dados Modelagem das Operações do Sistema

aman
Download Presentation

A Linguagem Formal de Especificação VDM-SL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Linguagem Formal de Especificação VDM-SL Aluna: Cibele Brunetto RA: 012107

  2. Tópicos • O que é VDM • Estrutura da Linguagem • Abordagem para Construção de Especificações usando VDM • Criação de um Estado do Sistema • Construção de “Invariant” de Tipos de Dados • Modelagem das Operações do Sistema • Prova • Refinamento da Especificação • Bibliografia Maio 2003

  3. O QUE É • VDM-SL = Vienna Development Method – Specification Language • Tipo de especificação construída por VDM: baseada em modelo • Requisitos de um sistema são melhor capturados criando-se um modelo do sistema e definindo como um estado típico do modelo muda sob o efeito de operações Maio 2003

  4. O QUE É • VDM suporta 2 tipos de abstração: • Representacional • Abstração de dados dos detalhes representacionais das estruturas de dados a serem usadas na implementação final do sistema • Operacional • Abstração das manipulações algorítmicas dos dados introduzidos na abstração representacional Maio 2003

  5. O QUE É • Uma especificação VDM para um problema consiste de um estado, que inclui representações de tipos de dados, e de operações, que expressam mudanças às variáveis de estado consistentes com os requisitos do problema. • O estado é um modelo do problema e as operações no estado descrevem o comportamento do modelo Maio 2003

  6. Estrutura da Linguagem • VDM está estruturado em blocos: types <definição dos tipos> values <definição de valores> functions <definição das funções> operations <definição das operações> state <nome do estado> of <definição do estado> end Maio 2003

  7. Abstração Representacional: 1 e 2 Abstração Operacional: 3 Abordagem para Construção de Especificações usando VDM • Podemos separar a construção de uma especificação em VDM em 5 fases: • Criação de um Estado do Sistema • Construção de “Invariant” de Tipos de Dados • Modelagem das Operações do Sistema • Prova • Refinamento da Especificação Maio 2003

  8. 1 – Criação do Estado do Sistema • É construído um modelo de dados do sistema, usando tipos primitivos e estruturas de dados construídas Maio 2003

  9. 1 – Criação do Estado do Sistema • Tipos Primitivos (definidos na sintaxe da linguagem): • Z - Inteiro, N - Natural, R - Real, Q - Racional, B - Booleano, char - Caracter, token – Token • Tipos “Quote”: representação definida por uma string de letras maiúsculas distintas • Tipos Compostos: construídos a partir de tipos já introduzidos na especificação, usando os construtores: • União, Conjunto, Seqüência, “Map”, Registro, Produto Cartesiano (principais) Maio 2003

  10. 1 – Criação do Estado do Sistema: Representação de Variáveis Globais • Modelo pode ser visto como um tipo de dado definido pelo usuário e define o universo de possíveis estados que o sistema pode estar durante a execução • Cada estado corresponde a um valor do modelo de dados • Se o estado tem muitas componentes que as operações podem acessar separadamente, então declaramos variáveis globais para representar essas partes do estado que as operações podem acessar referenciando diretamente o nome da variável Maio 2003

  11. 1 – Criação do Estado do Sistema: Representação de Variáveis Globais statenome_do_estado of nome_do_componente: tipo1_componente ... ... nome_do_componente: tipon_componente end Maio 2003

  12. Propriedades impostas por invariantes devem ser preservadas antes e depois de cada operação realizada naquela entidade. 2 – Construção de Invariantes de Tipos de Dados • Uma invariante de uma entidade é uma asserção restringindo o comportamento daquela entidade. Existem 2 tipos: • Invariante de Tipo: similar a restrições de integridade de bases de dados • Invariante de Estado: restringe o comportamento do sistema quando ele é sujeito a modificações por operações especificadas naquele estado. Maio 2003

  13. 2 – Construção de Invariantes de Tipos de Dados • Exemplo de invariante de estado: statePerson_age of n: N inv n n 130 end Maio 2003

  14. 3 – Modelagem das Operações do Sistema • Uma vez descritos os objetos do sistema através da abstração representacional (fases anteriores), podemos definir agora o comportamento do modelo através da abstração operacional • A abstração operacional é definida por • Funções • Operações Maio 2003

  15. 3 – Modelagem das Operações do Sistema • Diferenças entre funções e operações: • Funções não acessam variáveis globais • Operações não somente acessam variáveis globais como podem modificá-las Maio 2003

  16. 3 – Modelagem das Operações do Sistema • Definição de funções: fun (p1: t1, p2: t2, ..., pn: tn) p: t pre B post B’ • Definição de operações: oper (p1: t11, p2: t12, ..., pn: t1n) p: t ext <modo> g1: t21 ... <modo> gk: t2k pre B post B’ • err expr1 : B1  B1’ Maio 2003

  17. 4 – Prova • O intuito de se provar que uma especificação formal está correta é eliminar erros lógicos ou semânticos • Existem ferramentas para checar se a sintaxe do modelo especificado está de acordo com a sintaxe de VDM • A especificação de uma operação está correta se é possível encontrar uma implementação (algoritmo) que satisfaça a operação • Um algoritmo satisfaz a operação se para qq estado do sistema e/ou valor de parâmetro de entrada que torna a pré-condição verdadeira, o algoritmo produz um estado de saída e/ou valor de parâmetro de saída que torna a pós-condição verdadeira • Ferramenta disponível: SpecBox Maio 2003

  18. 5 – Refinamento da Especificação • Uma especificação em VDM pode ter camadas de modelos, cada modelo sendo uma versão refinada do modelo anterior. O último nível de refinamento é bem próximo à implementação • Existem 2 modos de refinar uma especificação VDM: • Refinamento de dados • Decomposição de operações Maio 2003

  19. 5 – Refinamento da Especificação • Refinamento de dados: • Um tipo abstrato de dados é refinado em 1 ou mais tipos concretos de dados • Decomposição de operações: • Refina uma operação abstrata numa operação concreta com detalhes computacionais (uso de “statements” como em Pascal, C) Maio 2003

  20. Bibliografia • “The Construction of Formal Specifications: An Introduction to the Model-Based and Algebraic Approaches”, J.L. Turner & T.L. McCluskey, 1992 • “Specification of Software Systems”, V.S. Alagar & K. Periyasamy, 1998 • “VDM-SL Specifications for a Graph Editor”, V.S. Alagar, D. Muthiayen, K. Periyasamy, 1996 Maio 2003

More Related