This Article 
 Bibliographic References 
 Add to: 
Ranking Significance of Software Components Based on Use Relations
March 2005 (vol. 31 no. 3)
pp. 213-225
Collections of already developed programs are important resources for efficient development of reliable software systems. In this paper, we propose a novel graph-representation model of a software component library (repository), called component rank model. This is based on analyzing actual usage relations of the components and propagating the significance through the usage relations. Using the component rank model, we have developed a Java class retrieval system named SPARS-J and applied SPARS-J to various collections of Java files. The result shows that SPARS-J gives a higher rank to components that are used more frequently. As a result, software engineers looking for a component have a better chance of finding it quickly. SPARS-J has been used by two companies, and has produced promising results.

[1] S. Brin and L. Page, “The Anatomy of a Large-Scale Hypertextual Web Search Engine,” Computer Networks and ISDN Systems, vol. 30, nos. 1-7, pp. 107-117, 1998.
[2] A. Chatzigeorgiou, S. Xanthos, and G. Stephanides, “Evaluating Object-Oriented Designs with Link Analysis,” Proc. 26th Int'l Conf. Software Eng. (ICSE2004), pp. 656-665, 2004.
[3] O. Edelstein, A. Yaeli, and G. Zodik, “eColabra: An Enterprise Collaboration & Reuse Environment,” Proc. Fourth Int'l Workshop (NGITS '99), pp. 229-236, 1999.
[4] L.H. Etzkorn, W.E. Huges Jr., and C.G. Davis, “Automated Reusability Quality Analysis of OO Legacy Software,” Information and Software Technology, vol. 43, no. 5, pp. 295-308, 2001.
[5] B. Fischer, “Specification-Based Browsing of Software Component Libraries,” Automated Software Eng., vol. 7, no. 2, pp. 179-200, 2000.
[6] H. Fujiwara, “A New Reusability Metric Based on Reuse Results and Similarity among Programs,” master's thesis, Dept. of Informatics and Mathematical Science, Osaka Univ., 2002, (in Japanese).
[7] H. Fujiwara, R. Yokomori, T. Yamamoto, M. Matsusita, S. Kusumoto, and K. Inoue, “Reusability Evaluation Method Using Relations among Source Code Files,” Information Processing Soc. of Japan, technical report of Special Interest Group on Software Eng., vol. 23, pp. 155-162, 2002, (in Japanese).
[8] J. Guo and Luqi, “A Survey of Software Reuse Repositories,” Proc. Seventh IEEE Int'l Conf. and Workshop the Eng. of Computer-Based Systems, pp. 92-100, Apr. 2000.
[9] K. Inoue, R. Yokomori, H. Fujiwara, T. Yamamoto, M. Matsushita, and S. Kusumoto, “Component Rank: Relative Significance Rank for Software Component Search,” Proc. 25th Int'l Conf. Software Eng. (ICSE2003), pp. 14-24, 2003.
[10] S. Isoda, “Experience Report on a Software Reuse Project: Its Structure, Activities, and Statistical Results,” Proc. 14th Int'l Conf. Software Eng., pp. 320-326, 1992.
[11] B. Keepence and M. Mannion, “Using Patterns to Model Variability in Product Families,” IEEE Software, vol. 16, no. 4, pp. 102-108, 1999.
[12] J. Kleinberg, “Authoritative Sources in a Hyperlinked Environment,” J. ACM, vol. 46, no. 5, pp. 604-632, 1999.
[13] K. Kobori, T. Yamamoto, M. Matsusita, and K. Inoue, “Classification of Java Programs in SPARS-J,” Proc. Int'l Workshop Community-Driven Evolution of Knowledge Artifacts, 2003.
[14] R. Kraft, G. Zodik, D.A. Ford, R.Y. Pinter, D. Nicol, Q. Lu, and M. Eichstaedt, “jCentral: Search the Web for Java,” Proc. World Conf. the WWW and Internet, pp. 626-631, 1999.
[15] C. Krueger, “Software Reuse,” ACM Computing Surveys, vol. 24, no. 2, pp. 131-183, 1992.
[16] Y.S. Maarek, D.M. Berry, and G.E. Kaiser, “An Information Retrieval Approach for Automatically Constructing Software Libraries,” IEEE Trans. Software Eng., vol. 17, no. 8, pp. 800-813, 1991.
[17] A. Mili, R. Mili, and R. Mittermeir, “A Survey of Software Reuse Libraries,” Annals of Software Eng., vol. 5, pp. 349-414, 1998.
[18] L. Page, S. Brin, R. Motwani, and T. Winograd, “The PageRank Citation Ranking: Bringing Order to the Web,” technical report of Stanford Digital Library Technologies Project, 1998, .
[19] S. Paul and A. Prakash, “A Framework for Source Code Search Using Program Patterns,” IEEE Trans. Software Eng., vol. 20, no. 6, pp. 463-475, 1994.
[20] G. Pinski and F. Narin, “Citation Influence for Journal Aggregates of Scientific Publications: Theory, with Application to the Literature of Physics,” Information Processing and Management, vol. 12, no. 5, pp. 297-312, 1976.
[21] J.S. Poulin and K.J. Werkman, “Melding Structured Abstracts and World Wide Web for Retrieval of Reusable Components,” Proc. ACM sigssoft Symp. Software Reuse (SSR '95), pp. 160-168, 1995.
[22] G. Salton, “Developments in Automatic Text Retrieval,” Science, vol. 253, pp. 974-979, 1991.
[23] R.C. Seacord, S.A. Hissam, and K.C. Wallnau, “Agora: A Search Engine for Software Components,” IEEE Internet Computing, vol. 6, no. 2, pp. 62-70, 1998.
[24] A. Spink, B.J. Jansen, D. Wolfram, and T. Saracevic, “From E-Sex to E-Commerce: Web Search Changes,” Computer, vol. 35, no. 3, pp. 107-109, 2002.
[25] W.J. Stewart, Introduction to the Numerical Solution of Markov Chains. Princeton Univ. Press, 1995.
[26] F. Umemori, “ Empirical Evaluation of Java Component Retrieval System SPARS-J,” master's thesis, Graduate School of Information Science and Eng., Dept. of Computer Science, Osaka Univ., Mar. 2004, (in Japanese).
[27] H. Washizaki, H. Yamamoto, and Y. Fukazawa, “Software Component Metrics and It's Experimental Evaluation,” Proc. Int'l Symp. Empirical Software Eng. (ISESE '02), pp. 19-20, 2002.
[28] Y.Y. Yao, “Measuring Retrieval Effectiveness Based on User Preference of Documents,” J. Am. Soc. for Information Science, vol. 46, no. 2, pp. 133-145, 1995.
[29] Y. Ye and G. Fischer, “Supporting Reuse by Delivering Task-Relevant and Personalized Information,” Proc. 24th Int'l Conf. Software Eng. (ICSE2002), pp. 513-523, 2002.

Index Terms:
Component rank, graph representation model, reuse models, program analysis, reusable libraries.
Katsuro Inoue, Reishi Yokomori, Tetsuo Yamamoto, Makoto Matsushita, Shinji Kusumoto, "Ranking Significance of Software Components Based on Use Relations," IEEE Transactions on Software Engineering, vol. 31, no. 3, pp. 213-225, March 2005, doi:10.1109/TSE.2005.38
Usage of this product signifies your acceptance of the Terms of Use.