Skip to Main Content
The world of component-based systems is as appealing as it is challenging. Components, as first-class citizens of component-based systems, serve as the main units of encapsulated functionality and also units of composition, with the intention to improve development efficiency and software quality through reusability, extensibility and analyzability of software. These benefits are obtained especially when the components are understood by means of a formally well-defined component model, amenable to effective reasoning on functional and extra-functional properties at unit- as well as system-level. In this article we present the basic concepts of component-based design, emphasizing the characteristics of different types of component compositions, which dictate particular trade-offs between the degree of assurance and design flexibility. We show that rich and semantically well-defined component models with encapsulated reasoning information enable prediction of the system behavior and in general the system functional and non-functional properties. In this way, the development process is significantly simplified. We illustrate the concept by giving a short overview of the ProCom component model that is designed for enabling predictability in the embedded and real-time systems domain.