Automatically Engineering Trusted Software: A Research Roadmap
Recent advances in automated programming have the potential to reduce human involvement in the software engineering process, but this can lead to less trustworthy software. We envision a three-pronged approach to automating the engineering of trustworthy software that involves (1) eliciting requirements from users and automatically generating formal specifications encoding users’ intent, (2) automatically synthesizing source code conforming to those specifications, and (3) automatically synthesizing formal proofs to verify the correctness of the produced software. We describe this vision and the state of the art in each of these three areas, and the research challenges that must be overcome in each area and in their integration.
Authors
- Adish Singla (ORCID: https://orcid.org/0000-0001-9922-0668)
- Yuriy Brun (ORCID: https://orcid.org/0000-0003-3027-7986)
- Saikat Chakraborty (ORCID: https://orcid.org/0000-0002-6889-7171)
- Claire Le Goues
Institutions
- Microsoft (United States) (US)
- Max Planck Institute for Software Systems (DE)
- Athena Research and Innovation Center In Information Communication & Knowledge Technologies (GR)
- Carnegie Mellon University (US)
Publication Details
- Journal
- ACM Transactions on Software Engineering and Methodology
- Published
- 2026-03-02
- DOI
- https://doi.org/10.1145/3779132
- Primary Topic
- Security and Verification in Computing
- Type
- article
- Field-Weighted Citation Impact
- 0.00