This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Copying and Swapping: Influences on the Design of Reusable Software Components
May 1991 (vol. 17 no. 5)
pp. 424-435

The authors argue that a simple alternative to copying as a data movement primitive-swapping (exchanging) the values of two variables-has potentially significant advantages in the context of the design of generic reusable software components. Specifically, the authors claim that generic module designs based on a swapping style are superior to designs based on copying, both in terms of execution-time efficiency and with respect to the likelihood of correctness of client programs and module implementations. Furthermore, designs based on swapping are more reusable than traditional designs. Specific arguments and examples to support these positions are presented.

[1] E. V. Berard,Creating Reusable Ada Software. Frederick, MD: EVB Software Engineering, 1987.
[2] G. Booch,Software Components with Ada. Menlo Park, CA: Benjamin/Prentice-Hall, 1987.
[3] S. Danforth and C. Tomlinson, "Type theories and object-oriented programming,"Comput. Surveys, vol. 20, no. 1, pp. 29-72, Mar. 1988.
[4] Reference Manual for the Ada Programming Language, Ada Joint Program Office, U.S. Dept. Defense, ANSI/MIL-STD-1815A-1983.
[5] M. B. Feldman,Data Structures with Modula-2, Englewood Cliffs, NJ: Prentice-Hall, 1988.
[6] M. Ganapathi and G. O. Mendal, "Issues in Ada compiler technology,"Computer, vol. 22, no. 2, pp. 52-60, Feb. 1989.
[7] D. E. Harms, "The influence of software reuse on programming language design," Ph.D. dissertation, Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, Aug. 1990; available from University Microfilms, Inc.
[8] W. A. Hegazy, "The requirements of testing a class of reusable software modules," Ph.D. dissertation, Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, June 1989; available from University Microfilms, Inc.
[9] C. A. R. Hoare, "Hints on programming language design," inProgramming Languages: A Grand Tour, E. Horowitz, Ed. Rockville, MD: Computer Science Press, 1987, pp. 31-40.
[10] R.B. Kieburtz, "Programming without pointer variables,"ACM SIGPLAN Notices, vol. 8, no. 2, pp. 95-107, 1976.
[11] J. Krone, "The role of verification in software reusability," Ph.D. dissertation, Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, Aug. 1988; available from University Microfilms, Inc.
[12] B. Liskov and J. Guttag,Abstraction and Specification in Program Development. Cambridge, MA: MIT Press, 1986.
[13] J. J. Martin,Data Types and Data Structures. Englewood Cliffs, NJ: Prentice-Hall, 1986.
[14] B. Meyers,Object Oriented Software Construction. Englewood Cliffs, NJ: Prentice-Hall, 1988.
[15] T. Pittel, "Pointers in RESOLVE: Specification and implementation." M.S. thesis, Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, June 1990.
[16] M. Shaw, Ed.,ALPHARD: Form and Content. New York: Springer-Verlag, 1981.
[17] M. Sitaraman, "Mechanisms and methods for performance tuning of reusable software components," Ph.D. dissertation, Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, Aug. 1990, available from University Microfilms, Inc.
[18] B. Stroustrup,The C++ Programming Language. Reading, MA: Addison-Wesley, 1986.
[19] D. F. Stubbs and N. W. Webre,Data Structures with Abstract Data Types and Modula-2. Monterey, CA: Brooks/Cole, 1987.
[20] N. Suzuki, "Analysis of pointer 'rotation,'"Commun. ACM, vol. 25, no. 5, pp. 330-335, May 1982.
[21] B. W. Weide, "A new ADT and its applications in implementing 'linked' structures," Dept. Comput. Inform. Sci., Ohio State Univ., Columbus, Tech. Rep. OSU-CISRC-TR-86-3, Jan. 1986.
[22] B. W. Weide, W.F. Ogden, and S.H. Zweben, "Reusable software components," inAdvances in Computers, vol. 33, M.C. Yovits, Ed. New York: Academic, 1991, to be published.
[23] J. M. Wing, "A specifier's introduction to formal methods,"Computer, vol. 23, no. 9, pp. 8-24, Sept. 1990.

Index Terms:
data movement primitive; generic reusable software components; generic module designs; swapping style; data structures; software reusability
Citation:
D.E. Harms, B.W. Weide, "Copying and Swapping: Influences on the Design of Reusable Software Components," IEEE Transactions on Software Engineering, vol. 17, no. 5, pp. 424-435, May 1991, doi:10.1109/32.90445
Usage of this product signifies your acceptance of the Terms of Use.