Jpf@fe.up.pt www.fe.up.pt/~jpf Métodos Formais em Engenharia de Software Utilização da Ferramenta VDMTools Lite João Pascoal Faria jpf@fe.up.pt www.fe.up.pt/~jpf.

Slides:



Advertisements
Apresentações semelhantes
Ministério da Defesa INCRA SIPAM Tutorial QGis Instalação de Extensão BrOffice Uso da Planilha-Modelo.
Advertisements

Relatórios.  O Relatório é um componente ActiveX chamado ActiveReport, que permite a visualização e impressão de valores instantâneos de variáveis do.
Máquinas Virtuais Professoras: Márcia Jani / Kathia.
ESPECIFICAÇÃO DE PROCESSOS PALESTRANTE, MÊS ANO. HOJE FALAREMOS SOBRE 1.OBJETIVO 2.DIRETRIZES DO DESENHO 3.NOTAÇÕES DO DESENHO 4.PADRÃO DE NUMERAÇÃO 5.EXEMPLO.
INTRODUÇÃO À COMPUTAÇÃO INTRODUÇÃO AO PYTHON EWERTON AMORIM DE OLIVEIRA.
Ambiente Virtual de Avaliações Utilizando Certificados Digitais Fernando Gevard – Acadêmico Paulo Fernando da Silva - Orientador.
1 - verifique a disponibilidade dos arquivos necessários para o início do processo de instalação do sistema A.g.i.l. em um terminal de atendimento. Arquivos.
Manual de Utilização. Endereço / Antes de entrar na sala virtual, é necessário instalar o software..
Site Summit.
Manual SGA Aluno Central de estágio.
especificação de requisitos do software
Gestores de Referências Bibliográficas
Gestor de referências bibliográficas
Comunicação Aumentativa
Diagrama De Classes Adaptado
UNIDADE 4: Processamento de texto
Márcio Aurélio Ribeiro Moreira
Gerenciando fontes bibliográficas no
Carta Mensal através do site ens.org.br, Ipad e Iphone
Disciplina: Sistemas de Informação
Como formatar um trabalho científico de acordo com as Normas da ABNT
Portal de Eventos Acadêmicos
Métodos Formais em Engenharia de Software Utilização da Ferramenta VDMTools Lite João Pascoal Faria
(baseado em slides de ex-alunos)
EGP, CPC, 2004/05 Manipulação de strings, colecções e ficheiros em Visual Basic .Net João Pascoal Faria Dezembro de 2004.
Introdução ao RUP – Rational Unified Process
Clientes da Versão paga – ATENÇÃO!
TÓPICOS DE INFORMÁTICA
Agregador de Notícias e Eventos - UFPI
Ferramentas Capture/Replay
Métodos Formais em Engenharia de Software Especificação Algébrica em CafeOBJ (3ª parte) João Pascoal Faria
TQS - Teste e Qualidade de Software (Software Testing and Quality) Análise de cobertura de testes com a ferramenta Coverlipse.
João Pascoal Faria TQS - Teste e Qualidade de Software (Software Testing and Quality) Análise de cobertura de código com.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introdução a testes unitários automatizados com JUnit.
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Teste Envolvendo Acesso a Bases de Dados João Pascoal.
Inscrição de Prestadora Prestadora realizando o processo
especificação de requisitos do software
TQS - Teste e Qualidade de Software (Software Testing and Quality) Caso de estudo: Problema da procura duma string num.
Como Customizar Documentos no Gdoc do ASP
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Driven Devlopment Experiment João Pascoal Faria.
(baseado em slides de ex-alunos)
CREATED BY RAFAEL S. T. VIEIRA
Introdução à programação orientada por objetos
Access 2010 Microsoft. Access 2010  O Microsoft Access é um Sistema de Gestão de Base de Sados (SGBD) relacional em ambiente gráfico (Windows), que possibilita.
Continuação do portefólio de S.O. Bootloader É um programa que começa a funcionar assim que iniciamos o pc e activando assim o sistema operativo.
Ferramenta para criação de EAP
Formação em Microsoft® Office Excel® 2007
Introdução ao… PowerPoint.
Índice Criar um projecto de modelação
Modelagem de Banco de Dados através do ERwin
Tecnologia da Informação Visão Geral sobre Informática
Sistema Operativo em Ambiente Gráfico
Linguagem de Programação
Manual do aplicativo GESTÃO DE FICHEIROS 2003
Formulários Permitem apresentar os dados de uma forma personalizada.
Programação Orientada a Objetos
Modelagem de Sistema T5MOD/N5MOD
Professora Roberta Bonamichi Guidi Garcia
Linguagem de Programação I
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Formação em Word 5.º e 6.º anos Biblioteca Escolar – 2016/2017.
Inventário de Bens Móveis
Procedimento de Finalização Instalação Frente de Caixa
Leonardo M G Gallardo Trilha: Testes
Tipos Primitivos de Dados
Lição n.º 15/16 06/11/2007 Sumário Sistema operativo - Windows.
Formação em Word 5.º e 6.º anos Biblioteca Escolar – 2018/2019.
Tutorial (Parte 1) Paulo R. T. Cândido
Iniciação Digital (25 horas)
Transcrição da apresentação:

jpf@fe.up.pt www.fe.up.pt/~jpf Métodos Formais em Engenharia de Software Utilização da Ferramenta VDMTools Lite João Pascoal Faria jpf@fe.up.pt www.fe.up.pt/~jpf

Índice Instalar Arrancar Criar um projecto Escrever uma especificação Adicionar ficheiro ao projecto Verificar sintaxe e tipos Depuração de erros Correr o interpretador Verificação de invariantes, pré-condições e pós-condições Reunir casos de teste numa classe de teste Analisar cobertura dos testes Produzir um relatório do projecto

Instalar Nota: Já está instalado nos computadores da FEUP VDMTools 6.86 lite (versão sem geração de código) Download gratuito (após registo) a partir de http://www.vdmbook.com/  -> tools -> download Instalação em Linux: a versão Lite (gratuita) só existe para Windows, a versão comercial também existe para Linux

Arrancar Start -> VDMTools -> VDM++ Toolbox v6.8.6-Lite ou The VDM++ Toolbox v6.8.6-Lite\bin\vppgde.exe

Criar um projecto (1/2) 1º (não faz nada para já …)

Criar um projecto (2/2) 2º 3º 4º 5º Convém criar uma pasta para cada projecto Caminho não pode ser muito comprido, senão falha! 4º 5º (versão de Windows em português …)

Criar um projecto (3/3) Caminho não pode ser muito comprido, senão falha (cannot change directory ….) !

Escrever uma especificação (1) Programação literária (código e documentação integrados) Código em VDM++ é escrito num documento em formato RTF (Rich Text Format), usando estilos pré-definidos no template “The VDM++ Toolbox v6.8.6-Lite\word\VDM.dot” Abrir o ficheiro “VDM.dot” e gravar em formato RTF, com o nome da classe a criar, por exemplo “FStack.rtf”, no directório do projecto Normalmente, convém criar um ficheiro para cada classe O ficheiro pode ter código VDM++ e documentação Formatar o código VDM++ com o estilo “VDM”

Escrever uma especificação (2) estilo “Heading 1” estilo “Normal” Etc. estilo “VDM”

Adicionar ficheiro ao projecto (1)

Adicionar ficheiro ao projecto (2) Sintaxe Ok

Verificar sintaxe e tipos 4º -verificar tipos 1º - ver as classes 2º seleccionar Sintaxe Ok Tipos Ok Sintaxe Ok Tipos Ok

Depuração de erros Fazer duplo clique no erro Descrição do erro Análise: o problema é que “~” deve ser colocado depois e não antes da variável de instância Localização do erro

Correr o interpretador - abrir

Correr o interpretador - inicializar

Correr o interpretador – criar um objecto Stack de capacidade minúscula para testar … create s := new FStack(2)

Correr o interpretador – consultar o estado dum objecto print s

Correr o interpretador – manipular um objecto print s.Push(1) print s.Top() print s

Verificação de invariantes, pré-condições e pós-condições - Activar verificação

Verificação de invariantes, pré-condições e pós-condições - Violação de invariante O invariante é testado após cada instrução do construtor, e falhou na 1ª instrução! Solução: capacity : nat := 0

Verificação de invariantes, pré-condições e pós-condições – Violação de pré-condição

Verificação de invariantes, pré-condições e pós-condições – Violação de pré-condição Só tem capacidade para 2 …

Reunir casos de teste numa classe de teste 1. Criar o ficheiro 2. Adicionar ao projecto 3. Verificar sintaxe 4. Verificar tipos 5. Inicializar o interpretador 6. Executar os seguintes comandos:

Analisar cobertura dos testes 1º - Colocar placeholders para tabelas de cobertura de testes (test coverage) Nome da classe, estilo VDM_TC_TABLE. Será substituído por tabela com informação de cobertura de testes ao fazer “pretty print”.

Analisar cobertura dos testes Pode-se fazer o mesmo relativamente ao próprio código de teste …

Analisar cobertura dos testes 2º - Para cada caso de teste XPTO, preparar dois ficheiros de texto (por exemplo no directório do projecto): ficheiro XPTO.arg, com o comando para o interpretador ficheiro XPTO.arg.exp, com o resultado esperado da avaliação do comando (print comando) Input Output esperado Etc. Na realidade, deve violar pré-condição, mas não há maneira de o indicar (!?)

Analisar cobertura dos testes 3º - Preparar scripts de teste (no mesmo directório)

Analisar cobertura dos testes 4º - Executar o script com o ciclo de testes OK Conforme esperado Também gera um ficheiro “vdm.tc” com informação de cobertura de código, a usar pelo “pretty printer”!

Analisar cobertura dos testes 5º - Preparar configuração de “pretty printer”

Analisar cobertura dos testes 6º - Efectuar o “pretty print” 2º - pretty print 1º - seleccionar 3º - aparece

Analisar cobertura dos testes 7º - Analisar o resultado (ficheiros .rtf.rtf !) Código não executado assinalado a vermelho 100% de cobertura de todas as operações duas operações (casos de teste) não foram executadas

Produzir um relatório do projecto No Word, criar documento, por exemplo “master.rtf”, em que se inserem links para os vários ficheiros com a facilidade “Insert File …” -> botão “Insert as Link” Convém inserir os ficheiros resultantes de pretty print (ClassName.rtf.rtf) Usar facilidade “Update field” para actualizar os links Ver exemplo em “Stack\master.rtf” Ver exemplo com todos os ficheiros do projecto em www.fe.up.pt/~jpf/teach/MFES/VDM/Stack.zip

Referências e leituras adicionais VDM++ Toolbox User Manual (usermanpp_a4.pdf) (cópia local na página da disciplina)