FlexiGen 

a framework design for a flexible generator

Tobias Lindig
Institut für Praktische Informatik und Medieninformatik
Technische Universität Ilmenau
Germany
T.Lindig@gmx.de
http://www.theoinf.tu-ilmenau.de/~tlindig/

Keywords: Framworkdesign FlexiGen, Software-Generator, UML, re-use

Classification: 6 month´s work (diploma thesis)


1 Introduction

The result of my thesis is an design for a White-Box-Framework for the generation of software, which can be used as model in a Model-View-Controller architecture. I named this design FlexiGen as a short form for flexible generator. FlexiGen decouples processing unit and source of information, permits late dynamic loading and combining of both and enables a later extension or adjustment at minimum expenditure. The design is a combination of the Design Patterns Bridge, Singleton, Adapter, Abstract Factory, Factory Method and Template Method.

2 Motivation

In the near future the software engineering will distinguish between technical architecture and business logic. The technical architecture can be re-used in many projects and the business logic describes the individual  peculiarities of a problem. The conflation can be carried out by a generator.

Assignment of generator

Figure 1: Assignment of generator.

To do so, every supplier of a technical solution has to provide a suitable generator. But the problem is, that there many different CASE-Tools on the market with different interfaces. To support all these CASE-Tools the supplier either needs a generator for each or he simply uses a generator-framework based on FlexiGen.

3 Advantage of FlexiGen

FlexiGen can be used to build modular generators which get an UML class diagram as input and generates program code for different languages like C++, Java or DCOM as output. It allows to support different input-sources merely by implementing an appropriate adapter module and if do so the new adapter module can be used by all generator modules for the new input immediately.

Modules of generator

Figure 1: Modules of FlexiGen-based generator

Every adapter module implements the interface "ACToolImpl" that is used by the code generator modules for reading the needed information of the business model.

4 Further topics of the diploma thesis

A set of research projects and products in the field of the generative and component-based software engineering are introduced and the conversion of the items of a UML class diagram to C++ - program code is described. The introduction section deals with the problems of software development and maintenance; furthermore it describes what is meant by "software quality" and how it can be improved. Special attention is thereby applied to the re-use of software and special techniques which support this procedure.

The paper is written in German and can be downloaded here.

 


Email Address of Author: T.Lindig@gmx.de
Last modified: Mittwoch, August 02, 2000