摘要:Object-oriented software development has proven effec-tive 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 sug-gested to address this problem. We suggest design compo-sition with design components, role models and role con-straints. We claim that design expertise in composable form with explicit design constraints and with explicit documenta-tion 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 compo-nent types as well as design composition