Compositional design reuse - Sametinger, Johannes R. (2002)
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 compositional design reuse, which is a combined approach utilizing the ideas of design components and role models. We claim that design expertise in composable form with explicit documentation provides 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 discuss component types as well as design composition.