Mining hints for fixing formal specifications
Mineração de sugestões para corrigir especificações formais
| dc.contributor.advisor | Cunha, Alcino | por |
| dc.contributor.advisor | Macedo, Nuno | por |
| dc.contributor.author | Neto, Henrique Gabriel dos Santos | por |
| dc.date.accessioned | 2024-08-30T10:46:29Z | |
| dc.date.available | 2024-08-30T10:46:29Z | |
| dc.date.issued | 2024-01-08 | |
| dc.date.submitted | 2023-10 | |
| dc.description.abstract | O crescimento da complexidade de aplicações informáticas tornou falhas e erros de software uma inevitabilidade. Para ajudar a garantir que uma aplicação funciona como previsto, profissionais recorrem a modelos de software para detetar e corrigir problemas nas fases iniciais de desenvolvimento. Especificações formais são modelos de software que permitem a desenvolvedores especificar rigorosamente estruturas e comportamentos de software. Infelizmente, a sua complexidade inerente também pode impor problemas nos principiantes que as tentam aprender. Uma maneira possível de abordar este problema seria o emprego de práticas de reparação de especificações e geração automática de sugestões para ajudar os alunos a corrigir tentativas erradas. Alloy4Fun é uma plataforma online para a aprendizagem de Alloy, uma linguagem de especificação formal com capacidades de analise automática. Alloy4Fun permite a instrutores criar e partilhar desafios de especificação formal com avaliação automática. Recentemente, uma técnica de geração automática de sugestões for desenvolvida para esta plataforma, mas provou ser insatisfatória devido ao seu fraco desempenho. O objetivo desta tese foi explorar outras técnicas para geração de sugestões, nomeadamente técnicas de geração de sugestões baseadas em dados, que poderiam usar o conjunto de dados publico de submissões históricas de estudantes do Aloy4Fun para fornecer dicas de forma mais eficiente. O principal resultado desta tese, SpecAssistant, é um novo sistema de geração de dicas baseado em dados para Alloy. Este extrai informação do conjunto de dados do Alloy4Fun para construir grafos de submissões, dos quais são extraídas sugestões a partir de regras personalizadas pelos desenvolvedores de cada desafio. Para avaliar o SpecAssistant, realizamos uma série de experiências quantitativas, com o objetivo de avaliar a disponibilidade e o desempenho do nosso sistema. As nossas descobertas demostram que o SpecAssistant consegue fornecer dicas para uma porção significativa de submissões, apresentado um desempenho que supera o sistema de sugestões precedente. | por |
| dc.description.abstract | The increasing complexity of software applications has made software bugs and errors an inevitability. To help ensure that software functions as intended, professionals rely on software models to detect and correct faults early in the development process. Formal specifications are software models that allow developers to precisely specify software structures and behaviors. Unfortunately, their inherent complexity can also pose problems to newcomers while learning them. One possible way to address this issue could be to employ automated hint and specification repair techniques to help students fix incorrect attempts. Alloy4Fun is an online platform for learning Alloy, a formal specification language with automated analysis features. Alloy4Fun allows educators to create and share specification challenges with automated assessment. Recently, a hint generation technique based on automated repair has been developed for this platform, but proved unsatisfactory due to its poor performance. The goal of this thesis was to explore other techniques for hint generation, namely data-driven hint generation techniques which could leverage the Alloy4Fun public data-set of past student submissions to provide hints more efficiently. The main outcome of this thesis, SpecAssistant, is a new data-driven hint generation system for Alloy. It mines the Alloy4Fun data-set to build submission graphs, from which hints are extracted using policy rules customized by the challenge developers. To evaluate SpecAssistant we performed a series of quantitative experiments, with the goal of assessing our system’s availability and performance. Our findings show that SpecAssistant can provide hints for a significant portion of invalid submissions with a performance that greatly surpasses that of the previous hint system. | por |
| dc.description.sponsorship | 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/2021. | por |
| dc.identifier.tid | 203618416 | por |
| dc.identifier.uri | https://hdl.handle.net/1822/92831 | |
| dc.language.iso | eng | por |
| dc.relation | info:eu-repo/grantAgreement/FCT/3599-PPCDT/EXPL%2FCCI-COM%2F1637%2F2021/PT | por |
| dc.rights | openAccess | por |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | por |
| dc.subject | Alloy | por |
| dc.subject | Geração de dicas automáticas | por |
| dc.subject | Métodos formais | por |
| dc.subject | Mineração de dados | por |
| dc.subject | Automated hint generation | por |
| dc.subject | Data mining | por |
| dc.subject | Formal methods | por |
| dc.subject.fos | Engenharia e Tecnologia | por |
| dc.title | Mining hints for fixing formal specifications | por |
| dc.title.alternative | Mineração de sugestões para corrigir especificações formais | por |
| dc.type | masterThesis | eng |
| dspace.entity.type | Publication | en |
| sdum.degree.grade | 17 valores | por |
| sdum.uoei | Escola de Engenharia | por |
| thesis.degree.grantor | Universidade do Minho | por |
| thesis.degree.name | Mestrado em Engenharia Informática | por |
Ficheiros
Pacote original
1 - 1 de 1
A carregar...
- Nome:
- Henrique Gabriel dos Santos Neto.pdf
- Tamanho:
- 5.02 MB
- Formato:
- Adobe Portable Document Format
- Descrição:
- Dissertação de mestrado