This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Creation of Views for Reuse of Software with Different Data Representations
December 1995 (vol. 21 no. 12)
pp. 993-1005
Software reuse is inhibited by the many different ways in which equivalent data can be represented. We describe methods by which views can be constructed semi-automatically to describe how application data types correspond to the abstract types that are used in numerical generic algorithms. Given such views, specialized versions of the generic algorithms that operate directly on the application data can be produced by compilation. This enables reuse of the generic algorithms for an application with minimal effort. Graphical user interfaces allow views to be specified easily and rapidly. Algorithms are presented for deriving, by symbolic algebra, equations that relate the variables used in the application data to the variables needed for the generic algorithms. Arbitrary application data structures are allowed. Units of measurement are converted as needed. These techniques allow reuse of a single version of a generic algorithm for a variety of possible data representations and programming languages. These techniques can also be applied in data conversion and in object-oriented, functional, and transformational programming.

[1] IEEE Trans. on Software Engineering, vol. 11, no. 11, Nov. 1985.
[2] A. Berlin and D. Weise, "Compiling Scientific Code Using Partial Evaluation," Computer, vol. 23, no. 12, pp. 25-37, Dec. 1990.
[3] W. H. Beyer, ed., CRC Standard Mathematical Tables and Formulae, 29th ed., Boca Raton, FL: CRC Press, 1991.
[4] T.J. Biggerstaff and A.J. Perlis, Software Reusability: Volume I: Concepts and Models. ACM Press, A Division of the Association for Computing Machinery, 1989.
[5] J. Callahan and J. Purtilo,“A packaging system for heterogeneous execution environments,” IEEE Trans. Software Engineering, vol. 17, no. 6, pp. 626-635, June 1991.
[6] “The Common Object Request Broker: Architecture and Specification,” TC Document 91.12.1, Revision 1.1, Object Management Group, Dec. 1991.
[7] E.W. Dijkstra, A Discipline of Programming.Englewood Cliffs, N.J.: Prentice Hall, 1976.
[8] S. Efremidis,“On program transformations,” PhD dissertation, Tech. Report 94-1434, Dept. of Computer Science, Cornell Univ., 1994.
[9] E. Gamma et al., Design Patterns: Elements of Object-Oriented Software, Addison-Wesley, Reading, Mass., 1994.
[10] D. Garlan,“Views for tools in integrated environments,” in R. Conradi et al., eds., Lecture Notes in Computer Science, vol. 244: Advanced Programming Environments, Springer-Verlag, 1986.
[11] K. Gieck,Engineering Formulas, 5th ed., McGraw-Hill, 1986.
[12] J.A. Goguen, "Reusing and Interconnecting Software Components," Computer, Feb. 1986.
[13] J. Goguen, "Principles of Parameterized Programming," Software Reusability, Volume I: Concepts and Models, T. Biggerstaff and A. Perlis, eds., Addison-Wesley, New York, 1989, pp. 159-225.
[14] J. A. Goguen,“Introducing OBJ,” Tech. Report SRI-CSL-92-03, Computer Science Lab, SRI International, Menlo Park, Mar. 1992.
[15] M.J.C. Gordon, The Denotational Description of Programming Languages. Springer-Verlag, 1987.
[16] D. Gries and J. Prins,“A new notion of encapsulation,” ACM SIGPLAN Notices, vol. 20, no. 7, pp. 131-139, July 1985.
[17] D. Gries and D. Volpano,“The transform - a new language construct,” Structured Programming, vol. 11, no. 1, pp. 1-10, 1990.
[18] B. Hailpern and H. Ossher, "Extending Objects to Support Multiple Interfaces and Access Control," IEEE Trans. Software Eng., pp. 1,247-1,257, Nov. 1990.
[19] W. Harrison,“RPDE3: A framework for integrating tool fragments,” IEEE Software, vol. 4, no. 6, pp. 46-56, Nov. 1987.
[20] M. Herlihy and B. Liskov, "A Value Transmission Method for Abstract Data Types," ACM Trans. Program Languages System, vol. 4, no. 4, pp. 527-551, Oct. 1982.
[21] R.F. Hille, Data Abstraction and Program Development Using Modula-2. Prentice Hall, 1989.
[22] G. Kaiser and D. Garlan, "Synthesizing Programming Environments from Reusable Features," [8], pp. 35-55.
[23] E. Kant,F. Daube,W. MacGregor,, and J. Wald,“Scientific programming by automated synthesis,” in [28], pp. 169-205.
[24] C. Krueger, “Software Reuse,” ACM Computing Surveys, June 1992, pp. 131‐183.
[25] D. Lamb, "IDL: Sharing Intermediate Representations," ACM Trans. Programming Languages and Systems vol. 9, no. 3, pp. 267-318, July 1987.
[26] J. Larkin and H. A. Simon,“Why a diagram is (sometimes) worth 10,000 words,” Cognitive Science, vol. 11, pp. 65-99, 1987; also in [44].
[27] C. Lins,The Modula-2 Software Component Library, Springer-Verlag, 1989.
[28] M. Lowry and R. McCartney, Automating Software Design, AAAI Press/The MIT Press, Menlo Park, 1991.
[29] H. Mili, F. Mili, and A. Mili, Reusing Software: Issues and Research Directions IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-562, June 1995.
[30] R. Neches et al., "Enabling Technology for Knowledge Sharing," AI Magazine, Fall 1991, pp. 36-56.
[31] G. Novak,“GLISP: A LISP-based programming system with data abstraction,” AI Magazine, vol. 4, no. 3, pp. 37-47, Fall 1983.
[32] G. Novak,“GLISP user’s manual,” Tech. Rep. STAN-CS-82-895, Computer Science Dept., Stanford Univ., 1982; TR-83-25, A.I. Lab, Computer Science Dept.,Univ. of Texas at Austin.
[33] G. Novak, F. Hill, M. Wan, and B. Sayrs, "Negotiated Interfaces for Software Reuse," IEEE Trans. Software Eng., vol. 18, no. 7, July 1992.
[34] G. Novak, "Software Reuse through View Type Clusters," Proc. Seventh Knowledge-Based Software Engineering Conf., IEEE CS Press, pp. 70-79, 1992.
[35] G. Novak,“Software reuse by compilation through view type clusters,” submitted for publication.
[36] G. Novak, "Generating Programs from Connections of Physical Models," Proc. 10th Conf. Artificial Intelligence for Applications, IEEE CS Press, pp. 224-230, 1994.
[37] G. Novak, "Conversion of Units of Measurement," IEEE Trans. Software Eng., vol. 21, no. 8, pp. 651-661, Aug. 1995.
[38] L.C. Paulson, ML for the Working Programmer. Cambridge Univ. Press, 1991.
[39] F. Preparata and R. Yeh, Introduction to Discrete Structures. Addison-Wesley, 1973.
[40] J.M. Purtilo and J.M. Atlee, "Module Reuse by Interface Adaptation," Software Practice and Experience, vol. 21, no. 6, pp. 539-556, June 1991.
[41] C. Rich and R. Waters, eds., , Readings in Artificial Intelligence and Software Engineering,San Francisco: Morgan Kaufmann, 1986.
[42] C. Rich and R. Waters, The Programmer's Apprentice. ACM Press, 1990.
[43] M. Schaefer,A Mathematical Theory of Global Program Optimization, Prentice-Hall, 1973.
[44] H. A. Simon,Models of Thought, vol. 2, Yale Univ. Press, 1989.
[45] D.R. Smith, KIDS: A Semiautomatic Program Development System IEEE Trans. Software Eng., vol. 16, no. 9, pp. 1024-1043, 1990.
[46] D. R. Smith,“KIDS - a knowledge-based software development system,” [28], pp. 483-514.
[47] G.L. Steele, Common Lisp: The Language, second ed. Digital Press, 1990.
[48] B. Stroustrup,The C++ Programming Language. Reading MA: Addison-Wesley, 1991, 2nd ed.
[49] W. Tracz, "Parameterized Programming in Lileanna," Proc. 2nd Int'l Workshop Software Reuse, IEEE Computer Soc. Press, Los Alamitos, Calif., Mar. 1993, pp. 66-78.
[50] D. Turner, "An Overview of Miranda," SIGPLAN Notices, Dec. 1986.
[51] D. Volpano and R. Kieburtz, "The Templates Approach to Software Reuse," [8], pp. 247-255.
[52] B. Weide, W. Ogden, and S. Zweben, "Reusable Software Components," M. Yovits, ed., Advances in Computers, vol. 33, pp. 1-65. Academic Press, 1991.
[53] Å. Wikström,Functional Programming Using Standard ML, Prentice-Hall, 1987.
[54] S. Wolfram, Mathematica—A System for Doing Mathematics by Computer. Addison-Wesley, 1991.
[55] M. C. Yovits, ed., Advances in Computers, vol. 33, Academic Press, 1991.

Index Terms:
View, program transformation, generic algorithm, software reuse, data conversion, visual programming, symbolic algebra, abstract data type.
Citation:
Gordon S. Novak Jr., "Creation of Views for Reuse of Software with Different Data Representations," IEEE Transactions on Software Engineering, vol. 21, no. 12, pp. 993-1005, Dec. 1995, doi:10.1109/32.489074
Usage of this product signifies your acceptance of the Terms of Use.