An interconnection language for reuse at the template/module level

Abstract Reuse is becoming a potent trend in software development and a major way to boost software productivity. To put reusable software units together, one has to be able to find them with minimal effort in the first place. The effort needed to access, understand, and customize the code must be less than the effort required to create new code. A simple library of components cannot provide sufficient methods to facilitate the selection and interconnection of the reusable modules. The context of this work is the ROPCO (reuse of persistent code and object code) environment and the primary candidates for reuse are the modules and templates. The objective of this article is to present the design of an interconnection language which can be incorporated with other ROPCO components to facilitate the selection, customization, and interconnection of reusable modules in the ROPCO software development environment. This language helps to define the interface specifications of the components and find the best module(s)/template(s) meeting the desired specification. The detailed algorithms of the operations that are necessary at the user level to support the reuse of available components are given and described in detail with a view toward verification.

[1]  M. H. Samadzadeh,et al.  A reusable software catalog interface , 1992, SAC '92.

[2]  Mark Moriconi A Designer/Verifiers's Assistant , 1979, IEEE Trans. Software Eng..

[3]  Butler W. Lampson,et al.  Organizing software in a distributed environment , 1983, ACM SIGPLAN Notices.

[4]  Stephen S. Yau,et al.  Knowledge Representation of Software Component Interconnection Information for Large-Scale Software Modifications , 1987, IEEE Transactions on Software Engineering.

[5]  Walter F. Tichy,et al.  Smart Recompilation , 1985, POPL.

[6]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[7]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[8]  Dewayne E. Perry,et al.  Software interconnection models , 1987, ICSE '87.

[9]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984 .

[10]  K. M. George,et al.  ROPCO: an environment for micro-incremental reuse , 1990, Ninth Annual International Phoenix Conference on Computers and Communications. 1990 Conference Proceedings.

[11]  Mansur H. Samadzadeh,et al.  Minimizing ripple recompilation in a persistent software environment , 1990, CSC '90.

[12]  Larry Masinter,et al.  The Interlisp Programming Environment , 1981, Computer.

[13]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[14]  Mansur H. Samadzadeh,et al.  Version management for ROPCO - a micro-incremental reuse environment , 1993, Inf. Softw. Technol..

[15]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[16]  Dewayne E. Perry,et al.  Version control in the Inscape environment , 1987, ICSE '87.

[17]  Walter F. Tichy Software Development Control Based On System Structure Description , 1980 .

[18]  Carol Withrow,et al.  Error density and size in Ada software , 1990, IEEE Software.

[19]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[20]  Scott A. Smolka Report on the 6th international symposium on programming , 1984, SIGP.