Abstract :
An approach to the description of reusable software components is presented which is based on the algebraic specification of abstract data types. Reusable components are described by an extension of the specification language ASL, which contains features for hierarchical structuring, parameterization, encapsulation of components, extension by enrichment, export-import interfaces, abstraction from the observable behavior, and the combination of components. Simple examples of ASL specifications are given, a notion of implementation is presented, and a few transformations of specifications are shown. A reusable component consists of tree formal specifications where a specification is a child of another specification if it is an implementation. Every node of the tree is itself a structured specification. In contrast to other approaches to software reusability these trees are considered as objects of the language and can be constructed and manipulated by operators of the language
Keywords :
data structures; software engineering; ASL; abstract data types; algebraic specification; algebraic specifications; child; combination of components; encapsulation; export-import interfaces; extension by enrichment; hierarchical structuring; node; objects; observable behavior; operators; parameterization; reusable software components; software reusability; specification language; tree formal specifications; Algorithms; Application software; Concrete; Costs; Data processing; Encapsulation; Formal specifications; Software libraries; Software reusability; Specification languages;