Generating Software for Well-Understood Domains
Jacques Carette, Spencer Smith, Jason Balaci

TL;DR
This paper explores the use of domain-specific languages and generative techniques to create long-lived, well-understood software that reduces duplication and improves traceability, aiming for long-term productivity gains.
Contribution
It introduces a novel approach using domain-specific languages and generative methods to produce de-duplicated, domain-aligned software artifacts for well-understood domains.
Findings
De-duplicated sources are shorter and more domain-aligned.
Prototype Drasil improves traceability and change management.
Potential for long-term productivity improvements.
Abstract
Current software development is often quite code-centric and aimed at short-term deliverables, due to various contextual forces (such as the need for new revenue streams from many individual buyers). We're interested in software where different forces drive the development. \textbf{Well understood domains} and \textbf{long-lived software} provide one such context. A crucial observation is that software artifacts that are currently handwritten contain considerable duplication. By using domain-specific languages and generative techniques, we can capture the contents of many of the artifacts of such software. Assuming an appropriate codification of domain knowledge, we find that the resulting de-duplicated sources are shorter and closer to the domain. Our prototype, Drasil, indicates improvements to traceability and change management. We're also hopeful that this could lead to long-term…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Scientific Computing and Data Management · Advanced Software Engineering Methodologies
