[competencies] Research:
Using Design Spaces for Component-based Development
Competencies HomepagePublicationsActivitiesWhat else?
overviewprojectspastprojectsresearchawardspaperslecturescv
Generic ComponentsSystem DevelopmentDesign SpacesUsing Design Spaces
 
 

The concept of Extended Design Spaces provides a facility for the semi-formal specification of both a given application's requirements and the properties of reusable items. This can be used favorably to support the retrieval, selection, parameterization, and combination of reusable components.

In the context of architecture-based component selection, the demands concerning specific classes of services are stated by characterizations along the corresponding Design Space. Available components from the reuse pool are in the same way characterized along the corresponding Design Spaces. This approach is facilitated by the introduction of composite types like sets for the Design Space characterization, which allow to easily describe reusable items whose exact properties are not known before their instantiation or deployment in an actual implementation. The Design Space notation is thus used as a common vocabulary for requirements and component specification alike.

Matching between requirements and components can then be supported in two ways. First, the requirements descriptions can be directly matched against the descriptions of available components. Second, the design rules (correlations between the requirements dimensions and the structural dimensions) provide guidance for the mapping between requirements and structural design decisions. Applying these rules to the requirements space characterization of an application yields hints concerning structural design decisions, which can be then matched against the characterizations of the components.

In summary, the deployment of Design Spaces to support the retrieval of reusable artefacts has the following advantages:

  • The architecture of a software system plays a key role concerning the adherence of an application to its non-functional requirements. This has also to be observed in component-based approaches to software development. As a consequence, components always have to be considered within their architectural context. This is especially important during component retrieval and selection. In current practice, however, this is often neglected; the component selection is mostly based upon functional properties of the reusable assets, while non-functional aspects are only considered implicitly by the experts.
  • The deployment of Design Spaces allows to select reusable artefacts already in an early stage of development, based on requirements. This is especially important in architecture-centric development processes, as the various development steps can then be driven by and towards the abstractions identified by the system architecture. Moreover, it is possible to perform architectural analysis, taking the properties of reusable components into account. This allows to predict certain non-functional properties of the complete system already in an early stage of the development process.
  • The Design Space profile of an application can also be exploited to guide the parameterization of the components, i.e., the assignment of their generic parameters. The evaluation of design rules yield (sets of) recommended alternatives in the structural Design Space, which can then be used as constraints for the generic parameters.

Besides this, the selection of reusable components using the Design Space approach can be combined with constructive support for the implementation of new functionality, if no reusable items for a specific purpose can be found. In that case, the structural recommendations gained by evaluating the correlations can facilitate the implementation of the missing functionality.
 

 
Homepage | Competencies | Publications | Activities | What else
Nov-2004