PhDOOS Logo

Supported by AITO.

These pages are currently maintained by Alex Potanin

 

Generative and component-based Software-Engineering

Elke Pulvermueller
( German )

University of Tuebingen
University of Tuebingen Wilhelm-Schickard-Institute for Computer Science Research Group Programming Languages and Compilers Sand 13 D-72076 Tuebingen Germany
tel:
fax: ++ 49 7071 29-5062
pulvermueller@acm.org

Keywords:

analysis/design language concepts software engineering component technologies composition separation of concerns

Abstract:

1 Motivation:
Composing software of smaller pieces has been one of the major research topics. The goal is to manage the system complexity. Although new techniques and methods are available aiming at supporting this task there is still room for further improvements. These are necessary since dividing and composing, i.e. analysis and synthesis, are the key challenges in the software development process. In our work we concentrate on new directions and approaches how composition can be realised both based on the object-oriented paradigm and beyond "objects".

2 Definition of the Composition Operator:
We define the "composition" operator generally according to Webster´s New Dictionary as the manner in which the parts of a thing are put together. Different realizations for such a composition operator already exist in practice.

3 Granularity of the Composition Operator:
These can be classified from fine-grained to coarse-grained forming a hierarchy of composition. An extract of such a hierarchy would be for instance the following (ordered from fine-grained to more coarse-grained composition):

- A method is composed of individual statements.
- An object realizes composition with respect to methods and / or attributes which together realize a certain functionality and therefore are encapsulated in one construct.
- Objects are put together to form an application or a part of an application (e.g. a package or subsystem).

While the fine-grained composition realizations are mostly constructs which are embedded into the programming language (e.g. the composition of individual statements in one method), support for coarse-grained (e.g. the composition of subsystems) composition is frequently a technology added on top of the programming language. This allows to choose different coarse-grained composition technologies without being limited to a certain programming language or vice versa. Existing coarse-grained composition techniques are provided by CORBA implementations, JavaBeans or COM/ DCOM for instance.

4 Outline of our Work:
In this context, our work concentrates on contracts between the parts and the usage of aspect-oriented programming (AOP) or, more generally speaking, the separation of concerns principle. AOP is one of the approaches within the generative and component-based software engineering. Although AOP primarily aims at improving separation of concerns by eliminating cross-cutting code and encapsulating this code within a separate construct, we use AOP also to realize composition. Besides AOP, other generative techniques are investigated to automize composition and adaption of the parts before composition.
Therefore, our work focuses on both certain aspects of already existing composition operators and alternative new approaches to realize composition.

The PhD work started: 1999


The participant will apply for the
upcoming ECOOP PhD Workshop.


HTML3
JAVA

 


Last modified on Mon Aug 15 14:59:24 2005