Abstract
Formal specifications are central in techniques that are expected to become common software engineering practices in the near term, such as property-based testing or automated program synthesis. Unfortunately, even with state-of-the-art tool support, students and professionals still struggle to write and understand formal logic specifications.
Automated program repair is a very active topic in the software engineering community, with applications in bug fixing, repairing security vulnerabilities, or supporting autonomous learning. Similar techniques for specification repair could support software engineering practitioners in writing correct specifications, by flagging faults and suggesting fixes. Unfortunately, not only are some issues of program repair exacerbated when considering specifications, but new ones arise that hinder the direct application of existing techniques.
The goal of this 18 month exploratory project is to develop a novel technique for automated repair of first-order temporal logic specifications that takes into consideration the user expectations. It brings together a small team of researchers with an extensive background on formal methods, software engineering, fault localization, human-computer interaction, CS education and assessment platforms. Members also double as formal specification teachers in two universities, and have experience on consultancy projects where formal specifications were central artifacts.
Team
- Nuno Macedo, PhD, FEUP & INESC TEC (PI)
- Alexandre Abreu, BSc, FEUP & INESC TEC
- Rui Maranhão Abreu, PhD, FEUP & INESC-ID
- Ana Inês Barros, BSc, FEUP & INESC TEC
- José C. Campos, PhD, UM & INESC TEC
- Jorge Cerqueira, BSc, UM & INESC TEC
- Alcino Cunha, PhD, UM & INESC TEC
- Alexandra Mendes, PhD, FEUP & INESC TEC
- Henrique Neto, BSc, UM & INESC TEC
- Ana C. R. Paiva, PhD, FEUP & INESC TEC
Publications
- J. Cerqueira. Automatic repair of behavioural specifications. MSc Thesis, School of Engineering of the University of Minho. December, 2022.
- J. Cerqueira, A. Cunha and N. Macedo. Timely specification repair for Alloy 6. In the proceedings of the 20th International Conference on Software Engineering and Formal Methods (SEFM). Springer, 2022.
- J. P. Faria and R. Abreu. Case studies of development of verified programs with Dafny for accessibility assessment. In the proceedings of the 10th IPM International Conference on Fundamentals of Software Engineering (FSEN). Springer, 2023.
- J. Brunel, D. Chemouil, A. Cunha and N. Macedo. Adding records to Alloy. In the proceedings of the 9th International Conference on Rigorous State-Based Methods (ABZ). Springer, 2023.
- N. Macedo and A. Cunha. Teaching Alloy with Alloy4Fun. Presented at the 9th International Conference on Rigorous State-Based Methods (ABZ). 2023.
- A. Barros. Data-driven hint generation for Alloy using historical student submissions. MSc Thesis, Faculty of Engineering of the University of Porto. July, 2023.
- A. Abreu. Automatic specification repair in contract programming. MSc Thesis, Faculty of Engineering of the University of Porto. September, 2023.
- A. Abreu, N. Macedo and A. Mendes. Exploring automatic specification repair in Dafny programs. In the proceedings of the 5th International Workshop on Automated and Verifiable Software System Development (ASYDE). IEEE, 2023.
- H. Neto. Mining hints for fixing formal specifications. MSc Thesis, School of Engineering of the University of Minho. December, 2023.
- A. Cunha, N. Macedo, J. C. Campos, I. Margolis and E. Sousa. Assessing the impact of hints in learning formal specification. In the proceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training (SEET@ICSE). ACM, 2024.
- A. Barros, H. Neto, A. Cunha, N. Macedo and Ana C. R. Paiva. Alloy repair hint generation based on historical data. In the proceedings of the 26th International Symposium on Formal Methods (FM). To appear, 2024.
Software
- TAR, search-based repair technique for Alloy 6.
- SpecAssistant, data-base repair technique for Alloy 6.
- HiGenA, hint generation technique for Alloy4Fun.
- ContractChecking, contract repair for Dafny.