Computer Science Graduate Seminar: Adaptable Code Generation of Consistent and Customizable Data-Centric Applications with MontiDEx


Wednesday, November 15, 2017, 2:00pm

Location: 2356|055 (5055)

Speaker: Alexander Roth, M.Sc. RWTH


Information systems are software systems that address current demands for harvesting, storing, and manipulating structured information. A part of information systems are client applications (subsequently called data-centric applications) with a graphical user interface (GUI) to execute predefined CRUD (Create, Read, Update, and Delete) operations and display the managed data. The development and prototyping of such software systems contains multiple common and repetitive development tasks such as implementing a data structure, which is a source-code-representation of the managed information, realizing a GUI, and providing access to a persistence infrastructure.

Model-driven development (MDD) aims to reduce the development effort of data-centric applications, improve software quality, and reduce development costs by exploiting platform-independent models as primary development artifacts. Each model is an instance of a domain-specific language (DSL), which enables a highlevel and abstract description of (parts of) a software system using domain terminology. MDD tools systematically transform a model into executable source code.

Nevertheless, effective MDD of data-centric prototypes has to address several challenges. In particular, fully executable prototypes have to be generated including the data structure and GUI, which is necessary to support information gathering from end users. Moreover, adequate DSLs have to be provided to describe structured information and facilitate underspecification that enables prototyping in early stages of the development. These concerns are additionally influenced by orthogonal customization concerns of the generated source code to support agile software development.

Similar holds for MDD of data-centric development, where the same challenges have to be addressed. In addition, an MDD approach has to avoid additional overhead introduced by maintaining DSLs and MDD tools to improve developer acceptance. Furthermore, such an approach has to provide adaptation mechanisms for MDD tools to facilitate MDD tool reuse by enabling framework-like and standalone use. To address the aforementioned challenges, this thesis contributes methods and concepts to a lightweight and agile MDD approach for data-centric application development and its data structure prototyping.

The goal is to improve efficiency in the development by reducing the necessary manual implementation effort for repetitive implementation tasks. In particular, implementing a GUI, a data structure that ensures data consistency, a connection to a persistence infrastructure, and support for process automation, which is considered as the automated execution of CRUD operations. This is achieved by a language family for structural and behavioral modeling, code generators, and lightweight methods. In addition, such an approach is always accompanied by customization, adaptation, and extension concerns. Hence, mechanisms that allow manually-written customizations of the generated source code, and a modular and adaptable code generator design to facilitate code generator reuse are addressed. Furthermore, a method and technical realization for all proposed concepts is provided by the MontiDEx code generator.

Employing the methods proposed in this thesis improves development and prototyping of data-centric applications by providing a unified set of languages and lightweight methods, abstracting from implementation details, and supporting customization and adaptation concerns of generated source code and MDD tools.

The computer science lecturers invite interested people to join.