MUDABlue: i tt i MUDABlue:  Automatic Software Repository Categorization System Shinji KAWAGUCHI t , Pankaj K. GARG tt , Makoto MATSUSHITA t , and Katsuro INOUE t
1) 1. 3) Forge [1] Source- SourceForge 2004 12 9 MUDABlue ' IR MUDABlue (Latent Semantic Analysis 1) 2) LSA) MUDABlue † Graduate School of Information Science and Technology, Osaka University, 1-3 Machikaneyama-cho, Toyonaka-shi, 560-8531 Japan †† Zee Source Zee Source, 1684 Nightingale Avenue, Suite 201, Sunnyvale, CA 94087 USA
- IR: Information Retrieval X  Vol. Jxx–X  No.xx  pp. 1–9  xxxx xx 1 † xxxx/xx Vol. Jxx–X No. xx 3 MUDABlue [2] Web 3.  MUDABlue ABlue 2.
MUDABlue Cluster Map [3] Univiable Cluster Map 3.1 2. MUDABlue 3 2. 3. 4.
MUDABlue IR LSA 5.
LSA - LSA 7. 2. (1) (2) 2 [4,5] (2) word-by-document A B LSA LSA [7,8] [9] [10] LSA [2] 3.1.2 (1) (2) (3) [11–13] 2 [2] LSA word-by-document [6] LSA (1) MUDABlue: 1 Fig. 1 Retrieve categories from source code using relationships among identifiers LSA LSA 44 “gtk_main” “gpointer” “gtk_window” GTK identifier-by-software LSA LSA 5 LSA LSA cosine l .4 “cut, copy, paste” “CWindow, CMenu” “MFC” Software l l “MFC” 3.1.3  MUDABlue 3. l. 2 MUDABlue MUDABlue 2 77 2 identifier-by-software LSA 10 3.2 3 LSA MUDABlue (2) (1) (3)Unifiable Cluster Map (UCM) 33 LSA ( 1) "" .. ,” 6 l 7 3 Sotti   Son2  S Softi   Softi4   Softi5   Sa Algorithm of Retrieving Categories Fig. 2 Cluster Map [3] 3.2.1 MUDABlue Cluster Mapし3.2.2 C 3, 4, 5, 6
B B Cluster Map A, B  C  S S if bc ‡ 0 ad/bc or'(A, B)    or'(A, B) = ad|S|² otherwise α = |Ā ∩ B|,b = |A ∩ B|,c = |Ã ∩ B|,d = |Ã ∩ B| or' (A, B) Unifiable Cluster Map [14] UCM 3.2.3  Unifiable Cluster Map MUDABlue (1) (2) 2 able Cluster Map Unifi- Unifiable Cluster Map 7 44
Table 1 The list of sample software systems 3.3 Forge C 5 41 2,663,215        164,102 FF p r 24r F 9,519 4 "video"' “libcu30”  “mjpgTools” “dv2jpg” UCM gedit gtk UCM 4.
MUDABlue 4.1 41 MUDABlue (precision) (recall) 2       SVM: Support Vector Machine MUDABlue: 4.2 2 MUDABlue 18 40 SourceForge 11 11 2 5 6 7 10 No 3 8 9 No l 2 4 No.3 (YACC )    No.14 (SSL No.25 (JNI )  No.30 (getopt ）  11 5 GURU [4]     SVM  ² Ugurel    [5] MUDABlue 5 ) MUDABlue F 0.72 MUDABlue Source- l 5 3.3
Table 2  MUDABlue Result (excerpt) GURU F 0.6591 ( 0.9 0.52 )  Ugurel F 0.6531 ( 0.66 0.65 ) GURU Ugurel 22 3 -4 s 7 Unifiable Cluster Map InfoCrystal [16] Allan [17] MUDABlue MUDABlue GTK yacc MUDABlue MUD- ABlue MUDABlue JavaDoc MUDABlue [10] Marcus SVM MUDABlue Frakes [15] [22] Clus- ter Map [18] 5. 6. 5.1 IR 5. IRしい(2) LSA [9] [19] IR 4. 2.6 CodeBro- LSA 5.2 3.3 [21] 7
[7] matic categorization algorithm for evolvable software archive", Proc. 2003 Int. Workshop on Principles of Software Evolu- tion(IWPSE 2003) (2003). T. K. Landauer and S. T. Dumais: "Latent Semantic Analysis and the Measurement of Knowledge", Educational Testing Ser- vice Conf. on Natural Language Processing Techniques and Tech- nology in Assessment and Education, princeton (1994). 8 g Abstract Recently, largescale software repositories have become feasible. Such repositories store software projects with their source code, documents, and so forth. To leverage repositories, categorization of software systems is essential, however, determining what projects are related to each other is often a hard problem. Hence, we propose MUDABlue, automatic software repository categorization system. MUDABlue has four major aspects: 1) it relies on source codes only, 2) it determines category sets automatically, 3) it allows a software system to be a member of multiple categories, and 4) it depicts categorizations graphically.  We demonstrate MUDABlue's effectiveness by comparing with existing research tools. Key words  Software acquisition, Reusable libraries, Software libraries, Repositories, Clustering.