MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Extensibility in the Large

Download:
Download as a PDF
by Matthias Zenger
http://lamp.epfl.ch/~zenger/papers/epfl02.pdf
Add To MetaCart

Abstract:

Software component technology is driven by the promise of building software from off-the-shelf components that are provided by a global software component industry consisting of independent component developers [14]. Therefore, component programming emphasizes independent development and deployment of software modules. For being independently deployable, a component has to be well separated from other components. In addition, it has to be composable with other components by a third-party that does not necessarily have access to the implementation details of all the components involved. An important point which is often not considered is extensibility. Components have to be extensible, since in general, components do not fit off-the-shelf into an arbitrary deployment context. They first have to be adapted to satisfy the needs of a particular customer. Apart from this, extensibility is also an important requirement for enabling software evolution. Software evolution includes the maintenance and extension of component features and interfaces. Supporting software evolution is important, since components are architectural building blocks and as such, subject to continuous change. A typical software evolution process yields different versions of a single component being deployed in different contexts. Extensibility is also required when developing families of software applications [11, 2]. For instance, software productlines [8, 16] rely heavily on a mechanism for creating variants of a system which share a common structure but which are configured with possibly different components. Here is a list of requirements we identified to be important for component-oriented programming practice including the corresponding implications on the implementation platform: • It is necessary that components are implemented in a modular way with explicit context dependencies, enabling type-safe separate compilation.

Citations

No citations identified.