Can AI Close the DesignCode Abstraction Gap? Aligning the design of a system with its implementation improves product quality and simplifies product evolution. While developers are empowered with AIML 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 AIML 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 searchbased refactoring to make design improvements for extracting functionality.

On the Engineering of AIPowered Systems More and more tasks become solvable using deep learning technology nowadays. Consequently, the amount of neural network code in software rises continuously. To make the new paradigm more accessible, frameworks, languages, and tools keep emerging. Although, the maturity of these tools is steadily increasing, we still lack appropriate domain specific languages and a high degree of automation when it comes to deep learning for productive systems. In this paper we present a multiparadigm language family allowing the AI engineer to model and train deep neural networks as well as to integrate them into software architectures containing classical code. Using input and output layers as strictly typed interfaces enables a seamless embedding of neural networks into componentbased models. The lifecycle of deep learning components can then be governed by a compiler accordingly, e.g. detecting when (re)training is necessary or when network weights can be shared between different network instances. We provide a compelling case study, where we train an autonomous vehicle for the TORCS simulator. Furthermore, we discuss how the methodology automates the AI development process if neural networks are changed or added to the system.