Concepts and Tools for Software Composition

Birngruber Dietrich
Institute for Practical Computer Science


Component-based software engineering is a technique for creating modular and reusable software systems. The idea is to compose systems out of prefabricated artifacts. Several component platforms are available today, but the composition process itself has not yet been "componentized"

We argue that there is a need to not only reuse the static parts, i.e. components, but also the composition. Thus we advocate an approach where reusing components and their composition (scripts, glue code, etc.) reduces the efforts for software composition.

The major contributions of this thesis are:

  • to improve the automation of the software composition process,
  • the combination of flexible, component platform independent composition languages and generators, and
  • to provide first-class abstractions for software compositions in an explicit format, which can be further processed by other tools.

A software engineer can reuse libraries of executable compositions in addition to executable components. By automating the composition process, routine tasks are performed by tools, which guide the software engineer through the assembly process.

PhD thesis. Johannes Kepler University of Linz, 2002