Use este identificador para citar ou linkar para este item:
https://repositorio.ufpe.br/handle/123456789/39492
Compartilhe esta página
Registro completo de metadados
Campo DC | Valor | Idioma |
---|---|---|
dc.contributor.advisor | TEIXEIRA, Leopoldo Motta | - |
dc.contributor.author | ALVES, Thayonara de Pontes | - |
dc.date.accessioned | 2021-03-26T16:07:17Z | - |
dc.date.available | 2021-03-26T16:07:17Z | - |
dc.date.issued | 2020-10-27 | - |
dc.identifier.citation | ALVES, Thayonara de Pontes. Porting the software product line refinement theory to the coq proof assistant: a case study. 2020. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020. | pt_BR |
dc.identifier.uri | https://repositorio.ufpe.br/handle/123456789/39492 | - |
dc.description.abstract | Proofs are not a simple task to be performed. Some barriers are also put in place when it comes to checking them, as there are proofs that are so specialized that few people can even understand them or so long that few have time to check them. Computers have been an ally in this sense, as they support those who deal with it, automating all or part of the process, in addition to performing the verification of the proof steps. In this context, we have proofs as sistants that are capable of generating some proof steps automatically, but that still need the collaboration of a user to conduct the process. There are a variety of proof assistants, how ever, with different purposes. A better understanding of strengths and weaknesses regarding these systems can lead to a choice that means less effort for formalization and proof, for instance. In this work, we codified a specification of the software product line refinement theory in the Coq proof assistant. This theory guarantees that we are not introducing errors or changing the behavior of existing products in a product line during an evolution, ensuring a safe evolution. This theory has been specified and proved using the Prototype Verification System (PVS) proof assistant. Nevertheless, the Coq proof assistant is increasingly popular among researchers and practitioners, and, given that some programming languages are al ready formalized into such tool, the refinement theory might benefit from the potential in tegration. Therefore, in this work we present a case study on porting the PVS specification of the refinement theory to Coq. This specification includes specific models such as Feature Model, Asset Mapping, and Configuration Knowledge, as well as instantiation using Type classes and formalizing templates that can be used in SPL evolution scenarios. Moreover, due to the fact that this theory has already been formalized in the PVS, we compare the proof as sistants based on the noted differences between the specifications and proofs of this theory, providing some reflections on the tactics and strategies used to compose the proofs. Accord ing to our study, PVS provided more succinct definitions than Coq, in several cases, as well as a greater number of successful automatic commands that resulted in shorter proofs. Despite that, Coq also brought facilities in definitions such as enumerated and recursive types, and features that support developers in their proofs. | pt_BR |
dc.description.sponsorship | FACEPE | pt_BR |
dc.language.iso | eng | pt_BR |
dc.publisher | Universidade Federal de Pernambuco | pt_BR |
dc.rights | openAccess | pt_BR |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/br/ | * |
dc.subject | Engenharia de software | pt_BR |
dc.subject | Linguagens de programação | pt_BR |
dc.title | Porting the software product line refinement theory to the coq proof assistant : a case study | pt_BR |
dc.type | masterThesis | pt_BR |
dc.contributor.authorLattes | http://lattes.cnpq.br/5584407561861248 | pt_BR |
dc.publisher.initials | UFPE | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.degree.level | mestrado | pt_BR |
dc.contributor.advisorLattes | http://lattes.cnpq.br/2117651910340729 | pt_BR |
dc.publisher.program | Programa de Pos Graduacao em Ciencia da Computacao | pt_BR |
dc.description.abstractx | As provas não são uma tarefa simples de serem realizadas. Algumas barreiras também são postas quando se trata de verificá-las, uma vez que existem provas que são tão especial izadas que poucas pessoas são capazes de entendê-las ou tão longas que poucas dispõe de tempo para checá-las. Os computadores vêm sendo um aliado nesse sentido, pois dão su porte para aqueles que lidam com isso, automatizando todo ou parte do processo, além de realizar a verificação dos passos de provas. Nesse contexto, temos os assistentes de provas que são capazes de gerar alguns passos de provas de forma automática, mas que ainda pre cisam da colaboração de um usuário para conduzir o processo. Existem uma variedade de assistentes de provas, porém, com finalidades diferentes. Um melhor entendimento de pon tos fortes e fracos a respeito desses sistemas podem levar a uma escolha que signifique em um menor esforço de formalização e prova, por exemplo. Nesse trabalho, codificamos uma especificação da teoria de refinamento de linha de produtos de software no assistente de provas Coq. Essa teoria dá a garantia de que não estamos introduzindo erros ou alterando o comportamento dos produtos existentes de uma linha de produtos durante uma evolução, assegurando uma evolução segura. Esta teoria foi especificada e comprovada usando o as sistente de prova Prototype Verification System (PVS). No entanto, um outro assistente de prova, Coq, tem se tornado cada vez mais popular entre pesquisadores e desenvolvedores e, dado que algumas linguagens de programação já estão formalizadas em tal ferramenta, a teoria do refinamento pode se beneficiar do potencial de integração. Dessa forma, neste trabalho, apresenta-se um estudo de caso sobre a portabilidade da especificação PVS da teoria de refinamentos para Coq. Esta especificação inclui modelos específicos, tais como Feature Model, Asset Mapping e Configuration Knowlegde, como também a instanciação us ando Typeclasses, além da formalização de templates que podem ser usados em cenários de evolução de SPL. Adicionalmente, pelo fato dessa teoria já ter sido formalizada no PVS, este trabalho compara os assistentes de prova com base nas diferenças observadas entre as es pecificações e as provas dessa teoria, proporcionando algumas reflexões sobre as táticas e estratégias utilizadas para compor as provas. Como resultado, de acordo com este estudo, o PVS forneceu definições mais sucintas do que o Coq, em vários casos, bem como um maior número de comandos automáticos bem-sucedidos que resultaram em provas mais curtas. Apesar disso, Coq também trouxe facilidades nas definições, como tipos enumerados e re cursivos, e recursos que dão suporte aos desenvolvedores em suas provas. | pt_BR |
Aparece nas coleções: | Dissertações de Mestrado - Ciência da Computação |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
DISSERTAÇÃO Thayonara de Pontes Alves.pdf | 1,72 MB | Adobe PDF | ![]() Visualizar/Abrir |
Este arquivo é protegido por direitos autorais |
Este item está licenciada sob uma Licença Creative Commons