In practice, pure top-down and refinement-based development processes are not sufficient. Usually, an iterative and incremental approach is applied instead. Existing methodologies, however, do not support such evolutionary development processes very well. In this paper, we present the basic concepts of an overall methodology based on componentware and software evolution. The foundation of our methodology is a novel, well-founded model for component-based systems. This model is sufficiently powerful to handle the fundamental structural and behavioral aspects of componentware and object-orientation. Based on the model, we are able to provide a clear definition of a software evolution step. During development, each evolution step implies changes of an appropriate set of development documents. In order to model and track the dependencies between these documents, we introduce the concept of Requirements/Assurances Contracts. These contracts can be rechecked whenever the specification of a component evolves, enabling us to determine the impacts of the respective evolution step. Based on the proposed approach, developers are able to track and manage the software evolution process and to recognize and avoid failures due to software evolution. A short example shows the usefulness of the presented concepts and introduces a practical description technique for Requirements/Assurances Contracts.
CITATION STYLE
Rausch, A. (2000). Software evolution in componentware using requirements/assurances contracts. In Proceedings - International Conference on Software Engineering (pp. 147–156). IEEE. https://doi.org/10.1145/337180.337198
Mendeley helps you to discover research relevant for your work.