VDM - IC

Propaganda
A Linguagem Formal de
Especificação VDM-SL
Aluna: Cibele Brunetto
RA: 012107
1
Tópicos



O que é VDM
Estrutura da Linguagem
Abordagem para Construção de Especificações
usando VDM
1.
2.
3.
4.
5.

2
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
O QUE É


VDM-SL = Vienna Development Method –
Specification Language
Tipo de especificação construída por VDM:
baseada em modelo
–
3
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
O QUE É

VDM suporta 2 tipos de abstração:
–
Representacional

–
Operacional

4
Abstração de dados dos detalhes representacionais das
estruturas de dados a serem usadas na implementação
final do sistema
Abstração das manipulações algorítmicas dos dados
introduzidos na abstração representacional
Maio 2003
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.
–
5
O estado é um modelo do problema e as
operações no estado descrevem o comportamento
do modelo
Maio 2003
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
6
Maio 2003
Abordagem para Construção de
Especificações usando VDM

Podemos separar a construção de uma
especificação em VDM em 5 fases:
1.
2.
3.
4.
5.
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
Abstração Representacional: 1 e 2
Abstração Operacional: 3
7
Maio 2003
1 – Criação do Estado do Sistema

8
É construído um modelo de dados do sistema,
usando tipos primitivos e estruturas de dados
construídas
Maio 2003
1 – Criação do Estado do Sistema

Tipos Primitivos (definidos na sintaxe da
linguagem):
–


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:
–
9
Z - Inteiro, N - Natural, R - Real, Q - Racional, B Booleano, char - Caracter, token – Token
União, Conjunto, Seqüência, “Map”, Registro,
Produto Cartesiano (principais)
Maio 2003
1 – Criação do Estado do Sistema:
Representação de Variáveis Globais



10
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
1 – Criação do Estado do Sistema:
Representação de Variáveis Globais
state nome_do_estado of
nome_do_componente: tipo1_componente
...
...
nome_do_componente: tipon_componente
end
11
Maio 2003
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:
–
–
12
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.
Propriedades impostas por invariantes devem ser
preservadas antes e depois de cada operação
realizada naquela entidade.
Maio 2003
2 – Construção de Invariantes de
Tipos de Dados

Exemplo de invariante de estado:
state Person_age of
n: N
inv n  n  130
end
13
Maio 2003
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
–
–
14
Funções
Operações
Maio 2003
3 – Modelagem das Operações do
Sistema

Diferenças entre funções e operações:
–
–
15
Funções não acessam variáveis globais
Operações não somente acessam variáveis globais
como podem modificá-las
Maio 2003
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’

16
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
4 – Prova




17

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óscondição verdadeira
Ferramenta disponível: SpecBox
Maio 2003
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:


18
Refinamento de dados
Decomposição de operações
Maio 2003
5 – Refinamento da Especificação

Refinamento de dados:


Decomposição de operações:

19
Um tipo abstrato de dados é refinado em 1 ou mais
tipos concretos de dados
Refina uma operação abstrata numa operação
concreta com detalhes computacionais (uso de
“statements” como em Pascal, C)
Maio 2003
Bibliografia



20
“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
Download