Skip to content

Component Based Development

Rosario Carvello edited this page May 14, 2020 · 14 revisions

Components-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software. (from wikipedia)

In Sommerville, you can find a discussion about the benefits of component-based software engineering. The following definition of software component is due to Szyperski:

A software component is a Unit of composition with contractually-specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

A widely used definition is due to UML:

“A modular part of a system, that encapsulates its content and whose manifestation is replaceable within its environment. A component defines its behavior in terms of provided and required interfaces".

Clone this wiki locally