Chapter 2: What are Software Components?
What exactly are software components? This question is clearly fundamental to CBD and has been discussed thoroughly (see e.g. [Broy et al. (1998)]). The most widely adopted definition of a software component is the following by Szyperski [Szyperski et al. (2002)]:
“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.”.