Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Creation of Views for Reuse of Software with Different Data Representations

Published: 01 December 1995 Publication History

Abstract

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.

References

[1]
IEEE Trans. on Software Engineering, vol. 11, no. 11, Nov. 1985.
[2]
A. Berlin and D. Weise, “Compiling scientific code using partial evaluation,” IEEE 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. Biggerstaff and A. Perlis, eds., Software Reusability (2 vols.), ACM Press: Addison-Wesley, 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, 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, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
[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,” IEEE Computer, pp. 16-28, Feb. 1986.
[13]
J. A. Goguen, “Principles of parameterized programming,” in {4}, 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, 1979.
[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 Engineering, vol. 16, no. 11, 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. Programming Languages Syst., 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,” in {4}, 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. W. Krueger, “Software reuse,” ACM Computing Surveys, vol. 24, no. 2, pp. 131-184, June 1992.
[25]
D. Lamb, “IDL: Sharing intermediate representations,” ACM Trans. Programming Languages Syst. 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, eds., Automating Software Design, AAAI Press / MIT Press, 1991.
[29]
H. Mili, F. Mili, and A. Mili, “Reusing software: Issues and research directions,” IEEE Trans. Software Engineering, vol. 21, no. 6, pp. 528-562, June 1995.
[30]
R. Neches, R. Fikes, T. Finin, T. Gruber, R. Patil, P. Senator, and W. Swartout, “Enabling technology for knowledge sharing,” AI Magazine, vol. 12, no. 3, pp. 36-56, Fall 1991.
[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. Report STAN-CS-82-895, C.S. Dept., Stanford Univ., 1982; TR-83-25, A.I. Lab, C.S. Dept., Univ. of Texas at Austin.
[33]
G. Novak, F. Hill, M. Wan, and B. Sayrs, “Negotiated interfaces for software reuse,” IEEE Trans. Software Engineering, vol. 18, no. 7, July 1992.
[34]
G. Novak, “Software reuse through view type clusters,” Proc. Seventh Knowledge-Based Software Eng. Conf., IEEE CS Press, pp. 70-79, Sept. 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, Mar. 1994, pp. 224-230.
[37]
G. Novak, “Conversion of units of measurement,” IEEE Trans. Software Engineering, 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 Engineering, vol. 16, no. 9, pp. 1,024-1,043, Sept. 1990.
[46]
D. R. Smith, “KIDS - a knowledge-based software development system,” {28}, pp. 483-514.
[47]
G. Steele, Common Lisp: The Language, Digital Press, 1990.
[48]
B. Stroustrup, The C++ Programming Language, Addison-Wesley, 1991.
[49]
W. Tracz, “LILEANNA: A parameterized programming language,” 2nd Int’l Workshop on Software Reuse: Advances in Software Reusability (IWSR-2), IEEE CS Press, pp. 66-78, Mar. 1993.
[50]
D. Turner, “An overview of Miranda,” SIGPLAN Notices, Dec. 1986.
[51]
D. Volpano and R. Kieburtz, “The templates approach to software reuse,” in {4}, pp. 247-255.
[52]
B. W. Weide, W. F. Ogden, and S. H. Zweben, “Reusable software components,” in {55}, pp. 1-65.
[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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 21, Issue 12
December 1995
83 pages

Publisher

IEEE Press

Publication History

Published: 01 December 1995

Author Tags

  1. View
  2. abstract data type.
  3. data conversion
  4. generic algorithm
  5. program transformation
  6. software reuse
  7. symbolic algebra
  8. visual programming

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Generation of geometric programs specified by diagramsACM SIGPLAN Notices10.1145/2189751.204787447:3(63-72)Online publication date: 22-Oct-2011
  • (2011)Generation of geometric programs specified by diagramsProceedings of the 10th ACM international conference on Generative programming and component engineering10.1145/2047862.2047874(63-72)Online publication date: 22-Oct-2011
  • (2009)Computer aided software design via inference and constraint propagationIntegrated Computer-Aided Engineering10.5555/1576283.157628416:3(181-191)Online publication date: 1-Aug-2009
  • (2006)Revealing the X/O impedance mismatchProceedings of the 2006 international conference on Datatype-generic programming10.5555/1782894.1782900(285-367)Online publication date: 24-Apr-2006
  • (2005)Mappings make data processing go 'roundProceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering10.1007/11877028_6(169-218)Online publication date: 4-Jul-2005
  • (2004)Cognitive Heuristics in Software EngineeringIEEE Transactions on Software Engineering10.1109/TSE.2004.9430:12(873-888)Online publication date: 1-Dec-2004
  • (1998)A perspective of generative reuseAnnals of Software Engineering10.5555/590631.5906425:1(169-226)Online publication date: 11-Jan-1998
  • (1997)Software Reuse by Specialization of Generic Procedures through ViewsIEEE Transactions on Software Engineering10.1109/32.60575923:7(401-417)Online publication date: 1-Jul-1997
  • (1997)Composition Validation and Subjectivity in GenVoca GeneratorsIEEE Transactions on Software Engineering10.1109/32.58549723:2(67-82)Online publication date: 1-Feb-1997

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media