This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Storing and Retrieving Software Components: A Refinement Based System
July 1997 (vol. 23 no. 7)
pp. 445-460

Abstract—Software libraries are repositories which contain software components; as such, they represent a precious resource for the software engineer. As software libraries grow in size, it becomes increasingly difficult to maintain adequate precision and recall with informal retrieval algorithms. In this paper, we discuss the design and implementation of a storage and retrieval structure for software components that is based on formal specifications and on the refinement ordering between specifications.

[1] W.W. Agresti and F.E. McGarry, "The Minnowbrook Workshop on Software Reuse: A Summary Report," Tutorial, Software Reuse: Emerging Technology, W. Tracz, ed., Los Alamitos, Calif., IEEE CS Press, 1987.
[2] S.P. Arnold and S.L. Stepoway, "The Reuse System: Cataloguing and Retrieval of Reusable Software," Proc. COMPCON'87, pp. 376-379. IEEE CS Press, 1987.
[3] R.D. Banker, R.J. Kauffman, and D. Zweig, "Repository Evaluation of Software Reuse," IEEE Trans. Software Eng., vol. 19, no. 4, pp. 379-389, Apr. 1993.
[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] N. Boudriga, A. Mili, and R. Zalila, "An Automated Tool for Specification Validation: Design and Preliminary Implementation," Proc. Hawaii Int'l Conf. System Sciences, pp. 74-82, 1992.
[6] N. Boudriga, F. Elloumi, and A. Mili, "The Lattice of Specifications: Applications to a Specification Methodology," Formal Aspects of Computing, vol. 4, pp. 544-571, 1992.
[7] N. Boudriga, A. Mili, and R.T. Mittermeir, "Semantic-Based Software Retrieval to Support Rapid Prototyping," Structured Programming, vol. 13, pp. 109-127, 1992.
[8] P. Cashin, "BNR Remains at the Forefront of Computing Technology," Telesis, vol. 92, pp. 73-75, 1991.
[9] P.S. Chen, R. Hennicker, and M. Jarke, "On the Retrieval of Reusable Software Components," Proc. Second Int'l Workshop Software Reusability, pp. 99-108,Lucca, Italy, Mar. 1993.
[10] C. Date, An Introduction to Database Systems.Reading, Mass.: Addison-Wesley, 1987.
[11] P. Devanbu et al., “LaSSIE: A Knowledge‐Based Software Information System,” Comm. ACM, May 1991, pp. 34‐49.
[12] R. Di Cosmo, "Type Isomorphisms in a Type-Assignment Framework," Proc. 19th Ann. Symp. Principles of Programming Languages.New York: ACM Press, 1992.
[13] B. Fischer, M. Kievernagel, and G. Snelting, "Deduction-Based Software Component Retrieval," IJCAI Workshop Reuse of Proofs, Plans and Programs,Montreal, Quebec, Canada, June 1995.
[14] W.B. Frakes and B.A. Nejmeh, "An Information System for Software Reuse," Proc. 10th Minnowbrook Workshop Software Reuse, 1987.
[15] W.B. Frakes and T.P. Pole, "Proteus: A Reuse Library System that Supports Multiple Representation Methods," ACM SIGIR Forum, vol. 24, pp. 43-55, 1990.
[16] W.B. Frakes and T.P. Pole, "An Empirical Study of Representation Methods for Reusable Components," IEEE Trans. Software Eng., Aug. 1994, pp. 617-630.
[17] S.D. Fraser, "Reuse by Design—A Team Approach," Proc. Fifth Workshop Software Reuse, 1992.
[18] M. Fontana and M. Neath, "Checked Out and Long Overdue: Experiences in the Design of a C++ Class Library," Proc. USENIX C++ Conf., pp. 179-191. USENIX Assoc., Berkeley, Calif., 1991.
[19] S. Faustle and M. Fugini, “Retrieval of Reusable Components in a Development Information System,” Proc. Workshop on Software Reuse, IEEE CS Press Los Alamitos, Calif., 1993, pp. 89‐98
[20] M.C. Gaudel and Th. Moineau, "A Theory of Software Reusability," Lecture Notes in Computer Science, Vol. 300, pp. 115-130. Springer-Verlag, 1991.
[21] M.L. Griss, "A Multi-Disciplinary Software Reuse Research Program," Proc. Fifth Workshop Software Reuse, 1992.
[22] J. Guttag, J.J. Horning, and J.M. Wing, "The Larch Family of Specification Languages," IEEE Software, vol. 2, no. 5, pp. 24-36, 1985.
[23] R.J. Hall, "Generalized Behaviour-Based Retrieval," Proc. 16th Int'l Conf. Software Eng.,Sorrento, Italy, New York: ACM Press, May 1994.
[24] R.C. Holt, T. Stanhope, and G. Lausman, Object Oriented Computing: Looking Ahead to the Year 2000. Univ. of Toronto, Ontario, Canada, 1991.
[25] J.J. Jeng and B.H.C. Cheng, "Formal Methods Applied to Reuse," Proc. Fifth Workshop Software Reuse,Palo Alto, Calif., 1992.
[26] J.J. Jeng and B.H.C. Cheng, "A Formal Approach to Reusing More General Components," Proc. IEEE Ninth Knowledge-Based Software Eng. Conf., pp. 90-97.Monterey, Calif., Sept. 1994.
[27] J.J. Jeng and B.C.H. Cheng, "Specification Matching for Software Reuse: A Foundation," Proc. ACM Symp. Software Reuse, pp. 97-105,Seattle, Wash., Apr. 1995.
[28] S. Katz,C. Richter,, and K.-S. The,“PARIS: A system for reusing partially interpreted schemas,” Proc. Ninth Int’l Conf. on Software Eng., pp. 377-385, 1987.
[29] C. Krueger, “Software Reuse,” ACM Computing Surveys, June 1992, pp. 131‐183.
[30] L. Labed Jilani, R. Mili, and A. Mili, "Approximate Retrieval: An Academic Exercise or a Practical Concern?" Proc. Eighth Ann. Workshop Software Reuse, Mar. 1997.
[31] C. Lillie, "Now is the Time for a National Software Repository," AIAA Computing Aerospace,Baltimore, Md., 1991.
[32] Y.S. Maarek and D.M. Berry, "The Use of Lexical Affinities in Requirements Extraction," Proc. Fifth Int'l Workshop Software Specification and Design,"Pittsburgh, Pa., May 1989.
[33] Y.S. Yoelle, S. Maarek,D.M. Berry,, and G.E. Kaiser,“An information retrieval approach for automatically constructing software libraries,” IEEE Trans. Software Engineering, vol. 17, no. 8, pp. 800-813, Aug. 1991.
[34] Y. Matsumoto, "A Software Factory: An Overall Approach to Software Production," P. Freeman, ed., Tutorial: Software Reusability. IEEE CS Press, 1987.
[35] R. Mili, R. Mittermeir, and A. Mili, "Storing and Retrieving Software Component: A Refinement Based Approach," Proc. Int'l Conf. Software Eng., 1994.
[36] A. Mili, R. Mili, and R. Mittermeir, "A Survey of Software Components Storage and Retrieval," Univ. of Ottawa, Ontario, Canada, May 1997.
[37] R.T. Mittermeir and E. Kofler, "Layered Specifications to Support Reusability and Integrability, J. Systems Integration, vol. 3, no. 3, pp. 273-302, Sept. 1993.
[38] Th. Moineau and M.C. Gaudel, "Software Reusability Through Formal Specifications," Proc. First Int'l Workshop Software Reusability, number memo Nr 57, Dortmund, 1991.
[39] F. Nishida, S. Takamatsu, Y. Fujita, and T. Tani, "Semi-Automatic Program Construction from Specifications Using Library Modules," IEEE Trans. Software Eng., vol. 17, no. 9, pp. 853-870, Sept. 1991.
[40] E. Ostertag, J. Hendler, R. Prieto-Diaz, and C. Braun, "Computing Similarity in a Reuse Library System: An ai-Based Approach," acm TOSEM, vol. 1, no. 3, pp. 205-228, July 1992.
[41] J. Penix and P. Alexander, "Design Representation for Automating Software Component Reuse," Proc. Fifth Int'l Workshop Knowledge Based Systems for the (Re)Use of Software Libraries, Nov. 1995.
[42] J. Penix and P. Alexander, "Efficient Specification Based Component Retrieval," technical report, Univ. of Cincinnati, Knowledge Based Software Eng. Laboratory, ECECS, July 1996.
[43] D.E. Perry, "The Inscape Environment," Int'l Conf. Software Eng. 1989.
[44] D.E. Perry and S.S. Popovich, "Inquire: Predicate-Based Use and Reuse," Proc. Knowledge Based Software Eng. Conf..Chicago, Sept. 1993.
[45] A. Podgurski and L. Pierce, "Behaviour Sampling: A Technique for Automated Retrieval of Reusable Components," Proc. 14th Int'l Conf. Software Eng., pp. 300-304.New York: ACM Press, 1992.
[46] A. Podgurski and L. Pierce,“Retrieving reusable software by sampling behavior,” ACM Transactions Software Engineering and Methodology, vol. 2 no. 3, pp. 286-303, July 1993.
[47] R. Prieto-Diaz, "A Software Classification Scheme," PhD dissertation, Univ. of California, Irvine, 1985.
[48] R. Prieto-Diaz and P. Freeman, "Classifying Software for Reusability," IEEE Software, vol. 4, no. 1, pp. 6-16, 1987.
[49] R. Prieto-Diaz, "Classification of Reusable Modules," Software Reusability, Vol. 1: Concepts and Models," T.J. Bigerstaff and A.J. Perlis, eds. New York: ACM Press, 1989.
[50] R. Prieto-Diaz, “Implementing Faceted Classification for Software Reuse,” Comm. ACM, May 1991, pp. 88‐97.
[51] R. Prieto-Diaz, "Status Report: Software Reusability," IEEE Software, pp. 61-66, May 1993.
[52] IEEE Trans. Software Eng., C.V. Ramamoorthy, ed., vol. 10, no. 5, Sept. 1984.
[53] M. Rittri, "Using Types as Search Keys in Function Libraries," Proc. Conf. Functional Programming Languages and Computer Architectures,Reading, Mass.: Addison-Wesley, 1989.
[54] M. Rittri, "Retrieving Library Identifiers via Equational Matching of Types," Technical Report 65, Programming Methodology Group, Dept. of Computer Science, Chalmers Univ. of Technology and Univ. of Göteborg.
[55] E.J. Rollins and J. Wing, "Specifications as Search Keys for Software Libraries," Proc. Conf. Functional Programming Languages and Architectures, pp. 173-183, Sept. 1989.
[56] W. Rossak and R.T. Mittermeir, "A dbms Based Repository for Reusable Software Components," Proc. Second Int'l Workshop Software Eng. and Its Applications, pp. 501-518,Toulouse, France, 1989.
[57] C. Runciman and I. Toyn, "Retrieving Reusable Software Components by Polymorphic Type," Proc. Conf. Functional Programming Languages and Computer Architectures.Reading, Mass.: Addison-Wesley, 1989.
[58] M. Sitaraman, "Performance Parameterized Reusable Software Components," Int'l J. Software Eng. and Knowledge Eng., vol. 2, no. 4, pp. 567-587, 1992.
[59] M. Sitaraman and B. Weide, "Component-Based Software Using RESOLVE," ACM Software Eng. Notes, Oct. 1994.
[60] R.A. Steigerwald, "Reusable Component Retrieval with Formal Specifications," Proc. Fifth Ann. Workshop Software Reuse, Oct. 1992.
[61] D.W.J. Stringer-Calvert, "Signature Matching for Ada Software Reuse," masters thesis, Univ. of York, York, UK.
[62] W. Tracz, "Software Reuse Myths," Software Reuse: Emerging Technology," W. Tracz, ed., Washington, D.C.: IEEE CS Press, 1988.
[63] B. Weide, W. Ogden, and S. Zweben, "Reusable Software Components," M. Yovits, ed., Advances in Computers, vol. 33, pp. 1-65. Academic Press, 1991.
[64] L. Wos, R. Overbeek, E. Lusk, and J. Boyle, Automated Reasoning: Introduction and Applications.New York: McGraw-Hill, 1992.
[65] A.M. Zaremski and J.M. Wing, "Signature Matching: A Key to Reuse," ACM Software Eng. Notes, vol. 18, no. 5, pp. 182-190, Dec. 1993.
[66] A.M. Zaremski and J.M. Wing, ”Signature Matching: A Tool for Using Software Libraries,” ACM Trans. Software Eng. and Methodology, vol. 4, no. 2, pp. 146–170, Apr. 1995.
[67] A. Moorman Zaremski and J.M. Wing, "Specification Matching of Software Components," Proc. SIGSOFT'95: Third ACM SIGSOFT Symp. The Foundations of Software Eng.,New York: ACM Press.

Index Terms:
Software libraries, software reuse, software components storage and retrieval, formal specifications, refinement ordering.
Citation:
Rym Mili, Ali Mili, Roland T. Mittermeir, "Storing and Retrieving Software Components: A Refinement Based System," IEEE Transactions on Software Engineering, vol. 23, no. 7, pp. 445-460, July 1997, doi:10.1109/32.605762
Usage of this product signifies your acceptance of the Terms of Use.