J. Sametinger, R. Keller: Design Composition, Journal of Computer Science & Technology, Vol. 3, No. 1, pp. 27-33, April 2003.
Object-oriented software development has proven effective for systems development, but the creation of reusable and changeable software architectures is still a challenging task. Design patterns capture the expertise for reusable design solutions, but there is no methodical approach to providing conceptual design building blocks in tangible and composable form. Design components have been suggested to address this problem. We suggest design composition with design components, role models and role constraints.
We claim that design expertise in composable form with explicit design constraints and with explicit documentation has many advantages. It provides alternative views on software systems at a high level of abstraction, and it can help in prohibiting known design flaws as well as design blurring and degradation during subsequent modifications. In this paper, we refine the notion of design components, include role models and constraints, and discuss component types as well as design composition.
Keywords: design component, design constraints, design pattern, software architecture, role model, software reuse