ALEXANDER RIEGER HIPPLER UMA FERRAMENTA GRÁFICA PARA MODELAGEM E DISCRETIZAÇÃO DE SISTEMAS DE TEMPO REAL



Documentos relacionados
3.1 Definições Uma classe é a descrição de um tipo de objeto.

Transformação de um Modelo de Empresa em Requisitos de Software

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Conectar diferentes pesquisas na internet por um menu

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

Usando o Conference Manager do Microsoft Outlook

1. REGISTRO DE PROJETOS

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Especificação do Trabalho

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Endereço de acesso:

Programação Orientada a Objeto

Análise e Projeto Orientados a Objeto

REGISTRO DE PROJETOS

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Classificação: Determinístico

2 Engenharia de Software

Especificação Operacional.

Desenvolvimento estruturado versus orientado a objetos.

LINGUAGEM DE ESPECIFICAÇÃO E DESCRIÇÃO (SDL) APLICADA AO PROCESSO DE VERIFICAÇÃO E VALIDAÇÃO DE SISTEMAS REATIVOS

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Sumário. Introdução ao Microsoft Project. 1 Microsoft Project, gerenciamento de projetos e você 3. 2 Visão geral do Project 11.

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Como criar um blog. Será aberta uma janela onde você deverá especificar o título do blog, o endereço do blog, e o modelo.

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

ESTUDO DE CASO: LeCS: Ensino a Distância

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Integração de livros fiscais com o Microsoft Dynamics AX 2009

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Modelagem de Sistemas

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

Processos de gerenciamento de projetos em um projeto

agility made possible

QUESTÕES PARA ESTUDO DIAGRAMA DE CLASSE

Criar as tabelas para um banco de dados

Manual do Usuário. Menus: Produtor Rural, Propriedade Rural e GTA Módulo: Produtor Rural. dezembro de 13

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

ALEXANDER RIEGER HIPPLER UMA FERRAMENTA GRÁFICA PARA MODELAGEM E DISCRETIZAÇÃO DE SISTEMAS DE TEMPO REAL

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

Tutorial ConvertXtoDVD 3

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

QUALIDADE DE SOFTWARE

Composição de Layout no Spring

Sistemas Operacionais. Prof. André Y. Kusumoto

Unidade 3: Personalizando o Excel *

Micro Mídia Informática Fevereiro/2009

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Portal do Projeto Tempo de Ser

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Astra LX Registro de Pacientes e Médicos Guia para o acesso aos registros de Pacientes e Médicos e eliminação de dados duplicados no AstraLX

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Guia de Usuário do Servidor do Avigilon Control Center. Versão 5.6

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

Descrição do Produto. Altus S. A. 1

TÉCNICAS DE PROGRAMAÇÃO

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

MANUAL DA SECRETARIA

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Processos de Software

ITIL v3 - Operação de Serviço - Parte 1

Atualizações de Software Guia do Usuário

Desenvolvimento de uma Etapa

Atualização, Backup e Recuperação de Software. Número de Peça:

MODELAGEM E SIMULAÇÃO

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Análise e Projeto de Software

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

Migrando para o Word 2010

Casos de uso Objetivo:

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Análise de Tarefas. Análise Hierárquica de Tarefas

Para o OpenOffice Impress, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

4.1. UML Diagramas de casos de uso

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

Guia do Usuário. idocs Content Server v

Manual de Utilização

Guia de utilização da notação BPMN

UML: Diagrama de Casos de Uso, Diagrama de Classes

IMPRESSÃO DE DADOS VARIÁVEIS usando Adobe InDesign e OpenOffice.org

MODELAGEM DE SISTEMAS

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4

Manual das planilhas de Obras v2.5

Análise e Projeto Orientados por Objetos

BR DOT COM SISPON: MANUAL DO USUÁRIO

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Segurança de Aplicações Aula 14

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Transcrição:

ALEXANDER RIEGER HIPPLER UMA FERRAMENTA GRÁFICA PARA MODELAGEM E DISCRETIZAÇÃO DE SISTEMAS DE TEMPO REAL LONDRINA PR 2013

ALEXANDER RIEGER HIPPLER UMA FERRAMENTA GRÁFICA PARA MODELAGEM E DISCRETIZAÇÃO DE SISTEMAS DE TEMPO REAL Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. Dr. Adilson Luiz Bonifacio Coorientador: Prof(a). Dr(a). Nome do(a) Coorientador(a) LONDRINA PR 2013

Alexander Rieger Hippler Uma Ferramenta Gráfica para Modelagem e Discretização de Sistemas de Tempo Real/ Alexander Rieger Hippler. Londrina PR, 2013-43 p. : il. (algumas color.) ; 30 cm. Orientador: Prof. Dr. Adilson Luiz Bonifacio Universidade Estadual de Londrina, 2013. 1. Palavra-chave1. 2. Palavra-chave2. I. Orientador. II. Universidade xxx. III. Faculdade de xxx. IV. Título CDU 02:141:005.7

ALEXANDER RIEGER HIPPLER UMA FERRAMENTA GRÁFICA PARA MODELAGEM E DISCRETIZAÇÃO DE SISTEMAS DE TEMPO REAL Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Estadual de Londrina para obtenção do título de Bacharel em Ciência da Computação. BANCA EXAMINADORA Prof. Dr. Adilson Luiz Bonifacio Universidade Estadual de Londrina Orientador Prof. Dr. Segundo Membro da Banca Universidade/Instituição do Segundo Membro da Banca Prof. Msc. Terceiro Membro da Banca Universidade/Instituição do Terceiro Membro da Banca Londrina PR, 24 de novembrode 2013 LONDRINA PR 2013

alguma frase (dedicatória)

AGRADECIMENTOS

outra frase (epígrafe)

HIPPLER, A. R.. Uma Ferramenta Gráfica para Modelagem e Discretização de Sistemas de Tempo Real. 43 p. Trabalho de Conclusão de Curso (Graduação). Bacharelado em Ciência da Computação Universidade Estadual de Londrina, 2013. RESUMO O processo de teste de software possui um papel fundamental no ciclo de vida de um software. Teste Baseado em Modelos é uma abordagem que utiliza formalismos para testar sistemas e é cada vez mais alvo de estudos devido a capacidade de automação de geração de casos de teste deste tipo. Existem técnicas para geração de casos de teste específicas para sistemas críticos e de tempo real. Esse trabalho propôs o desenvolvimento de uma ferramenta gráfica para modelagem TIOA com o objetivo de facilitar o processo de teste de sistemas dessa natureza. Palavras-chave: modelos. tioa. sistema de tempo real. discretização.modelagem.teste de software

HIPPLER, A. R.. A Graphical Tool for Modeling and Discretization of Real Time Systems. 43 p. Final Project (Undergraduation). Bachelor of Science in Computer Science State University of Londrina, 2013. ABSTRACT The software testing process is a crucial part of a software life cycle. Model Based Testing is an approach that uses formalisms to test systems and it has becoming focus of studies due to its capability of automation of generating test cases of this kind. There are techniques for generating test cases specifically for critical and real-time systems. This paper proposed the development of a graphical tool for modeling TIOA in order to facilitate the process of testing systems of that nature. Keywords: models. tioa. real time system. discretization. modelling. software testing

LISTA DE ILUSTRAÇÕES Figura 1 Processo de teste de software baseado em modelos............ 26 Figura 2 Modelo TIOA de um sistema de controle de porta automática..... 29 Figura 3 Diagrama de Pacotes............................ 33 Figura 4 Pacote GUI................................. 34 Figura 5 Pacote TIOA................................ 36 Figura 6 Pacote Junglayer.............................. 36 Figura 7 Diagrama de Classes............................ 37

LISTA DE TABELAS

SUMÁRIO Introdução..................................... 21 I Revisão de Literatura 23 1 Fundamentação................................ 25 1.1 Sistemas de Tempo Real........................... 25 1.2 Teste Baseado em Modelos.......................... 25 1.3 Formalismos.................................. 27 1.3.1 MEF.................................. 27 1.3.2 BTDA................................. 27 1.3.3 TIOA................................. 28 1.4 Discretização................................. 28 1.5 Extração de casos de teste.......................... 30 II A Ferramenta 31 IIIResultados 39 Referências..................................... 43

21 INTRODUÇÃO A etapa de teste possui um papel fundamental no ciclo de vida de um software. Seu objetivo é encontrar erros no sistema através de técnicas definidas de teste. Em geral, o teste de software consiste em aplicar um conjunto de casos de testes (chamado de suite de testes) à implementação, observar as reações obtidas do sistema e compará-las às reações que eram esperadas conforme a especificação [1]. Problemas decorrentes de um mau entendimento do problema a ser solucionado ou da solução proposta são habitualmente encontrados no decorrer do desenvolvimento de um software. Os modelos formais são criados com o objetivo de obter uma representação livre de ambiguidades. O Teste Baseado em Modelos é uma abordagem de teste de software que utiliza rigor matemático em modelos formais. Várias abordagens desse tipo vêm sido propostas para facilitar a etapa de teste, como métodos automatizados de extrair casos de teste mais precisos e eficientes [2]. Porém ainda existem poucas aplicações reais do Teste Baseado em Modelos [1, 3]. Sistemas de tempo real, em geral, são sistemas com restrições temporais e com evolução de tempo contínuo. Exemplos de sistemas com essas características são os microcomputadores que controlam o motor dos carros, sistemas de controle de tráfego aéreo e sistemas que controlam a respiração de pacientes em coma. Ao modelar um sistema de tempo real, uma das dificuldades é representar de forma satisfatória a evolução contínua e infinita do tempo, uma vez que isso pode levar a execuções infinitas do sistema. Lidar com a continuidade do tempo utilizando modelos formais é ainda mais complexo quando a atividade visa o teste de sistemas desse tipo [4]. Para solucionar o problema da continuidade e infinitude do tempo em modelagens de sistemas de tempo real, vários trabalhos propõem soluções baseadas na discretização de modelos [5, 6, 7]. Modelos gerados através da discretização, chamados de grids, capturam vários aspectos do sistema através do tempo, permitindo uma análise aprofundada de possíveis execuções do sistema. Este trabalho propõe o desenvolvimento de um ambiente gráfico para a modelagem visual de TIOAs, visando facilitar a aplicação de teste baseado em modelos em sistemas reais, além de uma técnica de ajuste de modelos desse tipo. A ferramenta será integrada à uma ferramenta de discretização e extração de casos de teste desenvolvida pelos autores deste trabalho. O texto está organizado da seguinte forma...

Parte I Revisão de Literatura

25 1 FUNDAMENTAÇÃO Testes em softwares são realizados para verificar a concordância entre uma especificação e sua implementação, garantindo assim que um sistema ou uma seção específica desempenham seu papel esperado. Um teste de software pode ser classificado como sendo de: Caixa-branca, ou teste estrutural, que verifica se a estrutura do sistema coincide com a estrutura especificada; e Caixa-preta, ou teste funcional, que analisa as saídas obtidas a partir de um conjunto de entradas. Testes de caixa-preta são baseados nos requisitos funcionais de um sistema. Funcionam a partir da óptica do usuário, ou seja, focam nas saídas produzidas para entradas específicas sem se preocupar em como o sistema será estruturado ou funciona. Tais entradas fornecidas ao sistema são chamados de casos de teste. Casos de teste são extraídos da especificação e sõa sequências de entradas onde o resultado esperado dessa sequência é conhecido. Com isso, ao aplicar um caso de teste à implementação do sistema, obtém-se um resultado que deverá estar em concordância com o resultado esperado pela especificação, garantindo o funcionamento ideal do sistema. Num conjunto de casos de testes, chamado de suite de testes, dois ou mais deles podem cobrir um mesmo comportamento do sistema, causando redundância no conjunto de teste [2]. Assim, uma etapa de teste eficiente não depende apenas do número de casos de teste na suite, mas sim da abrangência que essa suite possui. 1.1 SISTEMAS DE TEMPO REAL formais? Onde é melhor colocar esta seção? Antes ou depois de falar de testes e dos modelos 1.2 TESTE BASEADO EM MODELOS Nas abordagens mais tradicionais de teste os casos de teste são modelados utilizando o apoio de linguagem natural. Utilizar abordagens desse tipo podem gerar ambiguidades na interpretação, o que pode causar testes mal aplicados e, consequentemente, em produtos com erros [2]. O teste baseado em modelos é uma abordagem de teste de caixa-preta onde o SUT(System Under Test) passa a ter seus aspectos representados por lingaguens bem definidas, como UML, ou por um ou mais modelos formais, evitando assim o uso de linguagem natural.

26 Capítulo 1. Fundamentação Initial Análise de Requisitos Especificação Implementação Modelagem Código-fonte Modelo formal Extração de casos de teste Casos de teste Execução de testes Veredito Figura 1 Processo de teste de software baseado em modelos Como a modelagem do sistema não depende da implementação, as duas atividades podem ser feitas paralelamentes durante o decorrer do projeto (veja Figura 1). A partir da modelagem feita, casos de testes abstratos podem ser extraídos. De um conjunto de casos de testes abstratos extrai-se uma suite de testes executáveis através de um mapeamento entre ações abstratas e ações executáveis. Esta suite de testes é então aplicada ao sistema e obtém-se um conjunto de saídas. Por fim, as saídas obtidas com a execução da suite de teste são comparadas com as saídas esperadas e da-se o veredito do teste. O veredito "OK"é dado à execução dos testes caso as saídas obtidas estejam de acordo com a saídas esperadas. Caso contrário o sistema é dito como falho. Para a execução de teste baseado em modelos, vários modelos formais podem serem utilizados para descrever o SUT, com diferentes níveis de abstração, diferentes sintaxes e diferentes semânticas. Alguns dos modelos mais utilizados são Máquinas de Estados

1.3. Formalismos 27 Finitos (MEF) [8, 2], Bounded Time Domain Automaton (BTDA) e Timed Input/Output Automaton (TIOA) [9, 4, 1]. 1.3 FORMALISMOS Nesta seção estão as definições dos modelos formais que serão citados ou utilizados no decorrer do trabalho. 1.3.1 MEF MEF (Máquinas de Estados Finitos) é um modelo formal comumente utilizado para representar sistemas reativos com estímulos, operações e um número finito de estados [2]. Os estímulos são as ações de entradas do sistema e as operações são as ações de saída. Embora muitos trabalhos utilizem este modelo formal para realizar a modelagem e a geração de casos de teste, este trabalho focará no uso do modelo formal TIOA, descrito na seção 1.3.3. 1.3.2 BTDA O BTDA, modelo formalizado por Gawlick et al [10], possui estados, símbolos de ação, variáveis de relógio, invariantes de estado e transições para representar o funcionamento de um software. A progressão do sistema é dada por uma sequência de evoluções contínuas de tempo, interrompidas por transições discretas [11]. sendo: Um BTDA B é formalmente caracterizado por uma tupla (S, S 0, Σ, C, v 0, Inv, T ), S: o conjunto de estados do modelo; s 0 : o estado inicial do sistema; Σ: o conjunto de símbolos de ação; C: conjunto de relógios do sistema; v 0 : uma interpretação inicial de relógios. É um conjunto de interpretações v(c), c C Inv: mapeamento de invariantes de cada estado. É uma função Inv : S Φc que mapeia cada condição de relógio de um estado; T : conjunto de transições do modelo, onde T (S Σ Φc [C Q ] S);

28 Capítulo 1. Fundamentação A interpretação de uma transição (s, z, δ, θ, r) é que o sistema parte do estado s e muda para o estado r com a ação z, se a condição δ estiver sendo satisfeita no momento da transição. Com a execução da transição, o mapeamento θ [C Q ] indica quais valores de relógio serão alterados. Note que o reset de valores de relógio pode possuir quaisquer valores, não apenas zero. Uma condição δ possui a forma c op x, onde c C, op {<,, =,, >} e x é um número natural. 1.3.3 TIOA O modelo TIOA, utilizado principalmente na modelagem de sistemas temporizados, é uma variação do modelo BTDA que acrescenta um particionamento do conjunto Σ de ações entre um conjunto I de ações de entrada e um conjunto O de ações de saída. A definição formal de um TIOA é dada por uma tupla (B, I, O) [7], onde B é um BTDA; I e O particional Σ de B entre ações de entrada e ações dea saída, respectivamente. A figura 2 é um modelo TIOA de um sistema de controle de portas automáticas. O sistema inicia num estado de inicialização e permanece nesse estado por no máximo 5 unidades de tempo. Cada estado possui um nome de identificação e sua invariante, isto é, uma condição de tempo que deve ser satisfeita para que o sistema permaneça nesse estado. As transições possuem respectivamente: uma ação de saída ou de entrada; uma condição de relógio que deve ser satisfeita para que a transição ocorra; e a reinicialização de relógios do sistema. Esse sistema de controle de portas automáticas possui, portanto, os relógios rel_inic, rel_op, rel_estado, os estados Inicializando, Fechada, Abrindo, Aberta e Fechando. Abre e Fecha são ações de entradas e fim_abre, fim_fecha e fim_inic, ações de saída. 1.4 DISCRETIZAÇÃO Como ainda não existem maneiras de representar computacionalmente a evolução contínua e infinita do tempo, extrair casos de testes diretamente de um TIOA é impraticável [1, 7]. Para extrair casos de testes é então necessário realizar uma discretização dos movimentos do modelo.

1.4. Discretização 29 Inicial Inicializando,rel_ini 5 fim_inic, (rel_ini 5), ( ) Fechada abre, ( ), (rel_op := 0) fim_feche, (rel_op == 4), () Abrindo, rel_op 4 Fechando, rel_op 4 fim_abre, (rel_op 4), (rel_estado := 0) feche, (rel_estado == 5), (rel_op := 0) Aberta, rel_state 5 Figura 2 Modelo TIOA de um sistema de controle de porta automática Discretizar um modelo significa obter um conjunto finito de representações do sistema, dada uma granularidade de tempo g escolhida. Para representar esse conjunto gerado, muitos trabalhos utilizam de regiões de clock e gráficos de amostragem [1, 9]. Em [7] é proposta uma técnica de discretização que gera um autômato grid para representar o conjunto gerado. Para a discretização, é escolhida uma granularidade de tempo qualquer na forma 1/n, sendo n um inteiro positivo. Um grid é definido formalmente [4] como uma tupla G = (S, s, Σ, T ), onde: S é o conjunto finito de estados do modelo; s é o estado inicial do grid; Σ g é o conjunto de rótulos do grid, sendo Σ o conjunto de ações do TIOA utilizado

30 Capítulo 1. Fundamentação na discretização e g a granularidade escolhida; T (S (Σ g) S) é o conjunto finito de transições entre estados do grid através da ação z (Σ g). 1.5 EXTRAÇÃO DE CASOS DE TESTE Um caso de teste é uma sequência de estímulos utilizados de entrada ao sistema. A sequência de saídas obtidas do sistema é caracteriza o comportamento do sistema. Um sistema possui sua implementação e sua especificação em concordância quando ambos possuem o mesmo comportamento. Aqui vai uma imagem de um trecho do grid gerado com a discretização do TIOA da figura, usado para explicar a extração e etc Como os modelos feitos são passíveis de possuir execuções infinitas, a extração de casos de teste ocorre a partir de um modelo discretizado.

Parte II A Ferramenta

1.5. Extração de casos de teste 33 A ferramenta gráfica foi modelada utilizando fundamentos da UML (Unified Modelling Language) e desenvolvida utilizando a linguagem Java. É possível ver na Figura 3 como foi feita a organização do sistema em pacotes. Para realizar a modelagem foi utilizada como suporte a biblioteca Jung 1. O pacote tioa possui as classes pertinentes ao modelo formal TIOA, suas classes de estados e transições e a classe responsável por fazer a leitura de TIOAs em arquivos. No pacote junglayer estão as classes relacionadas à bibliteoca Jung e personalizações para a solução em questão. Em gui estão as classes de interface gráfica, como JFrames, JPopups e JDialogs. Figura 3 Diagrama de Pacotes Os principais objetivos da ferramenta são a modelagem visual de TIOAs, a discretização em grid do modelo criado e a extração de um conjunto de casos de testes a partir do grid gerado. Nas imagens 4, 5 e 6 é possível ver as classes existentes dentro de cada pacote. A imagem 7 mostra o diagrama de classes completo e a relação entre cada pacote e classe. No pacote gui (Figura 4) estão as classes: Frame: é a janela principal da ferramenta. Possui a área de edição de TIOAs e o menu principal, do qual é possível criar, abrir e salvar modelos, além de acessar a janela com atributos do TIOA e as janelas que dão acesso as ferramentas de discretização e extração; TIOAEditor: classe responsável por exibir o TIOA e gerenciar as modificações feitas ao modelo; MultiEditor: área de edição de TIOAS dentro do Frame que possui várias instâncias do TIOAEditor, suportando assim que vários TIOAS sejam exibidos e modificados ao mesmo tempo; 1 disponível em http://jung.sourceforge.net/

34 Capítulo 1. Fundamentação Figura 4 Pacote GUI

1.5. Extração de casos de teste 35 ExtractorUI: janela que faz a interface gráfica entre o usuário e a ferramenta de extração de casos de teste. O usuário fornece de entrada um arquivo salvo contendo um modelo grid e escolhe onde salvar os casos de teste extraídos; DiscretizatorUI: faz a interface entre o usuário e a ferramenta de discretização. Deve ser dado de entrada um modelo TIOA salvo, a granularidade desejada para a discretização e o caminho do arquivo que será escrito o grid gerado ; StateMenu: menu simples para auxiliar o usuário na manipulação de estados. Através dele o usuário pode excluir, abrir a janela de edição do estado ou tornar o estado como estado inicial do modelo; TransitionMenu: similar ao StateMenu, possibilita que o usuário exclua uma transição ou abra a janela de edição da transição; PopupPropertiesTIOATransitions: PopupPropertiesTIOAState: PopupTIOADeclarations: O pacote tioa (Figura 5) possui as seguintes classes: TIOA: TIOAState: TIOATransitions: TIOAParser: Foram organizadas no pacote junglayer (Figura 6) as seguintes classes: EditingModalTIOAMouse: EditingTIOAMousePlugin: PopupMenuMousePlugin:

36 Capítulo 1. Fundamentação Figura 5 Pacote TIOA Figura 6 Pacote Junglayer

1.5. Extração de casos de teste 37 Figura 7 Diagrama de Classes

Parte III Resultados

CONCLUSÃO 41

43 REFERÊNCIAS 1 EN-NOUAARY, A.; DSSOULI, R. A guided method for testing timed input output automata. In: Proceedings of the 15th IFIP international conference on Testing of communicating systems. Berlin, Heidelberg: Springer-Verlag, 2003. (TestCom 03), p. 211 225. ISBN 3-540-40123-7. Disponível em: <http://dl.acm.org/citation-.cfm?id=1764575.1764596>. 2 JR., G. D.; BONIFáCIO, A. L. A tool to support model-based testing activities. Brazillian Symposium on Computing System Engineering, 2011. 3 BERTOLINO, A. Software testing research: Achievements, challenges, dreams. In: 2007 Future of Software Engineering. Washington, DC, USA: IEEE Computer Society, 2007. (FOSE 07), p. 85 103. ISBN 0-7695-2829-5. Disponível em: <http://dx.doi.org- /10.1109/FOSE.2007.25>. 4 JUNIOR, G.; BONIFÁCIO, A. L. Detecção de falhas em autômatos grid. In: SBC. XIII Workshop de Teste e Tolerância a Falhas. Ouro Preto, MG: SBC, 2012. p. 131 144. 5 SPRINGINTVELD, J.; VAANDRAGER, F.; D ARGENIO, P. R. Testing timed automata. In: IN B. JONSSON AND J. PARROW (EDS.), PROC. FTRTFT 96, LNCS 1135. [S.l.]: Springer, 1996. p. 130 147. 6 EN-NOUAARY, A.; HAMOU-LHADJ, A. A boundary checking technique for testing real-time systems modeled as timed input output automata (short paper). In: Proceedings of the 2008 The Eighth International Conference on Quality Software. Washington, DC, USA: IEEE Computer Society, 2008. (QSIC 08), p. 209 215. ISBN 978-0-7695-3312-4. Disponível em: <http://dx.doi.org/10.1109/qsic.2008.53>. 7 BONIFáCIO, A. L.; MOURA, A. V. A new method for testing timed systems. Software Testing, Verification and Reliability, mar. ISSN 09600833. Disponível em: <http://dx.doi.org/10.1002/stvr.454>. 8 BONIFáCIO, A. L.; MOURA, A. V.; ao, A. d. S. S. A generalized model-based test generation method. In: Proceedings of the 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods. Washington, DC, USA: IEEE Computer Society, 2008. (SEFM 08), p. 139 148. ISBN 978-0-7695-3437-4. Disponível em: <http://dx.doi.org/10.1109/sefm.2008.17>. 9 EN-NOUAARY, A. A scalable method for testing real-time systems. Software Quality Control, Kluwer Academic Publishers, Hingham, MA, USA, v. 16, n. 1, p. 3 22, mar. 2008. ISSN 0963-9314. Disponível em: <http://dx.doi.org/10.1007/s11219-007-9021-8>. 10 SEGALA, R. et al. Liveness in timed and untimed systems. Inf. Comput., v. 141, n. 2, p. 119 171, 1998. Disponível em: <http://dblp.uni-trier.de/db/journals/iandc- /iandc141.html>. 11 BONIFáACIO, A. L.; MOURA, A. S.; JC, M. Conformance testing by model checking timed extended finite state machine. Brazilian Symposium on Formal Methods, p. 43 58, 2006.