-
Notifications
You must be signed in to change notification settings - Fork 16
Component Based Development
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".