This Article 
 Bibliographic References 
 Add to: 
Reusability of Mathematical Software: A Contribution
August 1993 (vol. 19 no. 8)
pp. 835-843

Mathematical software is devoted to solving problems involving matrix computation and manipulation. The main problem limiting the reusability of existing mathematical software is that programs are often not initially designed for being reused. Therefore, it is hard to find programs that can be easily reused. A programming methodology useful for designing and implementing reusable code is presented. A portion of code designed and implemented for being reused is called a unit. The units are self-contained software components featuring a high degree of information hiding. This way of organizing software facilitates the reuse process and improves the understandability of units. To speed up the implementation process, a system supporting the reusability of units from an existing software library is particularly useful. The functionality of the EasyCard system, which creates, maintains, and queries a catalog of units is discussed.

[1] P. Freeman,Software Reusability, IEEE Computer Society Press Tutorial, 1987.
[2] W. Tracz,Software Reuse: Emerging Technology, IEEE CS Press, Order No. 846-01, Los Alamitos, Calif., 1988.
[3] T. J. Biggerstaff and A. J. Perlis,Software Reusability, vols. 1-2. New York: ACM Press, 1989.
[4] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[5] B. Stroustrup,The C++ Programming Language. Reading, MA: Addison-Wesley, 1986.
[6] J. A. Goguen, "Parameterized programming,"IEEE Trans. Software Eng., vol. SE-10, no. 5, pp. 528-543, Sept. 1984.
[7] V. Rajlich, "Refinement methodology for Ada,"IEEE Trans. Software Eng., vol. SE-13, no. 4, pp. 472-478, Apr. 1987.
[8] C. V. Ramamoorthy, V. Garg, A. Prakash, "Support for reusability in Genesis,"IEEE Trans. Software Eng., vol. 14, no. 8, pp. 1145-1154, Aug. 1988.
[9] G. Caldiera, V. R. Basili, "Identifying and qualifying reusable software components,"IEEE Computer, vol. 24, no. 2, pp. 61-70, Feb. 1991.
[10] J. R. Rice,Matrix Computation and Mathematical Software. New York: McGraw-Hill, 1983.
[11] B. Meyers,Object Oriented Software Construction. Englewood Cliffs, NJ: Prentice-Hall, 1988.
[12] A. Ralston and P. A. Rabinowitz,A First Course in Numerical Analysis, 2nd ed. New York: McGraw Hill, 1978.
[13] The Turbo Pascal Numerical Methods Toolbox, Borland Int. Inc., Scotts Valley, CA, 1987.
[14] W. A. Wulf, M. Shaw, P. N. Hilfinger, and L. Flon,Fundamental Structures of Computer Science. Reading, MA: Addison-Wesley, 1981, ch. 2.
[15] A. Aho, J. Hopcroft, and J. Ullman,Data Structures and Algorithms. Reading, MA: Addison-Wesley, 1983.
[16] Oracle users' Guide, Oracle Corp., Belmont, CA, 1983.
[17] N. C. Goodwin, "Functionality and usability,"Commun. Ass. Comput. Mach., vol. 30, no. 3, pp. 229-233, 1987.
[18] P. Di Felice, "Basic requirements and main features of a system supporting the reusability of mathematical software on personal computers," inProc. 1990 ACM SIGSMALL/PC Symp. Small Systems, H. Berghel, E. Unger, and R. Rankin, Eds., Arlington, VA, Mar. 28-30, 1990, pp. 72-79.
[19] P. Di Felice and M. Properzi, "An interaction environment supporting the retrievability of reusable software components," inProc. 10th Annual IEEE Int. Phoenix Conf. Comput. and Commun., Scottsdale, AZ, Mar. 27-30, 1991, pp. 287-293.
[20] P. Di Felice, "Abstract data type and mathematical software reusability: Two linked concepts," inProc. 9th Annual IEEE Int. Phoenix Conf. Comput. and Commun., Scottsdale, AZ, Mar. 21-23, 1990, pp. 448-452.
[21] Y. Matsumoto, "Some experiences in promoting reusable software: Presentation in higher abstract levels,"IEEE Trans. Software Eng., vol. SE-10, no. 5, pp. 502-512, Sept. 1984.
[22] P. Di Felice and E. Clementini, "A Pascal program for the solution of sparse linear systems--Part 1,"Advances Eng. Software, vol. 9, no. 2, pp. 84-89, 1987.
[23] P. Di Felice and E. Clementini, "Comparisons of two implementations for the solution of sparse linear systems--Part 2",Advances Eng. Software, vol. 9, no. 2, pp. 90-92, 1987.
[24] P. Di Felice and A. Agnifili, "A sequential implementation of the Gustavson's algorithm for sparse matrix multiplication,"J. Pascal, Ada and Modula-2, vol. 8, no. 1, pp. 38-48, Jan/Feb. 1989.
[25] P. Di Felice, A. Agnifili, and E. Clementini, "Data structures for compact sparse matrices representation,"Advances Eng. Software, vol. 11, no. 2, pp. 75-83, 1989.
[26] Turbo Pascal 5.0 Owner's Handbook, Borland Int., Scotts Valley, CA, 1989.
[27] B. Shneiderman, "Direct manipulation: a step beyond programming languages,"IEEE Computer, vol. 16, no. 8, pp. 57-69, Aug. 1983.
[28] B. Shneiderman,Designing the User Interface: Strategies for Effective Human-Computer Interaction. Reading, MA: Addison-Wesley, 1987.
[29] S. Christodoulakiset al., "Multimedia document presentation, information extraction and document formation in MINOS: A model and a system,"ACM Trans. Office Inf. Systems, vol. 4, no. 4, pp. 345-383, 1986.
[30] A. D'Atri and L. Tarantino, "From browsing to querying,"IEEE Data Engineering, vol. 12, no. 2, pp. 46-53, 1989.

Index Terms:
matrix computation; reusability; mathematical software; programming methodology; reusable code; self-contained software components; information hiding; understandability; existing software library; EasyCard system; mathematics computing; software reusability
P. Di Felice, "Reusability of Mathematical Software: A Contribution," IEEE Transactions on Software Engineering, vol. 19, no. 8, pp. 835-843, Aug. 1993, doi:10.1109/32.238586
Usage of this product signifies your acceptance of the Terms of Use.