Um verificador de modelos em K para um subconjunto da linguagem Circus
Autor(a) principal: | |
---|---|
Data de Publicação: | 2016 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/001300000z8gq |
Texto Completo: | 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 |
2221 |
spelling |
SANTOS, Fabio Soares doshttp://lattes.cnpq.br/1751447780077596http://lattes.cnpq.br/2794026545404598MOTA, Alexandre Cabral2017-11-30T19:32:07Z2017-11-30T19:32:07Z2016-09-15https://repositorio.ufpe.br/handle/123456789/22450ark:/64986/001300000z8gqTestes 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.porUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessCiência da computaçãoSemântica operacionalCircusUm verificador de modelos em K para um subconjunto da linguagem Circusinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILdissertacao-mestrado.pdf.jpgdissertacao-mestrado.pdf.jpgGenerated Thumbnailimage/jpeg1369https://repositorio.ufpe.br/bitstream/123456789/22450/5/dissertacao-mestrado.pdf.jpg69a2e37cf34bfcd9e0427036cb3119b4MD55ORIGINALdissertacao-mestrado.pdfdissertacao-mestrado.pdfapplication/pdf1137883https://repositorio.ufpe.br/bitstream/123456789/22450/1/dissertacao-mestrado.pdf9a8f7f4770dbbe3447440be8dc484c65MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/22450/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82311https://repositorio.ufpe.br/bitstream/123456789/22450/3/license.txt4b8a02c7f2818eaf00dcf2260dd5eb08MD53TEXTdissertacao-mestrado.pdf.txtdissertacao-mestrado.pdf.txtExtracted texttext/plain143168https://repositorio.ufpe.br/bitstream/123456789/22450/4/dissertacao-mestrado.pdf.txt6ea0a2b0c03220a87050df471479cb35MD54123456789/224502019-10-25 22:38:07.697oai:repositorio.ufpe.br:123456789/22450TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLMKgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgpBIFVGUEUgaWRlbnRpZmljYXLDoSBjbGFyYW1lbnRlIG8ocykgbm9tZShzKSBkbyhzKSBhdXRvciAoZXMpIGRvcyBkaXJlaXRvcyBkbyBkb2N1bWVudG8gZW50cmVndWUgZSBuw6NvIGZhcsOhIHF1YWxxdWVyIGFsdGVyYcOnw6NvLCBwYXJhIGFsw6ltIGRvIHByZXZpc3RvIG5hIGFsw61uZWEgYykuCg==Repositó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.pt_BR.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.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/1751447780077596 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/2794026545404598 |
dc.contributor.author.fl_str_mv |
SANTOS, Fabio Soares dos |
dc.contributor.advisor1.fl_str_mv |
MOTA, Alexandre Cabral |
contributor_str_mv |
MOTA, Alexandre Cabral |
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.issued.fl_str_mv |
2016-09-15 |
dc.date.accessioned.fl_str_mv |
2017-11-30T19:32:07Z |
dc.date.available.fl_str_mv |
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 |
dc.identifier.dark.fl_str_mv |
ark:/64986/001300000z8gq |
url |
https://repositorio.ufpe.br/handle/123456789/22450 |
identifier_str_mv |
ark:/64986/001300000z8gq |
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.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
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 |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/22450/5/dissertacao-mestrado.pdf.jpg https://repositorio.ufpe.br/bitstream/123456789/22450/1/dissertacao-mestrado.pdf https://repositorio.ufpe.br/bitstream/123456789/22450/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/22450/3/license.txt https://repositorio.ufpe.br/bitstream/123456789/22450/4/dissertacao-mestrado.pdf.txt |
bitstream.checksum.fl_str_mv |
69a2e37cf34bfcd9e0427036cb3119b4 9a8f7f4770dbbe3447440be8dc484c65 e39d27027a6cc9cb039ad269a5db8e34 4b8a02c7f2818eaf00dcf2260dd5eb08 6ea0a2b0c03220a87050df471479cb35 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172951284121600 |