FlexiGen
a framework design for a flexible generator
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.
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.
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