English abstract
Component-Based Software Development (CBSD) is a relatively new paradigm of software production. CBSD builds software systems by assembling readily available software components. The basic concept of CBSD is "buy, do not build". This concept potentially reduces software development time and costs, and reduces maintenance costs associated with software changes. Unfortunately, a unique software component that exactly fits the specific functional requirements determined by the client can rarely be obtained. Therefore, system integrators end up with composites that provide additional, unwanted functionalities. Compositional wrappers are a solution for this particular problem. Compositional wrappers encase a set of components for which the union of their provided services satisfies the set of functional requirements specified by the client.
This work starts by describing compositional wrappers and how they differ from and improve on software components and ordinary wrappers.
The thesis, then, provides a general definition of the term "feature". Based on this definition and the surveyed literature, a list of desirable features is presented for software components. After analyzing the collected features, the thesis presents standard criteria for identifying "smart feature". Based on the criteria, the thesis identifies a number of smart features that are applicable to software components in general and compositional wrappers in particular. The work, then, selects some smart features that are more applicable to compositional wrappers than to individual components. Some implementation issues of some of the features are also discussed.
This work mainly concentrates on the Self-Updating feature by providing detailed analysis of the issues related to injecting this smart feature in compositional wrappers. The main contributions of this thesis are in the following areas:
The specification: the thesis gives a comprehensive coverage of language constructs that are necessary to specify the details of injecting the Self-Updating feature in compositional wrappers. The design: the thesis outlines and discusses a design methodology that is particular to the Self-Updating process. The implementation: in order to validate the proposed design process, a prototype is developed. The prototype implements some of the constructs presented in the specification part and most of the steps detailed in the design process.