Design components are based on the idea that design patterns constitute the axioms of software design.
Component-based software development stands for software construction by assembly of prefabricated, configurable, and independently evolving building blocks. Emerging software component models prescribe standards for the collaboration of independent components and are aimed at improved development productivity and at more resilience of software to changing requirements. Current approaches to component-based software development seem to be inadequate for the creation of reusable and changeable software architectures. The apparent lack of design information in today’s components is considered to be one of the most significant problems of software development based on components. In addition, reuse of architectural design issues has not been an option on a compositional basis so far.
The notion of design components has been introduced by Keller/Schauer. Design components are based on the idea that design patterns constitute the axioms of software design. Thus, each element of a design can be traced back to a certain generic pattern and documented with formal and informal techniques.
The focus of this reserach project is manifold:
- provide design expertise in composable form,
- provide design constraints to prohibit known design flaws,
- document designs and design decisions, and
- prohibit design blurring and degradation during subsequent modifications.