Um verificador de modelos em K para um subconjunto da linguagem Circus
| Ano de defesa: | 2016 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | por |
| Instituição de defesa: |
Universidade Federal de Pernambuco
UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://repositorio.ufpe.br/handle/123456789/22450 |
Resumo: | Testes constituem uma parcela significativa da energia despendida em projetos voltados ao desenvolvimento de software. Estima-se que entre 30% a 50% do custo total do projeto é destinado a testes. Esta necessidade de verificar a regularidade de sistemas é bastante antiga e nos últimos anos a busca por novas técnicas e ferramentas que mitiguem o esforço gasto nestas verificações vem se acentuando. Neste contexto, uma técnica que se destaca é a de verificação de modelos (Model checking) que consiste em explorar exaustivamente todos os estados alcançáveis de um determinado sistema no intuito de descrever cenários que indiquem possíveis comportamentos, embasando tal verificação em matemática precisa e inequívoca. Esta técnica tem despertado o interesse de muitas indústrias devido ao sucesso obtido pelo apoio das ferramentas de verificação de modelos (model checkers) em vários projetos de alta complexidade. Estes verificadores são ferramentas que exploram um sistema de transições rotuladas (LTS), construído a partir de algumas especificações (um modelo M), para determinar se uma dada fórmula (f) em lógica temporal, ou propriedade, é válida; ou simplesmente, M |ù f. O presente trabalho apresenta uma forma sistemática de construir um verificador de modelos LTL para um subconjunto da linguagem Circus totalmente baseado na semântica operacional desta linguagem. Mas em vez de codificar diretamente o verificador de modelos em alguma linguagem de programação, é usado o framework K por se tratar de um framework semântico executável à base de reescrita em que as linguagens de programação, sistemas de tipos e ferramentas de análise formais podem ser definidos usando configurações, computações e regras. Além disso, a ferramenta resultante deste trabalho é demostrada com alguns estudos de caso no intuito de comparar seu desempenho bem como aspectos qualitativos com outros verificadores de modelos. |
| id |
UFPE_aa618c85bc3ff2062f28816ecdf7c92f |
|---|---|
| oai_identifier_str |
oai:repositorio.ufpe.br:123456789/22450 |
| network_acronym_str |
UFPE |
| network_name_str |
Repositório Institucional da UFPE |
| repository_id_str |
|
| spelling |
Um verificador de modelos em K para um subconjunto da linguagem CircusCiência da computaçãoSemântica operacionalCircusTestes constituem uma parcela significativa da energia despendida em projetos voltados ao desenvolvimento de software. Estima-se que entre 30% a 50% do custo total do projeto é destinado a testes. Esta necessidade de verificar a regularidade de sistemas é bastante antiga e nos últimos anos a busca por novas técnicas e ferramentas que mitiguem o esforço gasto nestas verificações vem se acentuando. Neste contexto, uma técnica que se destaca é a de verificação de modelos (Model checking) que consiste em explorar exaustivamente todos os estados alcançáveis de um determinado sistema no intuito de descrever cenários que indiquem possíveis comportamentos, embasando tal verificação em matemática precisa e inequívoca. Esta técnica tem despertado o interesse de muitas indústrias devido ao sucesso obtido pelo apoio das ferramentas de verificação de modelos (model checkers) em vários projetos de alta complexidade. Estes verificadores são ferramentas que exploram um sistema de transições rotuladas (LTS), construído a partir de algumas especificações (um modelo M), para determinar se uma dada fórmula (f) em lógica temporal, ou propriedade, é válida; ou simplesmente, M |ù f. O presente trabalho apresenta uma forma sistemática de construir um verificador de modelos LTL para um subconjunto da linguagem Circus totalmente baseado na semântica operacional desta linguagem. Mas em vez de codificar diretamente o verificador de modelos em alguma linguagem de programação, é usado o framework K por se tratar de um framework semântico executável à base de reescrita em que as linguagens de programação, sistemas de tipos e ferramentas de análise formais podem ser definidos usando configurações, computações e regras. Além disso, a ferramenta resultante deste trabalho é demostrada com alguns estudos de caso no intuito de comparar seu desempenho bem como aspectos qualitativos com outros verificadores de modelos.FACEPETests constitute a significant portion of the energy expended in projects aimed at software development. It is estimated that between 30% and 50% of the total project cost is spent in testing. This need to verify the correctness of systems is quite old and in recent years the search for new techniques and tools to mitigate the effort spent on these checks has been increasing. In this context, a technique that stands out is Model Checking. This technique consists in exhaustively exploring all reachable states of a given system in order to check whether a given property, usually given in terms of some temporal logics, is valid. Several industries are interested in this technique due to the success achieved by the support of model checking tools (Model checkers) in various projects of high complexity. This paper presents a systematic way to build a LTL model checker for a subset the Circus language using its operational semantics. But instead of directly encoding the semantics using a programming language, we use the K framework because it is an executable semantic framework based on rewrite rules. Moreover, the resulting tool is exercised with few case studies in order to compare their performance as well as qualitative aspects with other model checkers.Universidade Federal de PernambucoUFPEBrasilPrograma de Pos Graduacao em Ciencia da ComputacaoMOTA, Alexandre Cabralhttp://lattes.cnpq.br/1751447780077596http://lattes.cnpq.br/2794026545404598SANTOS, Fabio Soares dos2017-11-30T19:32:07Z2017-11-30T19:32:07Z2016-09-15info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://repositorio.ufpe.br/handle/123456789/22450porAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2019-10-26T01:38:07Zoai:repositorio.ufpe.br:123456789/22450Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-26T01:38:07Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
| dc.title.none.fl_str_mv |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| title |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| spellingShingle |
Um verificador de modelos em K para um subconjunto da linguagem Circus SANTOS, Fabio Soares dos Ciência da computação Semântica operacional Circus |
| title_short |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| title_full |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| title_fullStr |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| title_full_unstemmed |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| title_sort |
Um verificador de modelos em K para um subconjunto da linguagem Circus |
| author |
SANTOS, Fabio Soares dos |
| author_facet |
SANTOS, Fabio Soares dos |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
MOTA, Alexandre Cabral http://lattes.cnpq.br/1751447780077596 http://lattes.cnpq.br/2794026545404598 |
| dc.contributor.author.fl_str_mv |
SANTOS, Fabio Soares dos |
| dc.subject.por.fl_str_mv |
Ciência da computação Semântica operacional Circus |
| topic |
Ciência da computação Semântica operacional Circus |
| description |
Testes constituem uma parcela significativa da energia despendida em projetos voltados ao desenvolvimento de software. Estima-se que entre 30% a 50% do custo total do projeto é destinado a testes. Esta necessidade de verificar a regularidade de sistemas é bastante antiga e nos últimos anos a busca por novas técnicas e ferramentas que mitiguem o esforço gasto nestas verificações vem se acentuando. Neste contexto, uma técnica que se destaca é a de verificação de modelos (Model checking) que consiste em explorar exaustivamente todos os estados alcançáveis de um determinado sistema no intuito de descrever cenários que indiquem possíveis comportamentos, embasando tal verificação em matemática precisa e inequívoca. Esta técnica tem despertado o interesse de muitas indústrias devido ao sucesso obtido pelo apoio das ferramentas de verificação de modelos (model checkers) em vários projetos de alta complexidade. Estes verificadores são ferramentas que exploram um sistema de transições rotuladas (LTS), construído a partir de algumas especificações (um modelo M), para determinar se uma dada fórmula (f) em lógica temporal, ou propriedade, é válida; ou simplesmente, M |ù f. O presente trabalho apresenta uma forma sistemática de construir um verificador de modelos LTL para um subconjunto da linguagem Circus totalmente baseado na semântica operacional desta linguagem. Mas em vez de codificar diretamente o verificador de modelos em alguma linguagem de programação, é usado o framework K por se tratar de um framework semântico executável à base de reescrita em que as linguagens de programação, sistemas de tipos e ferramentas de análise formais podem ser definidos usando configurações, computações e regras. Além disso, a ferramenta resultante deste trabalho é demostrada com alguns estudos de caso no intuito de comparar seu desempenho bem como aspectos qualitativos com outros verificadores de modelos. |
| publishDate |
2016 |
| dc.date.none.fl_str_mv |
2016-09-15 2017-11-30T19:32:07Z 2017-11-30T19:32:07Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/22450 |
| url |
https://repositorio.ufpe.br/handle/123456789/22450 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| publisher.none.fl_str_mv |
Universidade Federal de Pernambuco UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
| instname_str |
Universidade Federal de Pernambuco (UFPE) |
| instacron_str |
UFPE |
| institution |
UFPE |
| reponame_str |
Repositório Institucional da UFPE |
| collection |
Repositório Institucional da UFPE |
| repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
| repository.mail.fl_str_mv |
attena@ufpe.br |
| _version_ |
1856042065473830912 |