To many, the holy grail of software engineering is the reuse of software, sometimes in the sense of software product lines, but more often in the form of component-based development (CBD). Underlying a particular CBD technology is a software component model that defines components and their composition mechanisms. Lau and Wang provide a survey and analysis of current component models, with classification into a taxonomy that reflects both current and desired practices and features. Also proposed is an idealized taxonomy based on component composition, which reflects a more robust environment for CBD and the component life cycle than other approaches.
After an effective introduction, the second section of the paper addresses the syntax, semantics, and composition of components. The third section analyzes current software component models, primarily from the perspective of artifact repositories and the role they play in each model. The fourth section looks at possible taxonomies based on component semantics, syntax, and composition. The fifth and sixth sections provide discussion and a conclusion that the ideal model should have key characteristics of encapsulation and compositionality. An appendix that outlines additional component models not covered in detail in the main text of the paper is included; 63 relevant references are cited.
The paper is well organized and well written. It is a major contribution to the foundations of CBD, and should interest anyone in the CBD community.