Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
While the overall component-oriented software development framework is important, the real differences among software development approaches are evident when details of the design and assembly of component-based solutions are examined. Traditional design techniques are poorly suited to the requirements of component-based systems. They offer little in the way of techniques and guidance for defining and using interfaces as key design abstractions. By following such approaches, users are on their own to decide what makes a good interface, how to understand an application's qualities in terms of the interfaces and their dependencies, and how to architect large-scale systems from collections of components.
Many of the current object-oriented methods have recently begun to highlight interfaces as key design abstractions targeting languages such as Java, which include interfaces as first-class concepts in the programming language [13]. However, two approaches stand out as offering the most to say about interfaces-based design techniques and their use in building component-based systems: the Unified Modeling Language (UML) and Catalysis. Here, we examine the use of UML and Catalysis concepts as the basis for component-based development approaches.