Software reuse using formal specification of requirements
Reuse can be attempted at any stage in a software life cycle. However, reuse will be more effective at a higher level of abstraction such as requirements specification. The reason is that, one can easily understand the functionalities of a reusable component when it is abstractly specified and can also justify that the component is indeed reusable. Software can be reused if and only if its structure and behavior are compatible with those of another software that is being developed. In this thesis, a methodology is given to ensure structural compatibility in software reuse using the formal requirements specification of the software to be developed and that of the software to be reused. Algorithms to implement the methodology are given and a partial implementation of the methodology is illustrated through a case study. The formal notation Z is used in this thesis.