With Michel Chaudron, Technische Universiteit Eindhoven, The Netherlands, and Ivica Crnkovic, Mälardalen University, Sweden
To understand the essentials of component-based software engineering
To know the main characteristics of components and component models
To be aware of software development processes for component-based systems
To be aware of the mutual relations between software architecture and component models
In component-based software engineering (CBSE), systems are assembled from existing components. In CBSE, there are independent development processes for components and for systems built out of components. Composing a system out of components is only possible if those components conform to the same set of standards, also known as their component model. Component models differ in the way they handle quality properties. Component models influence software architecture, and vice versa.
Chapter 17 gave a general discussion of software reuse. In this chapter, we focus on a specific type of reuse, that of components. A component is a building block for software, much like an LCD screen is a building block for a mobile phone and a rubber tire is a building block for a car. The idea behind component-based software engineering (CBSE) is to assemble systems out of existing, independently developed, components. CBSE entails more than the mere reuse of components, though. It also aims to increase the flexibility ...