Mixed Generative and Handcoded Development of Adaptable data-centric Business Applications
Consistent management of structured information is the goal of data-centric business applications. Model-driven development strives to automatically generate such applications. However, current approaches target full or one shot generation of business applications and often neglect simplicity and adaptability of the code generator and the generated code. Moreover, it is necessary to inspect the generated code in order to add functionality. Thus, here we discuss mechanisms for a code generator to generate a lightweight and highly customizable data-centric business application that is targeted for a variety of users including generated application users, tool developers, and product developers. We achieve simplicity by reducing the mapping of the input model to the generated code to a minimal core of easily understandable concepts. As a consequence, the generated code does not need to be read or understood, since the input model clearly describes what is gen- erated. High customizability is achieved by providing a variety of mechanisms to extend the generator and the generated code. These include template overriding and hook points to extend the code generator. Moreover, to extend the generated code we use hot spots and additional manual extension approach. It is even possible to fully control the code generator via a scripting language, which controls the entire generation complete generation process.