Software reuse should not be limited to only code. Software reuse should be engineered as early as possible in the software development life cycle. The authors address specification reuse by defining templates of specifications and then instantiating them to yield specific specifications. From the perspective of software reuse in the large, reusable templates should be created as scalably as possible. Existing technologies for building reusable templates suffer the problems of scalability. Schemes (generic and parameterized modules) in TUG (Tree Unified with Grammar) facilitate specifiers to build scalable templates hierarchically without replication. Reuse is performed vertically and horizontally. Vertical reuse makes a lower level scheme inherit all features from its upper level scheme. Horizontal reuse makes a scheme reusable within the same level of abstraction. Parametric building and incremental building are two techniques for realizing the vertical and horizontal reuse. They present a scheme for a generalized inventory control system and demonstrate how a generalized inventory control scheme can be reused to model a library system. Finally, the capabilities, strengths, and weaknesses are discussed.
[1]
Don S. Batory,et al.
Scalable software libraries
,
1993,
SIGSOFT '93.
[2]
Joseph A. Goguen,et al.
Parameterized Programming
,
1984,
IEEE Transactions on Software Engineering.
[3]
Joseph A. Goguen,et al.
Reusing and Interconnecting Software Components
,
1986,
Computer.
[4]
Chia-Chu Chiang,et al.
Development of the TUG specification language to support specification reuse
,
1994,
Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).
[5]
T. Biggerstaff,et al.
Reusability Framework, Assessment, and Directions
,
1987,
IEEE Software.