A Component Model Proposal

This position paper describes a conceptual model for Component-Based Software Engineering (CBSE). The model is an attempt to define what CBSE is essentially about and help answer critical questions concerning how CBSE relates to and distinguishes itself from other software development paradigms/concepts such as object-orientation. 1. Motivation As clearly stated in the opening statement of this year’s CBSE Workshop’s theme description: "There is growing interest in the notion of software development through the planned integration o f pre-existing software components. This is often called component-based development (CBD), component-based software engineering (CBSE), or simply componentware. While the broad concepts o f CBSE are well known and easily stated, a closer look reveals that the term CBSE is used in a diverse set of situations, encompasses a variety of characteristics, and is often given many different interpretations." To clarify the misconception and confusion, this position paper proposes a model or framework which, hopefully, will be simple and easy to explain to people on one hand and yet rich enough to capture all the key component-related concepts. In the next section, a concept diagram is presented to depict the key concepts and their relationships. Then, a glossary is provided to further define/describe the concepts. Finally, I will explain wh y such a component model is important and beneficial to the CBSE community. During the workshop, I anticipate to receive comments from the participants to improve the proposed model. The objective is for this young community to reach some consensus on what CBSE is essentially about and help answer critical questions concerning how CBSE relates to and distinguishes itself from other software development disciplines such as object-orientation. 2. Concept Diagram The concept diagram is show n on the last page of this paper (Appendix). It is meant to illustrate the important CBSE concepts, the relationships among themselves and with other software engineering concepts. The component concepts are shown in plain (white) boxes, and other concepts in gray boxes. The following link types are used to describe the relationships betwee n the concepts: Aggregation. This is shown as a solid-line path with a hollow diamond at one end. The concept that is connected by the diamond end is the aggregate. Association. A binary association is shown as a solid-line path that connects two concepts. A ternary