German pages
Generative and Component-Based Software Engineering
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.
-
KIDS (Kestrel
Institute, Palo Alto)
-
SPECWARE
(Kestrel Institute, Palo Alto)
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.
-
Generative Programming (an initiative by the members
of the Working Group on Generative and Component-Based Engineering)
Goals of the Working Group
-
exchange of ideas from related fields, e.g. component-based development,
generative approaches, OO, software architecture, formal specifications,
etc.
-
advancement of the new field and accumulating competence
-
initiating and peer-review of research and application projects
-
technology transfer and cooperation with industry
-
active forum for generative and component-based approaches
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
-
The third meeting will be held at the First
International Symposium on Generative and Component-Based Software Engineering
(GCSE99), Erfurt, Germany, September 28-30, 1999. The highlights include
-
keynotes by
-
Ira Baxter (Semantic Designs) "The
Design Maintenance System, Scale, and application to Refactoring"
-
Jim Coplien (Bell-Labs, Lucent)
"Design after Modernism: Beyond the Object" und
-
Brad Cox (Virtual School) "Superdistribution:
Objects as Property"
-
technical program with presentations on generative and component-based
approaches
-
GCSE99
Young Researchers Workshop - a special forum for people, who have recently
started their career in the domain of generative and component-based software
development
-
tutorials by Don Batory, Ira Baxter und Jim Coplien
-
The
second meeting was held at the STJA'98
, Erfurt, October 6-8, 1998. Keynotes included Don Batory (University of
Texas, Austin) on "Product-Line Architectures" and Charles Simonyi (Microsoft
Research) on Intentional
Programming.
-
The first meeting was held at the STJA'97 (Smalltalk
und Java in Industrie und Ausbildung), Erfurt, September 10-11, 1997. Keynotes
included Karl Lieberherr (Northeastern University) on Aspect-Oriented Programming
and Mark Simos (Synquiry Ltd.) on Organization Domain Modeling and an invited
talk by Mehmet Aksit (University of Twente) on Composition Filters
Krzysztof Czarnecki,
15/07/1999
czarnecki@acm.org