Can AI Close the Design-Code Abstraction Gap?
January 2020 • Conference Paper
This paper argues that the software engineering community can use AI/ML techniques to advance automation in design analysis and to make design improvements.
Aligning the design of a system with its implementation improves product quality and simplifies product evolution. While developers are empowered with AI/ML augmented tools and techniques that increasingly assist them in implementation tasks, the abstraction gap between code and design limits automation for design tasks. In this position paper, we argue that the software engineering community can take advantage of the experiences built with AI/ML techniques to advance automation in design analysis. We summarize research challenges and describe two efforts that apply machine learning to codebases to extract design constructs and detect deviation from intended designs and to use search-based refactoring to make design improvements for extracting functionality.