Métodos Formais em Engenharia de Software. VDMToolTutorial



Documentos relacionados
Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company Manual

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainmoziware» company Manual Jose Lopes

User Guide Manual de Utilizador

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

Aqui pode escolher o Sistema operativo, e o software. Para falar, faça download do Cliente 2.

VGM. VGM information. ALIANÇA VGM WEB PORTAL USER GUIDE June 2016

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

A necessidade da oração (Escola da Oração) (Portuguese Edition)

COMPUTAÇÃO E PROGRAMAÇÃO

Sistemas Operativos - Mooshak. 1 Mooshak. in fct.ualg.pt/. mooshak.deei.fct.ualg.pt/.

Cluster com MPICH2 no UBUNTU

CODIGOS CONTROLE RS232 Matrix HDMI 4x2 Control EDID/RS232 (GB )

Criar o diagrama entidade associação do exemplo do hotel no Oracle Designer

IBM Rational Quality Manager. Felipe Freire IBM Rational

Accessing the contents of the Moodle Acessando o conteúdo do Moodle

Esboços e Sermões Completos para Ocasiões e Datas Especiais: Mensagens Bíblicas para Todas as Datas da Vida Cristã (Portuguese Edition)

O Jardim Secreto - Coleção Reencontro Infantil (Em Portuguese do Brasil)

SATA 3.5. hd:basic. hdd enclosure caixa externa para disco rígido

A ENTREVISTA COMPREENSIVA: UM GUIA PARA PESQUISA DE CAMPO (PORTUGUESE EDITION) BY JEAN-CLAUDE KAUFMANN

CANape/vSignalyzer. Data Mining and Report Examples Offline Analysis V

NOVO SISTEMA DE CORREIO ELETRONICO PARA OS DOMINIOS ic.uff.br & dcc.ic.uff.br

MANUAL DE UTILIZAÇÃO. Help & Manual Versão Build 2537

Utilizando subversion como controle de versão

hdd enclosure caixa externa para disco rígido

Manual Steps for SAP note

manualdepsiquiatriainfant il manual de psiquiatria infantil

MTM MANUAL DE INSTALAÇÃO DE ADEMPIERE NO LINUX DEBIAN

VGM. VGM information. ALIANÇA VGM WEB PORTAL USER GUIDE September 2016

Aula de ArcGIS Criando uma planta de um

Click the + sign to add new server details. Clique no sinal de "+" para adicionar novos detalhes do servidor. Enter a friendly name for your BI Server

2. Execute o arquivo com o comando a seguir: sudo./alfresco-community-4.2.b-installer-linux-x64.bin

PURCHASE-TO-PAY SOLUTIONS

Parts of the Solar Charger. Charging the Solar Battery. Using the Solar Lamp. Carry in hand. Shows how much light is left. Table light.

Roteiro para legendar vídeos

Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition)

Primavera Risk Analysis v8.7

Disciplina: INF Programação I. 1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010

Versão: 1.0. Segue abaixo, os passos para o processo de publicação de artigos que envolvem as etapas de Usuário/Autor. Figura 1 Creating new user.

Software Testing with Visual Studio 2013 (20497)

Instalando o plugin CDT 4.0

2 Categorias Categories Todas as categorias de actividade são apresentadas neste espaço All activity categories are presented in this space

Manual dos locutores esportivos: Como narrar futebol e outros esportes no rádio e na televisão (Portuguese Edition)

Consultas a banco de dados no ArcView

Transformando Pessoas - Coaching, PNL e Simplicidade no processo de mudancas (Portuguese Edition)

Instruções de Instalação do Agente RMON2

Descrição de Arquitectura e Design. SyncMasters

A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition)

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition)

Abraçado pelo Espírito (Portuguese Edition)

Meditacao da Luz: O Caminho da Simplicidade

Hipnose Na Pratica Clinica

Laboratório 1 SQL Server Integration Services

Roteiro para Solicitação e instalação de certificado digital para aplicação (Windows 2000)

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Bíblia do Obreiro - Almeida Revista e Atualizada: Concordância Dicionário Auxílios Cerimônias (Portuguese Edition)

MANUAL PRATICO DO PLANO DE PROJETO: UTILIZANDO O PMBOK GUIDE BY RICARDO VIANA VARGAS

Tratado de Enfermagem Médico Cirúrgica (Em Portuguese do Brasil)

CODIGOS CONTROLE RS232 Matrix HDMI 4x2 Control EDID/RS232 (GB )

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition)

Bíblia do Obreiro - Almeida Revista e Atualizada: Concordância Dicionário Auxílios Cerimônias (Portuguese Edition)

Direito Processual Civil (Coleção Sucesso Concursos Públicos e OAB) (Portuguese Edition)

A dança do corpo vestido: Um estudo do desenvolvimento do figurino de balé clássico até o século XIX (Portuguese Edition)

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

Planejamento, Recrutamento e Seleção de Pessoal: Como Agregar Talentos à Empresa (Série Recursos Humanos) (Portuguese Edition)

Vaporpunk - A fazenda-relógio (Portuguese Edition)

Oracle R12 x DFE Integration Installation procedures

Serviços: API REST. URL - Recurso

Reabilitação Neurológica (Em Portuguese do Brasil)

UNIVERSIDADE DE SÃO PAULO FACULDADE DE ODONTOLOGIA SERVIÇO DE DOCUMENTAÇÃO ODONTOLÓGICA - SDO MANUAL ENDNOTE WEB: GUIA DO USUÁRIO

Conversação Para Viagem - Inglês (Michaelis Tour) (Portuguese Edition)

Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition)

How to use the system. Meike Borstelmann

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

Transtorno de Personalidade Borderline Mais de 30 segredos para retomar sua vida Ao lidar com TPB (Portuguese Edition)

CODIGOS CONTROLE RS232 Matrix HDMI 4x4 Control EDID/RS232 (GB )

52 maneiras de ganhar mais dinheiro (Portuguese Edition)

Fundamentos da teologia do Novo Testamento (Portuguese Edition)

Computação e Programação 2009 / 2010

Bases de Dados 2007/2008. Aula 1. Referências

Estrelinhas Brasileiras: Como Ensinar a Tocar Piano de Modo Ludico Usando Pecas de Autores Brasileiros - Vol.2

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

Gestão da comunicação - Epistemologia e pesquisa teórica (Portuguese Edition)

Como testar componentes eletrônicos - volume 1 (Portuguese Edition)

ATENÇÃO. Leitura Indispensável

Tutorial Eclipse (IDE)

Energia dos Chakras, Saúde e Autotransformação (Portuguese Edition)

A Bíblia do Pregador - Almeida Revista e Atualizada: Com esboços para sermões e estudos bíblicos (Portuguese Edition)

Os conflitos entre palestinos e israelenses: A trajetória dos fatos históricos e o direito internacional (Portuguese Edition)

Instrução para Instalação de Certificados Digitais de Servidor Web

3.2 Inserindo Referências Manualmente 16-17

Alertas por utilizando SMTP autenticado

Transcrição:

Métodos Formais em Engenharia de Software VDMToolTutorial Ana Paiva apaiva@fe.up.pt www.fe.up.pt/~apaiva

Agenda Install Start Create a project Write a specification Add a file to a project Check syntax and types Check for errors Interpreter Check invariants, pre and post conditions Test cases Test case coverage analysis Build a report

Install VDM++ Toolbox Academic v8.1 Download at http://www.vdmtools.jp/en/index.php Install with administrator privileges Download and run setup

Start Start -> VDMTools -> VDM++ Toolbox Academic v8.1 ou \The VDM++ Toolbox v9.0.2\bin\vppgde.exe

Createa projet(1/1) 1º (doesn t do anything ) 2º Show File name extension Note: There are.rtf and.rtf.rtf files

Adda file to a project(1/2)

Save a project(1/3) 3º 4º Create a directory for each project 5º 6º

Writea specification(2/1) Literal programming (code and documentation together) VDM++ code is written in one RTF (Rich Text Format) document, using syles predefined on the template The VDM++ Toolbox Academic v9.0.2\word\vdm.dot Open file VDM.dot and save it in RTF format, with the name of the class to create, for exemple FStack.rtf, in the project directory Usually, it is good practice to create a directory for each class The file can have VDM++ code and documentation Format the VDM++ code with VDM style

Writea specification(2/2) To open Microsoft Word automatically choose option File->External Editor: Project -> Tool Options

Writea specification(2/3) Style Heading 1 Style Normal Style VDM

Adda file to a project(2/4) Syntax Ok

Checksyntaxandtypes 1º - see the classes 4º -check types 2º select Sintaxe Ok Tipos Ok 3º -check syntax Types Ok Syntax Ok

Errors Double click on the error Description of the error Locate the error Analysis: the problem is that ~ should be located after the name of the variable and not before

Runtheinterpreter-open

Runtheinterpreter-start

Run the interpreter create na object create s := new Stack(2) Stack with small size for testing purposes

Runtheinterpreter stateofanobject print s

Runtheinterpreter stateofanobject print s.push(1) print s.top() print s

Check invariants, pre and post conditions Activate checks

Check invariants, pre and post conditions Pre condition violation

Check invariants, pre and post conditions Pre condition violation Só tem capacidade para 2

Consistencyofthespecification Gera propriedades de integridade para as classes seleccionadas

Testcases intoa testclass 1. Create the file 2. Add to the project 3. Check syntax 4. Check types 5. Run the interpreter 6. Run the following commands:

Coverageanalysis 1º - Put placeholders for coverage analysis tables Name of the class, style VDM_TC_TABLE. It will substituted with table with test case coverage information after doing pretty print.

Coverageanalysis It is possible to do the same thing with test code

Coverageanalysis 2º - For each test case XPTO, prepare two text file (for example in the directory of the project): file XPTO.arg, with command for the interpreter File XPTO.arg.exp, with result expected after running the command (print command) Input Output expected Etc. It should violate pre condition, but there is no way to indicate it (!?)

Coverageanalysis 3º - Prepare test scripts (in same directory)

Coverageanalysis 4º - Run test script OK As expected It also builds a file vdm.tc with code coverage information, to use by pretty printer!

Coverageanalysis 5º - Prepare pretty printer configuration

Coverageanalysis 6º - Run pretty print 2º - pretty print 1º - select 3º - shows up

Coverageanalysis 7º - Analyse the results (files.rtf.rtf!) Not executed code in red 100% code coverage Two oparation that were not executed by test cases

Link to RationalRose 1º - run link to Rational Rose 2º - select classes to synchronize 3º

Rational Rose

Codegeneration Files generated: CGBase.cpp CGBase.h Stack.cpp Stack.h Stack_anonym.cpp Stack_anonym.h

Buildfinal reportofyourprojects Build a Word document, for example master.rtf, in which you should insert links for the several files Insert File -> button Insert as Link You should insert files produced by pretty print (ClassName.rtf.rtf) Use Update field to update the links See example in Stack\master.rtf See example with every files in paginas.fe.up.pt/~apaiva/teach/mfes_material/vdmstack.rar

References and additional reading VDM information web site: http://www.vdmtools.jp/en/index.php VDM++: Language manual http://paginas.fe.up.pt/~apaiva/teach/0910/mfes_files/langmanpp_a4e.pdf VDMTools: User manual http://paginas.fe.up.pt/~apaiva/teach/0910/mfes_files/usermanpp_a4e.pdf VDMTools: Link to Rational Rose http://paginas.fe.up.pt/~apaiva/teach/0910/mfes_files/roselinkpp_a4e.pdf VDMTools: Overture/VDM++ http://wiki.overturetool.org/images/d/d1/vdmppguidetooverturev1.pdf