skip to main content
article
Free access

Corrigenda: a hierarchy-aware approach to faceted classification of object-oriented components

Published: 01 October 1999 Publication History

Abstract

This article presents a hierarchy-aware classification schema for object-oriented code, where software components are classified according to their behavioral characteristics, such as provided services, employed algorithms, and needed data. In the case of reusable application frameworks, these characteristics are constructed from their model, i.e., from the description of the abstract classes specifying both the framework structure and purpose. In conventional object libraries, the characteristics are extracted semiautomatically from class interfaces. Characteristics are term pairs, weighted to represent "how well" they describe component behavior. The set of characteristics associated with a given component forms its software descriptor. A descriptor base is presented where descriptors are organized on the basis of structured relationships, such as similarity and composition. The classification is supported by a thesaurus acting as a language-independent unified lexicon. The descriptor base is conceived for developers who, besides conventionally browsing the descriptors hierarchy, can query the system, specifying a set of desired functionalities and getting a ranked set of adaptable candidates. User feedback is taken into account in order to progressively ameliorate the quality of the descriptors according to the views of the user community. Feedback is made dependent of the user typology through a user profile. Experimental results in terms of recall and precision of the retrieval mechanism against a sample code base are reported.

References

[1]
BANKER, R. D., KAUFFMAN, R. J., AND ZVEIG, D. 1993. Repository evaluation of software reuse. IEEE Trans. Softw. Eng. 19, 4 (Apr.), 379-389.
[2]
BARDOSSY, A., DUCKSTEIN, L., AND BOGARDI, I. 1993. Combination of fuzzy numbers representing expert opinions. Fuzzy Sets Syst. 57, 2 (July), 173-181.
[3]
BASILI, V. R. AND ROMBACH, H. D. 1991. Support for comprehensive reuse. Softw. Eng. J. 6, 5 (Sept. 1991), 303-316.
[4]
BATINI, C., DI BATTISTA, G., AND SANTUCCI, G. 1993. Structuring primitives for a dictionary of entity relationship data schemas. IEEE Trans. Softw. Eng. 19, 4 (Apr.), 344-365.
[5]
BATORY, D. AND O'MALLEY, S. 1992. The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol. 1, 4 (Oct. 1992), 355-398.
[6]
B UMER, D., GRYCZAN, G., KNOLL, R., LINIENTHAL, C., RIEHLE, D., AND Z LLIGHOVEN, H. 1997. Framework development for large systems. Commun. ACM 40, 10 (Oct.), 53-59.
[7]
B UMER, D., KNOLL, R., GRYCZAN, G., AND Z LLIGHOVEN, H. 1996. Large scale object-oriented software-development in a banking environment: An experience report. In ECOOP'96-- Object-Oriented Programming, l Oth European Conference (Linz, Austria, July), P. Cointe, Ed. Springer-Verlag, New York.
[8]
BELLINZONA, R., FUGINI, M. G., AND PERNICI, B. 1995. Reusing specifications in OO applications. IEEE Softw. 12, 2 (Mar.), 65-75.
[9]
BIGGERSTAFF, T. J. AND PERLIS, A. J., Eds. 1989. Software Reusability: Vol. 1, Concepts and Models. ACM Press, New York, NY.
[10]
BIGGERSTAFF, T. J., MITBANDER, B. G., AND WEBSTER, D. E. 1994. Program understanding and the concept assignment problem. Commun. ACM 37, 5 (May 1994), 72-82.
[11]
BOOCH, G. 1994. Object-Oriented Analysis and Design with Applications. 2nd ed. Benjamin-Cummings Publ. Co., Inc., Redwood City, CA.
[12]
Bosc, P., DAMIANI, E., AND FUGINI, M. G. 1998. Dynamic service identification in a CORBA like environment. In Proceedings of the 1st International Workshop on Innovative Internet Information Systems (Pisa, Italy, June), D. M. Schwartz, Ed.
[13]
BOUCHON-MEUNIER, B., RIFQI, M., AND BOTHOREL, S. 1996. Towards general measures of comparison of objects. Fuzzy Sets Syst. 84.
[14]
BOUDIER, G., GALLO, F., MINOT, R., AND THOMAS, I. 1988. An overview of PCTE and PCTE. SIGPLAN Not. 24, 2 (Feb.), 248-257.
[15]
CANT, M. 1996. Delphi 2.0. McGraw-Hill, Inc., New York, NY.
[16]
CASHIN, P. 1991. Bnr remains at the fore front of computing technology. Telesis 92.
[17]
CASTANO, S. AND DE ANTONELLIS, V. 1993. A constructive approach to reuse of conceptual components. In Proceedings of 2nd ACM/IEEE International Workshop on Software Reusability (Lucca, Italy, Mar.). ACM, New York, NY.
[18]
Cox, B. J. 1986. Object-Oriented Programming--An Evolutionary Approach. 1st ed. Addison-Wesley, Reading, MA.
[19]
DAMIANI, E. AND FUGINI, M. G. 1995. Automatic thesaurus construction supporting fuzzy retrieval of reusable components. In Proceedings of ACM SIG-APP Conference on Applied Computing (SAC '95, Nashville, Feb.). ACM Press, New York, NY.
[20]
DAMIANI, E. AND FUGINI, M. G. 1997. Fuzzy identification of distributed components. In Computational Intelligence--Theory and Applications, B. Reusch, Ed. Springer Lecture Notes in Computer Science, vol. 1226. Springer-Verlag, New York, 550-552.
[21]
DAMIANI, E., FUGINI, M. G., AND FUSASCHI, E. 1997. A descriptor-based approach to OO code reuse. IEEE Computer 30, 10 (Oct.), 73-80.
[22]
DEVANBU, P., BRACHMAN, R., AND SELFRIDGE, P. G. 1991. LaSSIE--A knowledge-based software information system. Commun. ACM 34, 5 (May), 34-49.
[23]
D'SouzA, D. 1996. Java: Design and modeling opportunities. J. Obj. Orient. Program. 9, 5 (Sept.).
[24]
D'SouzA, D. F. AND WILLS, A. C. 1997. Catalysis: Component and Framework-Based Development. Addison-Wesley, Reading, MA.
[25]
DVORAK, J. 1994. Conceptual entropy and its effect on class hierarchies. IEEE Comput. 27, 6 (June 1994), 59-63.
[26]
ETZKORN, L. H. AND DAVIS, C. G. 1997. Automatically identifying reusable OO legacy code. IEEE Computer 30, 10 (Oct.), 66-71.
[27]
F USTLE, S., FUGINI, M. G., AND DAMIANI, E. 1996. Retrieval of reusable components using functional similarity. Softw. Pract. Exper. 26, 5, 491-530.
[28]
FUSASCHI, E. AND MONTINI, A. 1997. The ESSI/PROSA systems. Tech. Rep. EtnoTeam. http://www.cee.etnoteam.it/prosa
[29]
GARG, P. AND SCACCHI, W. 1989. Ishys: Designing an intelligent software hypertext system. IEEE Expert.
[30]
GORLEN, K. E., ORLOW, S. M., AND PLEXICO, P. S. 1990. Data Abstraction and Object-Oriented Programming in C+. John Wiley & Sons, Inc., New York, NY.
[31]
HENNINGER, S. 1997. An evolutionary approach to constructing effective software reuse repositories. ACM Trans. Softw. Eng. Methodol. 6, 2, 111-140.
[32]
HOPKINS, T. AND PHILLIPS, C. 1988. Numerical Methods in Practice: Using the NAG Library. International Computer Science Series. Addison-Wesley, Reading, MA.
[33]
IBM. 1990. IBM AIX Version 3 for RISC System/6000: Command reference. T. J. Watson Research Center, IBM, Yorktown Heights, NY.
[34]
JARKE, M. 1993. Vision driven systems engineering. In Proceedings of IFIP TC8/Wg8.4 Working Conference on Information System Development Process (Como, Italy), N. Prakash, C. Rolland, and B. Pernici, Eds. North-Holland Publishing Co., Amsterdam, The Netherlands.
[35]
JOHNSON, R. 1997. Frameworks = (Components + Patterns). Commun. ACM 40, 10 (Oct.), 39-42.
[36]
KATZ, S., RICHTER, C. A., AND THE, K.-S. 1987. PARIS: A system for reusing partially interpreted schemas. In Proceedings of the 9th International Conference on Software Engineering (Monterey, CA, Mar. 30-Apr. 2), W. E. Riddle, Ed. IEEE Computer Society Press, Los Alamitos, CA, 377-385.
[37]
KLIR, G. J. AND FOLGER, T.A. 1988. Fuzzy sets, Uncertainty, and Information. Prentice-Hall, Inc., Upper Saddle River, NJ.
[38]
KOSKO, B. 1992. Neural Networks and Fuzzy Systems: A Dynamical Systems Approach to Machine Intelligence. Prentice-Hall, Inc., Upper Saddle River, NJ.
[39]
KRUEGER, C.W. 1992. Software reuse. ACM Comput. Surv. 24, 2 (June 1992), 131-183.
[40]
LEVAN, H. 1996. Charlie: System for retrieving and reusing C+ + classes. In Proceedings of TOOLS Europe '96 (Paris, France).
[41]
LILLIE, C. 1991. Now is the time for a national software repository. In Proceedings of AIAA on Computing in Aerospace (Baltimore, MD, Oct.).
[42]
MAAREK, Y. S., BERRY, D. M., AND KAISER, G. E. 1991. An information retrieval approach for automatically constructing software libraries. IEEE Trans. Softw. Eng. 17, 8 (Aug. 1991), 800-813.
[43]
MAIDEN, N. 1991. Analogy as a paradigm for specification reuse. Softw. Eng. J. 6, 1 (Jan. 1991), 3-15.
[44]
MEYER, B. 1990. Eiffel: The Libraries. Prentice-Hall, Inc., Upper Saddle River, NJ.
[45]
MI, P. AND SCACCHI, W. 1990. A knowledge-based environment for modeling and simulating software engineering processes. IEEE Trans. Knowl. Data Eng. 2, 3 (Sept.), 283-294.
[46]
MILI, R., MILI, A., AND MITTERMEIR, R. T. 1997. Storing and retrieving software components: a refinement based system. IEEE Trans. Softw. Eng. 23, 7, 445-460.
[47]
MILI, n., MILI, R., AND MITTERMEIR, R. 1989. A survey of software reuse libraries. Ann. Softw. Eng. 5.
[48]
MOORMANN ZAREMSKI, A. AND WING, J. M. 1995. Signature matching: A tool for using software libraries. ACM Trans. Softw. Eng. Methodol. 4, 2 (Apr. 1995), 146-170.
[49]
ZAREMSKI, A. M. AND WING, J. M. 1997. Specification matching of software components. ACM Trans. Softw. Eng. Methodol. 6, 4, 333-369.
[50]
MOTRO, A. 1988. VAGUE: A user interface to relational databases that permits vague queries. ACM Trans. Off. Inf. Syst. 6, 3, 187-214.
[51]
OSTERTAG, E., HENDLER, g., D AZ, R. P., AND BRAUN, C. 1992. Computing similarity in a reuse library system: An AI-based approach. ACM Trans. Softw. Eng. Methodol. 1, 3 (July 1992), 205-228.
[52]
PAUL, S. AND PRAKASH, A. 1994. A framework for source code analysis using program patterns. IEEE Trans. Softw. Eng. 20, 6 (June), 463-475.
[53]
PFLEEGER, S. L. 1996. Measuring reuse: A cautionary tale. IEEE Softw. 13, 4 (July), 118-125.
[54]
PODGURSKI, A. AND PIERCE, L. 1993. Retrieving reusable software by sampling behavior. ACM Trans. Softw. Eng. Methodol. 2, 3 (July 1993), 286-303.
[55]
PRIETO-D AZ, R. 1991. Implementing faceted classification for software reuse. Commun. ACM 34, 5 (May), 88-97.
[56]
PRIETO-D AZ, R. 1993. Status report: Software reusability. IEEE Softw. 10, 3 (May), 61-66.
[57]
PRIETO-D AZ, R. AND FREEMAN, P. 1987. Classifying software for reusability. IEEE Softw. 4, 1 (Jan.), 6-16.
[58]
SALTON, a. 1971. Experiments in automatic thesaurus construction for information retrieval. In Proceedings of the IFIP Congress Foundations of Information Processing (Aug.). IFIP, Laxenburg, Austria.
[59]
SALTON, G., Ed. 1988. Automatic Text Processing. Addison-Wesley Series in Computer Science. Addison-Wesley Longman Publ. Co., Inc., Reading, MA.
[60]
SALTON, G. AND BUCKLEY, C. 1988. Term-weighting approaches in automatic text retrieval. Inf. Process. Manage. 24, 5 (1988), 513-523.
[61]
SALTON, G., ALLAN, g., AND BUCKLEY, C. 1994. Automatic structuring and retrieval of large text files. Commun. ACM 37, 2 (Feb. 1994), 97-108.
[62]
SCHMIDT, D., FAYAD, M., AND JOHNSON, R. 1996. Software patterns. Commun. ACM 3, 10 (Oct.).
[63]
SEN, A. 1997. The role of opportunism in the software design reuse process. IEEE Trans. Softw. Eng. 23, 7, 418-436.
[64]
SPANOUDAKIS, G. AND CONSTANTOPOULOS, P. 1994. On evidential feature salience. In Database and Expert Systems Applications, Proceedings of the 5th International Conference on Expert Systems Applications (DEXA '94, Athens, Greece, Sept. 7-9), D. Karagiannis, Ed. Lecture Notes in Computer Science, vol. 856. Springer-Verlag, New York, 153-157.
[65]
TANG, Y. Y., YAN, C. D., AND SUEN, C.Y. 1994. Document processing for automatic knowledge acquisition. IEEE Trans. Knowl. Data Eng. 6, 1 (Feb.), 3-21.
[66]
TAYLOR, R. N., BELZ, F. C., CLARKE, L. A., OSTERWEIL, L., SELBY, R. W., WILEDEN, J. C., WOLF, A. L., AND YOUNG, M. 1988. Foundations for the Arcadia environment architecture. SIGPLAN Not. 24, 2 (Feb.), 1-13.
[67]
Yu, C. 1975. A formal construction of term classes. J. ACM 22, 1.

Cited By

View all

Index Terms

  1. Corrigenda: a hierarchy-aware approach to faceted classification of object-oriented components

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Transactions on Software Engineering and Methodology
      ACM Transactions on Software Engineering and Methodology  Volume 8, Issue 4
      Oct. 1999
      176 pages
      ISSN:1049-331X
      EISSN:1557-7392
      DOI:10.1145/322993
      Issue’s Table of Contents

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 01 October 1999
      Published in TOSEM Volume 8, Issue 4

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)73
      • Downloads (Last 6 weeks)12
      Reflects downloads up to 24 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media