German pages

Generative and Component-Based Software Engineering

Working Group of the "Geselschaft für Informatik"-Fachgruppe 2.1.9: Objektorientierte Softwareentwicklung

What is generative and component-based software engineering?

The goal of generative and component-based software engineering is to increase the productivity, quality, and time-to-market in software development thanks to the deployment of both standard componentry and production automation. One important paradigm shift implied here is to build software systems from standard componentry rather than "reinventing the wheel" each time. This requires thinking in terms of system families rather than single systems. Another important paradigm shift is to replace manual search, adaptation, and assembly of components with the automatic generation of needed components on demand. Generative and component-based software engineering seeks to integrate domain engineering approaches, component-based approaches, and generative approaches.

Some links to related projects

Parameterization

Parameterization models (e.g. type parameterization and the GenVoca model of parameterized layered architectures) play an important role in designing and implementing flexible, generic architectures.

Aspect-Oriented Programming

The idea of AOP is to improve the modularity of designs and implementations by allowing a better encapsulation of cross-cutting concerns such as distributed transfer, synchronization, data traversal, tracing, caching, etc. in a new kind of modularity called "aspects". Aspects represent a more powerful parameterization concept compared to what's available in current languages.

Subject-Oriented Programming

Related to AOP, SOP focuses on capturing different subjective perspectives on a single object model. It basically allows composing applications out of "subjects" (partial object models) by means of declarative composition rules.

Software Transformation Technology and Systems

These systems aid software development activities by providing mechanized support for manipulating program representations. Examples of transformations are extracting views, refinement, refactoring, and optimizations of program representations.

Intentional Programming

Intentional Programming (IP) is a new kind of an extendible programming environment based on transformation technology and direct manipulation of active program representations. New programming notations and transformations can be distributed and used as plug-ins. The system replaces parsing technology with the direct entry and editing of resolved ASTs.

Transformation Systems Based on Formal Algebraic Specifications

The automated refinement of formal specifications has been an active research theme for over 20 years. A recent success story of applying this approach in practice within a highly specialized domain is the application of the KIDS system to Transportation Scheduling.

Domain Engineering

Domain engineering comprises the development of a common model and concrete components, generators, and reuse infrastructures for a family of software systems.

Generative Programming

An effort to integrate domain engineering, generative, and component-based approaches.

Comprehensive bibliography and links

Goals of the Working Group

Members

Initiators of the Working Group

Contact

To become a member or submit your comments, please contact
czarnecki@acm.org and Ulrich.Eisenecker@t-online.de.

Meetings


Krzysztof Czarnecki, 15/07/1999

czarnecki@acm.org