Component-Based Software Engineering (CBSE) is a process that focuses on the design and development of computer-based systems with the use of reusable software components.
It not only identifies candidate components but also qualifies each component’s interface, adapts components to remove architectural mismatches, assembles components into a selected architectural style, and updates components as requirements for the system change.
The process model for component-based software engineering occurs concurrently with component-based development.
Component-based development:
Component-based development (CBD) is a CBSE activity that occurs in parallel with domain engineering. Using analysis and architectural design methods, the software team refines an architectural style that is appropriate for the analysis model created for the application to be built.
CBSE Framework Activities:
Framework activities of Component-Based Software Engineering are as follows:
- Component Qualification: This activity ensures that the system architecture defines the requirements of the components for becoming a reusable components. Reusable components are generally identified through the traits in their interfaces. It means “the services that are given and the means by which customers or consumers access these services ” are defined as a part of the component interface.
- Component Adaptation: This activity ensures that the architecture defines the design conditions for all components and identifies their modes of connection. In some cases, existing reusable components may not be allowed to get used due to the architecture’s design rules and conditions. These components should adapt and meet the requirements of the architecture or be refused and replaced by other, more suitable components.
- Component Composition: This activity ensures that the Architectural style of the system integrates the software components and forms a working system. By identifying the connection and coordination mechanisms of the system, the architecture describes the composition of the end product.
- Component Update: This activity ensures the updation of reusable components. Sometimes, updates are complicated due to the inclusion of third-party (the organization that developed the reusable component may be outside the immediate control of the software engineering organization accessing the component currently).