Understanding Business System through Software Clustering Using I/O Instructions for External Systems

Σχετικά έγγραφα
Newman Modularity Newman [4], [5] Newman Q Q Q greedy algorithm[6] Newman Newman Q 1 Tabu Search[7] Newman Newman Newman Q Newman 1 2 Newman 3

GPGPU. Grover. On Large Scale Simulation of Grover s Algorithm by Using GPGPU

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems

Test Data Management in Practice

Buried Markov Model Pairwise

ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

ER-Tree (Extended R*-Tree)

, Evaluation of a library against injection attacks

: Monte Carlo EM 313, Louis (1982) EM, EM Newton-Raphson, /. EM, 2 Monte Carlo EM Newton-Raphson, Monte Carlo EM, Monte Carlo EM, /. 3, Monte Carlo EM

A Method for Creating Shortcut Links by Considering Popularity of Contents in Structured P2P Networks

3: A convolution-pooling layer in PS-CNN 1: Partially Shared Deep Neural Network 2.2 Partially Shared Convolutional Neural Network 2: A hidden layer o

井上, 克郎 ; 神谷, 年洋 ; 楠本, 真二 コンピュータソフトウェア. 18(5) P.529-P

Vol. 31,No JOURNAL OF CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY Feb

Quick algorithm f or computing core attribute

Maxima SCORM. Algebraic Manipulations and Visualizing Graphs in SCORM contents by Maxima and Mashup Approach. Jia Yunpeng, 1 Takayuki Nagai, 2, 1

Re-Pair n. Re-Pair. Re-Pair. Re-Pair. Re-Pair. (Re-Merge) Re-Merge. Sekine [4, 5, 8] (highly repetitive text) [2] Re-Pair. Blocked-Repair-VF [7]

Nov Journal of Zhengzhou University Engineering Science Vol. 36 No FCM. A doi /j. issn

Study of In-vehicle Sound Field Creation by Simultaneous Equation Method

ΔΘΝΙΚΗ ΥΟΛΗ ΓΗΜΟΙΑ ΓΙΟΙΚΗΗ ΚΑ ΔΚΠΑΙΓΔΤΣΙΚΗ ΔΙΡΑ ΣΔΛΙΚΗ ΔΡΓΑΙΑ

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Εκτεταμένη περίληψη Περίληψη

Optimization, PSO) DE [1, 2, 3, 4] PSO [5, 6, 7, 8, 9, 10, 11] (P)

Schedulability Analysis Algorithm for Timing Constraint Workflow Models

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

GPU. CUDA GPU GeForce GTX 580 GPU 2.67GHz Intel Core 2 Duo CPU E7300 CUDA. Parallelizing the Number Partitioning Problem for GPUs

SocialDict. A reading support tool with prediction capability and its extension to readability measurement

Study of urban housing development projects: The general planning of Alexandria City


EM Baum-Welch. Step by Step the Baum-Welch Algorithm and its Application 2. HMM Baum-Welch. Baum-Welch. Baum-Welch Baum-Welch.

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Detection and Recognition of Traffic Signal Using Machine Learning

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

No. 7 Modular Machine Tool & Automatic Manufacturing Technique. Jul TH166 TG659 A

Reading Order Detection for Text Layout Excluded by Image

Stabilization of stock price prediction by cross entropy optimization

Approximation of distance between locations on earth given by latitude and longitude

An Automatic Modulation Classifier using a Frequency Discriminator for Intelligent Software Defined Radio

IMES DISCUSSION PAPER SERIES

Development of a basic motion analysis system using a sensor KINECT

HIV HIV HIV HIV AIDS 3 :.1 /-,**1 +332

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΕΡΙΒΑΛΛΟΝΤΟΣ

Research on vehicle routing problem with stochastic demand and PSO2DP algorithm with Inver2over operator

Wiki. Wiki. Analysis of user activity of closed Wiki used by small groups

Homomorphism in Intuitionistic Fuzzy Automata

{takasu, Conditional Random Field

VSC STEADY2STATE MOD EL AND ITS NONL INEAR CONTROL OF VSC2HVDC SYSTEM VSC (1. , ; 2. , )

Simplex Crossover for Real-coded Genetic Algolithms

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ "ΠΟΛΥΚΡΙΤΗΡΙΑ ΣΥΣΤΗΜΑΤΑ ΛΗΨΗΣ ΑΠΟΦΑΣΕΩΝ. Η ΠΕΡΙΠΤΩΣΗ ΤΗΣ ΕΠΙΛΟΓΗΣ ΑΣΦΑΛΙΣΤΗΡΙΟΥ ΣΥΜΒΟΛΑΙΟΥ ΥΓΕΙΑΣ "

Probabilistic Approach to Robust Optimization

Supplementary Materials for Evolutionary Multiobjective Optimization Based Multimodal Optimization: Fitness Landscape Approximation and Peak Detection

ΑΝΙΧΝΕΥΣΗ ΓΕΓΟΝΟΤΩΝ ΒΗΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΕΠΙΤΑΧΥΝΣΙΟΜΕΤΡΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

[1] DNA ATM [2] c 2013 Information Processing Society of Japan. Gait motion descriptors. Osaka University 2. Drexel University a)

ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΡΟΦΙΜΩΝ ΚΑΙ ΔΙΑΤΡΟΦΗΣ ΤΟΥ ΑΝΘΡΩΠΟΥ

Research on Economics and Management

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙO ΑΘΗΝΩΝ ΤΜΗΜΑ ΑΞΙΟΠΟΙΗΣΗΣ ΦΥΣΙΚΩΝ ΠΟΡΩΝ & ΓΕΩΡΓΙΚΗΣ ΜΗΧΑΝΙΚΗΣ

Kenta OKU and Fumio HATTORI

Numerical Analysis FMN011

Architecture οf Integrated Ιnformation Systems (ARIS)


SCITECH Volume 13, Issue 2 RESEARCH ORGANISATION Published online: March 29, 2018

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ (ΣΔΟ) ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΚΑΙ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ

Congruence Classes of Invertible Matrices of Order 3 over F 2

Εκπαιδευτική Ρομποτική

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Yoshifumi Moriyama 1,a) Ichiro Iimura 2,b) Tomotsugu Ohno 1,c) Shigeru Nakayama 3,d)

A summation formula ramified with hypergeometric function and involving recurrence relation

Security in the Cloud Era

Retrieval of Seismic Data Recorded on Open-reel-type Magnetic Tapes (MT) by Using Existing Devices

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Η ΔΙΑΣΤΡΕΥΛΩΣΗ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΜΕΣΩ ΤΩΝ SOCIAL MEDIA ΤΗΝ ΤΕΛΕΥΤΑΙΑ ΠΕΝΤΑΕΤΙΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΑΝΑΣΤΑΣΙΑΣ-ΜΑΡΙΝΑΣ ΔΑΦΝΗ

VBA Microsoft Excel. J. Comput. Chem. Jpn., Vol. 5, No. 1, pp (2006)


c Key words: cultivation of blood, two-sets blood culture, detection rate of germ Vol. 18 No

Ταυτοποίηση ασθενούς μέσω ραδιοσυχνικής αναγνώρισης (RFID) με σκοπό τον έλεγχο της χορήγησης αναισθησίας κατά τη διάρκεια χειρουργικής επέμβασης

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΠΑΝΑΣΧΕΔΙΑΣΜΟΣ ΓΡΑΜΜΗΣ ΣΥΝΑΡΜΟΛΟΓΗΣΗΣ ΜΕ ΧΡΗΣΗ ΕΡΓΑΛΕΙΩΝ ΛΙΤΗΣ ΠΑΡΑΓΩΓΗΣ REDESIGNING AN ASSEMBLY LINE WITH LEAN PRODUCTION TOOLS

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

þÿ Ç»¹º ³µÃ ± : Ãż²» Ä Â

Ανάκτηση Εικόνας βάσει Υφής με χρήση Eye Tracker

Η ΠΡΟΣΩΠΙΚΗ ΟΡΙΟΘΕΤΗΣΗ ΤΟΥ ΧΩΡΟΥ Η ΠΕΡΙΠΤΩΣΗ ΤΩΝ CHAT ROOMS

ΑΝΑΠΤΥΞΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΕΚΠΑΙΔΕΥΣΗΣ ΜΕ ΣΤΟΧΟ ΤΗΝ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΕΥΑΙΣΘΗΤΟΠΟΙΗΣΗ ΑΤΟΜΩΝ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ ΚΑΙ ΤΗΝ ΚΟΙΝΩΝΙΚΗ ΤΟΥΣ ΕΝΣΩΜΑΤΩΣΗ

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

CRASH COURSE IN PRECALCULUS

Research of Han Character Internal Codes Recognition Algorithm in the Multi2lingual Environment

User Behavior Analysis for a Large2scale Search Engine

Τοποθέτηση τοπωνυµίων και άλλων στοιχείων ονοµατολογίας στους χάρτες

Conjoint. The Problems of Price Attribute by Conjoint Analysis. Akihiko SHIMAZAKI * Nobuyuki OTAKE

Text Mining using Linguistic Information

ΑΓΓΛΙΚΑ IV. Ενότητα 6: Analysis of Greece: Your Strategic Partner in Southeast Europe. Ιφιγένεια Μαχίλη Τμήμα Οικονομικών Επιστημών

Resurvey of Possible Seismic Fissures in the Old-Edo River in Tokyo

Online Social Networks: Posts that can save lives. Dimitris Gritzalis, Sotiria Giannitsari, Dimitris Tsagkarakis, Despina Mentzelioti April 2016

Π.Μ.. ΣΜΖΜΑΣΟ ΠΛΖΡΟΦΟΡΗΚΖ ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ. Υπνινγηζηηθή ζύγθξηζε ησλ αιγνξίζκσλ Heap Sort θαη Weak Heap Sort. Βαζηιεία Φνξκόδε Α.Μ.

Computing Gradient. Hung-yi Lee 李宏毅

Γιπλυμαηική Δπγαζία. «Ανθπυποκενηπικόρ ζσεδιαζμόρ γέθςπαρ πλοίος» Φοςζιάνηρ Αθανάζιορ. Δπιβλέπυν Καθηγηηήρ: Νηθφιανο Π. Βεληίθνο

FX10 SIMD SIMD. [3] Dekker [4] IEEE754. a.lo. (SpMV Sparse matrix and vector product) IEEE754 IEEE754 [5] Double-Double Knuth FMA FMA FX10 FMA SIMD

Online Social Networks: Posts that can save lives. Sotiria Giannitsari April 2016

Παλεπηζηήκην Πεηξαηώο Τκήκα Πιεξνθνξηθήο Πξόγξακκα Μεηαπηπρηαθώλ Σπνπδώλ «Πξνεγκέλα Σπζηήκαηα Πιεξνθνξηθήο»

Transcript:

1,a) 1,b) 2,c) 2,d) 1,e) 1 2 Java Understanding Business System through Software Clustering Using I/O Instructions for External Systems Abstract: Business systems written decades ago play a key role in modern society. The maintenance of these systems requires a huge effort because they are typically large-scale and complicated. System modernization is important to facilitate the maintenance task of a legacy system. However, understanding a system for its modernization is a difficult task; one of the main reasons is that identifier names in the legacy code do not represent their roles. This paper proposes a software clustering technique which groups functions in source code by similarity of their actions without using identifier names. The technique can provide a benefit: if a developer understands a function included in a cluster, the developer can easily understand other functions included in the same cluster. This technique extracts a sequence of input/output instructions for a database and a user interface from each function to detect similar functions. An experiment for two Java systems showed that the clustering results by the technique resemble those by a developer. 1. 1 Graduate School of Information Science and Technology, Osaka University 2 NTT NTT DATA Corporation a) t-hatano@ist.osaka-u.ac.jp b) ishio@ist.osaka-u.ac.jp c) moroys@nttdata.co.jp d) sakatayu@nttdata.co.jp e) inoue@ist.osaka-u.ac.jp [1] [2] c 2015 Information Processing Society of Japan 17

(1) Java (2) FUNC0001 FUNC0002 [3] [4] [5] [6] Kobayashi [7] Kobayashi [7] Java Java 2 2 3 4 5 6 2. 2.1 1 [6], [7] Mitchell [8] Mancoridis [9] [10] c 2015 Information Processing Society of Japan 18

[11] [12] Kobayashi [12] [7] Anquetil [13] Andritsos [14] Anquetil [15] Scanniello [16] Tzerpos [17] C filea.c filea.h 2.2 2.2.1 [18] [18] 2.2.2 McMillan Java [19] API 3. 1 Java COBOL SQL c 2015 Information Processing Society of Japan 19

Java JDBC API API 3 Step 1 Step 2 N-gram Step 3 Step 2 3.1 Step 1 1 s m SELECT java.util.list 1 SQL SELECT Ss Sm INSERT Is Im UPDATE Us Um DELETE Ds Dm Rs Rm Ws Wm if If if If} else E for, while, do L for, while, do L} 2 1 SELECT OrderDao.select DELETE CustormerDao.delete Vo.getSelectedCustomers Cesare [20] Java development tools *1 Class Hierarchy Analysis [21] 1 1 7 8 2 1 4 11 [Rm, L, Sm, If, Ds, If}, L}] *1 http://eclipse.org/jdt/ c 2015 Information Processing Society of Japan 20

1 2 3 4 5 6 7 8 9 10 11 12 void batchdeletecustomer(customerdao cstdao, OrderDao orddao, Vo vo) { // ID String[] idarray = vo.getselectedcustomers(); for (String id: idarray) { // List<OrderDto> ordlist = orddao.select(id); if (ordlist.isempty()) { cstdao.delete(id); // } } } 1 3.2 Step 2 Step 1 N-gram N-gram N-gram N-gram N N N =3 tri-gram ABCDE tri-gram {$$A, $AB, ABC, BCD, CDE, DE$, E$$} (1) $ N-gram 2 X, Y Jaccard(X, Y) = X Y X Y (2) X Y 1 X Y 0 N-gram 3.3 Step 3 Step 2 Newman [22] [12], [23] V O( V log 2 V ) [24] Newman Q Q= 1 [ A ij k ] ik j δ(c i,c j ) (3) W W i,j A ij i j W W = i,j A ij k i i k i = j A ij c x x δ(c i,c j ) c i = c j 1 0 Q Q Q NP [25] Newman Q (1) 1 (2) Q 2 (3) 1 2 (4) Q Step 2 Newman Newman 0 2 m i m j k ij N-gram M i M j { Jaccard(M i,m j ) if (Jaccard(M i,m j ) th) k ij = 0 otherwise (4) th c 2015 Information Processing Society of Japan 21

4. 2 Java 3 4.1 Step 2 N-gram N 1 3 5 Step 3 th 0.0 1.0 0.1 N=1 th=1.0 N-gram N N N th N th Newman 1 4.1 3 [26] 4.1.1 1 2 MoJoFM [27] MoJoFM A B 2 Move 1 Join 2 1 MoJoFM A B mno(a, B) MoJoFM(A, B) =(1 ) 100% (5) max(mno( A, B)) mno(a, B) A B max(mno( A, B)) B MoJoFM A B MoJoFM 100% A B MoJoFM MoJoFM(A, B) MoJoFM(B, A) A B 4.1.2 Non- Extremity of cluster Distribution NED NED NED(C) = 1 c (6) M c C;5 c max(20,m/5) c C c c M C M [12] NED 1 4.1.3 2 2 A, B MoJoSim [28] MoJoSim MoJoFM Move c 2015 Information Processing Society of Japan 22

3 MosP 253-334 56-75 7 9 6 3 Join A B B A MoJoSim(A, B) =(1 OP ) 100% (7) N OP = min(mno(a, B),mno(B,A)) (8) 2 MoJoSim 2 MoJoSim MoJoSim 4.2 MosP V4 *2 3 3 MosP JDBC ibatis MosP Action action sql CREATE TABLE TABLE - MosP 11 4.0.0-4.4.2 4 MosP Dao Vo *2 http://sourceforge.jp/projects/mosp/releases/62164 4 MosP SELECT findfor INSERT insert Dao UPDATE update DELETE delete logicaldelete get Vo set 4.3 4.3.1 MosP MosP 5 MoJoFM MoJoFM NED MoJoSim MoJoSim MoJoFM 5 MoJoSim NED N=5 th=0.1 0.94 MoJoFM N 45 55% MoJoFM NED MoJoFM NED 2 10 6 6 N=1 th=1.0 MoJoFM NED N=3 N=5 N=1 th=1.0 1 88 c 2015 Information Processing Society of Japan 23

5 MosP N=1 N=3 N=5 th MoJoFM NED MoJoSim MoJoFM NED MoJoSim MoJoFM NED MoJoSim 0.0 36.70 0.0 98.26 38.23 0.19 91.11 39.14 0.21 92.87 0.1 36.70 0.0 98.33 32.72 0.17 88.67 50.76 0.94 92.29 0.2 36.70 0.0 97.88 45.57 0.70 94.67 48.62 0.74 95.73 0.3 35.78 0.0 96.81 46.48 0.73 95.01 46.18 0.51 97.05 0.4 36.70 0.0 98.15 44.95 0.54 97.23 42.51 0.43 96.78 0.5 42.81 0.11 96.81 44.04 0.42 97.18 35.47 0.34 96.69 0.6 37.61 0.0 94.60 36.70 0.36 96.88 29.97 0.27 97.13 0.7 45.26 0.18 95.98 31.19 0.26 97.41 27.22 0.24 97.14 0.8 49.85 0.23 98.34 25.69 0.20 97.55 20.49 0.16 97.91 0.9 50.46 0.21 97.82 18.35 0.10 98.27 16.51 0.10 98.72 1.0 55.35 0.59 96.94 15.60 0.08 98.98 14.98 0.08 99.01 MoJoFM 26.91 MoJoFM 77.37 6 N, th MoJoFM NED 5, 0.1 2 (50.76) 1 (0.94) 3 23 1, 1.0 1 (55.35) 5 (0.59) 6 88 5, 0.2 5 (48.62) 2 (0.74) 7 79 3, 0.3 6 (46.48) 3 (0.73) 9 84 3, 0.2 8 (45.57) 4 (0.70) 12 25 5, 0.3 7 (46.18) 7 (0.51) 14 135 3, 0.4 10 (44.95) 6 (0.54) 16 126 1, 0.8 4 (49.85) 15 (0.23) 19 25 1, 0.9 3 (50.46) 16.5 (0.21) 19.5 57 3, 0.5 11 (44.04) 9 (0.42) 20 152 73 5 N=3 N=5 th N=1 NED MoJoFM N=5 th=0.1 27 search 13 batchupdate 8 delete 2 N=1 2 1 6 3 7 7 MoJoFM Frequency 12 10 8 6 4 2 0 0 5 10 15 20 25 30 35 40 45 50 55 60 65 size of cluster 2 N=5 th=0.1 N 3 5 NED MoJoFM 77.37% 300 MoJoFM 15% [27] N th MoJoFM NED NED 5 MoJoFM NED 0.62 NED NED c 2015 Information Processing Society of Japan 24

7 N, th MoJoFM NED 5, 0.1 59.94 0.88 48 3, 0.2 59.63 0.83 50 1, 0.8 56.27 0.66 32 8 6 4 7 N=3 N=5 th 0.1 0.2 4.3.2 N=3 th=0.0 3 1 update1 search1 3 SQL batch1 batch2 batch1 INSERT batch2 UPDATE SQL SQL INSERT 2 0 update3 batch1 regist1 update2 batch2 update1 search1 search2 search3 3 4.4 4 Java 3 Java 5. Java c 2015 Information Processing Society of Japan 25

API READ/WRITE 1 10 Step 1 Step 2 N-gram Step 3 Newman N-gram Newman 40 [24] 6. 2 Java NED MoJoFM 60% 77% No.25220003, 26280021 [1] JUAS 2012 (2012). [2] Ducasse, S. and Pollet, D.: Software Architecture Reconstruction: A Process-Oriented Taxonomy, IEEE Transactions on Software Engineering, Vol. 35, No. 4, pp. 573 591 (2009). [3] Sneed, H. M.: Object-oriented COBOL recycling, Proceedings of the 3rd Working Conference on Reverse Engineering, pp. 169 178 (1996). [4] McConnel, S.: Code Complete, Second Edition, Microsoft Press (2004). [5] Koschke, R. and Simon, D.: Hierarchical Reflexion Models, Proceedings of the 10th Working Conference on Reverse Engineering, pp. 36 45 (2003). [6] Maqbool, O. and Babri, H.: Hierarchical Clustering for Software Architecture Recovery, IEEE Transactions on Software Engineering, Vol. 33, No. 11, pp. 759 780 (2007). [7] Kobayashi, K., Kamimura, M., Yano, K., Kato, K. and Matsuo, A.: SArF map: Visualizing software architecture from feature and layer viewpoints, Proceedings of the 21st International Conference on Program Comprehension, pp. 43 52 (2013). [8] Mitchell, B. S. and Mancoridis, S.: On the automatic modularization of software systems using the bunch tool, IEEE Transactions on Software Engineering, Vol. 32, No. 3, pp. 193 208 (2006). [9] Mancoridis, S. and Mitchell, B.: Bunch: A clustering tool for the recovery and maintenance of software system structures, Proceedings of the 7th International Conference on Software Maintenance, pp. 50 59 (1999). [10] (2007). [11] Müller, H. A., Orgun, M. A., Tilley, S. R. and Uhl, J. S.: A Reverse Engineering Approach To Subsystem Structure Identification, Journal of Software Maintenance: Research and Practice, Vol. 5, No. 4, pp. 181 204 (1993). [12] Kobayashi, K., Kamimura, M., Kato, K., Yano, K. and Matsuo, A.: Feature-gathering dependency-based soft- c 2015 Information Processing Society of Japan 26

ware clustering using Dedication and Modularity, Proceedings of the 28th International Conference on Software Maintenance, pp. 462 471 (2012). [13] Anquetil, N. and Lethbridge, T.: Comparative Study of Clustering Algorithms and Abstract Representations for Software Remodularization, IEE Proceedings-Software, Vol. 150, No. 3, pp. 185 201 (2003). [14] Andritsos, P. and Tzerpos, V.: Information-theoretic software clustering, IEEE Transactions on Software Engineering, Vol. 31, No. 2, pp. 150 165 (2005). [15] Anquetil, N. and Lethbridge, T.: Recovering software architecture from the names of source files, Journal of Software Maintenance, Vol. 11, No. 3, pp. 201 221 (1999). [16] Scanniello, G., D Amico, A., D Amico, C. and D Amico, T.: Using the Kleinberg Algorithm and Vector Space Model for Software System Clustering, Proceedings of the 18th International Conference on Program Comprehension, pp. 180 189 (2010). [17] Tzerpos, V. and Holt, R.: ACDC: An algorithm for comprehension-driven clustering, Proceedings of the 7th Working Conference on Reverse Engineering, pp. 258 267 (2000). [18] Kamiya, T., Kusumoto, S. and Inoue, K.: CCFinder : A Multi-linguistic Token-Based Code Clone Detection System for Large Scale Source Code, IEEE Transactions on Software Engineering, Vol. 28, No. 7, pp. 654 670 (2002). [19] McMillan, C., Grechanik, M. and Poshyvanyk, D.: Detecting similar software applications, Proceedings of the 34th International Conference on Software Engineering, pp. 364 374 (2012). [20] Cesare, S. and Xiang, Y.: Malware Variant Detection Using Similarity Search over Sets of Control Flow Graphs, Proceedings of the 10th International Conference on Trust, Security and Privacy in Computing and Communications, pp. 181 189 (2011). [21] Dean, J., Grove, D. and Chambers, C.: Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis, Proceedings of the 9th European Conference on Object-Oriented Programming, pp. 77 101 (1995). [22] Newman, M. E. J.: Fast algorithm for detecting community structure in networks, Physical Review E, Vol. 69, No. 6, pp. 1 5 (2004). [23] Ural, E., Umut, T. and Feza, B.: Object Oriented Software Clustering Based on Community Structure, Proceedings of the 18th Asia-Pacific Software Engineering Conference, pp. 315 321 (2011). [24] Clauset, A., Newman, M. E. J. and Moore, C.: Finding community structure in very large networks, Physical Review E, Vol. 70, No. 6 (2004). [25] Brandes, U., Delling, D., Gaertler, M., Robert, G., Hoefer, M., Nikoloski, Z. and Wagner, D.: On Modularity Clustering, IEEE Transactions on Knowledge and Data Engineering, Vol. 20, No. 2, pp. 172 188 (2008). [26] Wu, J., Hassan, A. and Holt, R.: Comparison of clustering algorithms in the context of software evolution, Proceedings of the 21st International Conference on Software Maintenance, pp. 525 535 (2005). [27] Wen, Z. and Tzerpos, V.: An effectiveness measure for software clustering algorithms, Proceedings of 12th International Workshop on Program Comprehension, pp. 194 203 (2004). [28] Tzerpos, V. and Holt, R.: MoJo: a distance metric for software clusterings, Proceedings of the 6th Working Conference on Reverse Engineering, pp. 187 193 (1999). c 2015 Information Processing Society of Japan 27