Automatic repair of behavioural specifications

Detalhes bibliográficos
Autor(a) principal: Cerqueira, Jorge Gabriel Alves
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: https://hdl.handle.net/1822/84347
Resumo: Dissertação de mestrado integrado em Informatics Engineering
id RCAP_9c97c68fa8bf32beb70f5a63d9484535
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/84347
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Automatic repair of behavioural specificationsReparação automática de especificações comportamentaisFormal methodsBehavioural specificationsAutomatic specification repairAlloyMétodos formaisEspecificações temporaisReparação automatica de especificaçõesEngenharia e Tecnologia::Outras Engenharias e TecnologiasDissertação de mestrado integrado em Informatics EngineeringSomewhat worryingly, software is becoming increasingly complex with the passing of time. Even though society has become completely dependent on it, there’s still not enough quality teaching and tooling to help software engineers verify the correctness of their solutions. Furthermore, quickly put together solutions are often incentivized over a more rigorous approach. Software is always bound to have bugs. However, formal specification languages allow the modeling of complex systems by specifying the relevant entities, how they interact, and testing the expected guarantees. Hence, helping developers gain valuable understanding of the systems they work with. This approach has the drawbacks of not only being time costly, adding another step in the development process that requires deep understanding of the problem, but also being difficult to learn. The cause is due to the more abstract nature of specification compared to programming, paired with the need to be comfortable working with formal logic concepts. Alloy is a formal specification language capable of structural and behavioral analysis. It is a popular framework for validating and verifying requirements, in part due to its expressiveness and flexibility. This makes it a prime candidate to develop and experiment new automatic repair techniques. They can help experienced developers speed up the process of writing specifications and new developers to learn quicker. With this in mind, some work has been done on repairing flawed structural Alloy models, but none considering behavioral aspects. Thus, this thesis presents an overview of the Alloy language, along with previously proposed automatic repair techniques; it proposes the first mutation-based technique for the automatic repair of first-order temporal logic specifications using Alloy6; also, it describes the integration of an automatic hint generation system for Alloy4Fun, an online platform for teaching Alloy.De forma preocupante, o software está a tornar-se cada vez mais complexo com a passagem do tempo. A sociedade está completamente dependente dele. No entanto, mesmo nos dias que decorrem, não há ensino nem ferramentas suficientes que permitam aos engenheiros de software verificar a correção das suas soluções. Para além disto, soluções construídas rapidamente e com negligência relativamente à qualidade são incentivadas em contraste a uma abordagem mais rigorosa. Todo o tipo de software terá inevitavelmente defeitos. No entanto, as linguagens de especificação formal permitem modelar sistemas complexos através da especificação das entidades relevantes, como as mesmas interagem, e testes das garantias esperadas. Consequentemente isto auxilia profissionais a compreender mais aprofundadamente os sistemas em que trabalham. Esta abordagem tem algumas desvantagens, como ser custosa temporalmente, sendo que adiciona mais um passo no processo de desenvolvimento, para além de ser difícil de aprender. A causa disto vem da natureza abstrata de especificações quando comparadas a programação, em conjunto da necessidade de estar confortável a trabalhar com conceitos de lógica formal. Alloy é uma linguagem de especificação formal, capaz de análise estrutural e também temporal. É uma framework popular para validar e verificar requisitos, em grande parte por ser bastante expressiva e flexível. Isto torna-a uma excelente candidata para desenvolver e testar novas técnicas de reparação automática. Estas podem ser capazes ajudar estudantes a aprender mais rapidamente, tal como acelerar o desenvolvimento para utilizadores experientes. Com esta finalidade, algum trabalho já foi feito em relação à reparação de modelos estruturais em Alloy; no entanto, nada se encontra feito quando se põe em consideração os aspetos temporais. Sendo assim, este trabalho apresenta um resumo da linguagem Alloy, em conjunto com as técnicas de reparação automática já propostas; propõe a primeira técnica baseada em mutações para reparação automática de especificações de lógica de primeira ordem em Alloy 6; para alem disso, descreve a integração de um sistema de geração automática de dicas para a plataforma Alloy4Fun.This work is financed by National Funds through the Portuguese funding agency, FCT – Fundação para a Ciência e a Tecnologia within project EXPL/CCI-COM/1637/2021Cunha, AlcinoMacedo, NunoUniversidade do MinhoCerqueira, Jorge Gabriel Alves20222022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/84347eng203261224info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T12:52:48Zoai:repositorium.sdum.uminho.pt:1822/84347Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:52:01.787348Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Automatic repair of behavioural specifications
Reparação automática de especificações comportamentais
title Automatic repair of behavioural specifications
spellingShingle Automatic repair of behavioural specifications
Cerqueira, Jorge Gabriel Alves
Formal methods
Behavioural specifications
Automatic specification repair
Alloy
Métodos formais
Especificações temporais
Reparação automatica de especificações
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
title_short Automatic repair of behavioural specifications
title_full Automatic repair of behavioural specifications
title_fullStr Automatic repair of behavioural specifications
title_full_unstemmed Automatic repair of behavioural specifications
title_sort Automatic repair of behavioural specifications
author Cerqueira, Jorge Gabriel Alves
author_facet Cerqueira, Jorge Gabriel Alves
author_role author
dc.contributor.none.fl_str_mv Cunha, Alcino
Macedo, Nuno
Universidade do Minho
dc.contributor.author.fl_str_mv Cerqueira, Jorge Gabriel Alves
dc.subject.por.fl_str_mv Formal methods
Behavioural specifications
Automatic specification repair
Alloy
Métodos formais
Especificações temporais
Reparação automatica de especificações
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
topic Formal methods
Behavioural specifications
Automatic specification repair
Alloy
Métodos formais
Especificações temporais
Reparação automatica de especificações
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
description Dissertação de mestrado integrado em Informatics Engineering
publishDate 2022
dc.date.none.fl_str_mv 2022
2022-01-01T00:00:00Z
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://hdl.handle.net/1822/84347
url https://hdl.handle.net/1822/84347
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 203261224
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799133111018061824