Extracting a Unified Directory Tree to Compare Similar Software Products Yusuke Sakaguchi, Takashi Ishio, Tetsuya Kanda, Katsuro Inoue Department of Computer.

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Identifying Source.
Advertisements

Copyright © 2010 Nobot All Rights Reserved.
Automatic Image Collection of Objects with Similar Function by Learning Human Grasping Forms Shinya Morioka, Tadashi Matsuo, Yasuhiro Hiramoto, Nobutaka.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
The Moment of AHA! Dec. 25, 2004 hideki
File Management Chapter 12. File Management A file is a named entity used to save results from a program or provide data to a program. Access control.
情報処理A 第10回 Excelの使い方 その3.
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
Excelによる積分.
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
正弦波.
第 6 回 iPhone アプリ勉強会 〜画像の取得と処理〜 縣 禎輝. はじめに カメラアプリを作成 – 基盤となる Interface とアクションメソッドの作成 – 画像の取得先の設定 – 画像の表示と保存 – 画像にエフェクトをかける 参考ウェブサイト –
音の変化を視覚化する サウンドプレイヤーの作成
HCC Hair Color Change. メンバー ソ 渋谷麻美 ソ 渋谷麻美 ソ 清野理衣子 ソ 清野理衣子 ソ 三上貴大 ソ 三上貴大.
Photometric Stereo for Lambertian Surface Robert J. Woodham, "Photometric method for determining surface orientation from multiple shading images", Optical.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Automatic Categorization.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Measuring Copying.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Where Does This.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University CoxR: Open Source.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Finding Similar.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A lightweight.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Criterion for.
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University DCCFinder: A Very- Large Scale Code Clone Analysis.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A clone detection approach for a collection of similar.
HES-HKS & KaoS meeting Toshi Gogami 5/July/2012. Contents SPL + ENGE Gogami spectra (Λ,Σ 0, 12 Λ B) Level 1.
7. Modular design (モジュール 設計) Modular design is an important technique for designing good quality program systems. In this part, you will learn: (内容) The.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Method to Detect License Inconsistencies for Large-
Khoros Yongqun He Dept. of Computer Science, Virginia Tech.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  The course describes the performance analysis and profiling tools.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Applying Clone.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University How to extract.
2006/12/081 Large Scale Crawling the Web for Parallel Texts Chikayama Taura lab. M1 Dai Saito.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University Dependence-Cache.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University VerXCombo: An.
Design of a High-Throughput Low-Power IS95 Viterbi Decoder Xun Liu Marios C. Papaefthymiou Advanced Computer Architecture Laboratory Electrical Engineering.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Code-Clone Detection.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Development of.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Retrieving Similar Code Fragments based on Identifier.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Towards Program.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
2007/4/201 Extracting Parallel Texts from Massive Web Documents Chikayama Taura lab. M2 Dai Saito.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Cage: A Keyword.
HES HKS meeting 13 Dec 2010 T.Gogami. Contents Event display for HKS – HKSdetectors – KDC – KDC1 – KDC2 – KDC_2d.
Search Worms, ACM Workshop on Recurring Malcode (WORM) 2006 N Provos, J McClain, K Wang Dhruv Sharma
1 Measuring Similarity of Large Software System Based on Source Code Correspondence Tetsuo Yamamoto*, Makoto Matsushita**, Toshihiro Kamiya***, Katsuro.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University An Empirical Study of Out-dated Third-party Code.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Classification.
1 Overview of Component Search System SPARS-J Tetsuo Yamamoto*,Makoto Matsushita**, Katsuro Inoue** *Japan Science and Technology Agency **Osaka University.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
HES-HKS & KaoS meeting 1Nov2013 Toshi Gogami 2009 年の今頃.
1.テキストの入れ替え テキストを自由に入れ替えることができます。 2.画像の入れ替え [書式]タブの[図の変更]から、会社ロゴ などに入れ替えることができます。
S-2S meeting Toshiyuki Gogami 後神 利志 20Aug2014. Contents S-2S 3D CAD WC detector Simulation for (K-,K+) experiment with SKS.
L12: A Wumpus World Project To be checked on 16 th January 11:10~12:40 In Lab1.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Detection of License Inconsistencies in Free and.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Software Ingredients:
Source File Set Search for Clone-and-Own Reuse Analysis
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
○Yuichi Semura1, Norihiro Yoshida2, Eunjong Choi3, Katsuro Inoue1
On Refactoring Support Based on Code Clone Dependency Relation
Where Does This Code Come from and Where Does It Go?
Bug Localization with Combination of Deep Learning and Information Retrieval A. N. Lam et al. International Conference on Program Comprehension 2017.
Accelerating Regular Path Queries using FPGA
Presentation transcript:

Extracting a Unified Directory Tree to Compare Similar Software Products Yusuke Sakaguchi, Takashi Ishio, Tetsuya Kanda, Katsuro Inoue Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Background: Similar software products Clone-and-own approach –Copying and modifying an existing product –Importing libraries A Ver.1.0 Fix a bug Clone-and-own t A Ver.1.1 B Ver.1.0 B Ver.1.1 C Ver.1.0 Clone-and-own Must fix the bug

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Software Product Line Engineering Promising for managing derived software products To apply the approach to existing products, developers need to understand the commonalities and variabilities of them. –Duszynski et al. [1] proposed to compare source code in corresponding directories among similar products. Developers must know corresponding directories among products (which directories should be compared). 2 [1] S. Duszynski, J. Knodel, and M. Becker “Analyzing the source code of multiple software variants for reuse potential,” Reverse Engineering, 2011

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University The correspondence of directories Some existing techniques [2], [3] can extract corresponding directories between two similar products. Cannot analyze more than two products at a time. 3 [2] K. Yoshimura, D. Ganesan, and D. Muthig “Assessing merge potential of existing engine control systems into a product line” Software Engineering for Automotive Systems, 2006 [3] D. Holten and J. J. van Wijk “Visual comparison of hierarchically organized data” Joint Eurographics / IEEE - VGTC Conference on Visualization, 2008

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University The proposed method Automatically extract a unified directory tree representing corresponding directories among multiple products Key idea –Corresponding directories have similar source files 4

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University S1S2 S3 src a a a bb b c c Our prototype Input –Source code of some products Output –a unified directory tree 5 b ac src S1S2 S3 src a b c a b S1S2 S3 src a a a bb b c c Directory trees Directory graph Spanning tree

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Node of directory graph 6

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Similarity 7

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example 8 b ac src S1S2 S3 src a b c a b The same color nodes are similar. White nodes have no files.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example 9 a a a bb b c c

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Special Treatment 10 Directories without files  A single node represents such directories if their subdirectories are represented by the same node Root directories  A root node represents all the root directories of products, irrespective of product similarity.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example 11 b ac src S1S2 S3 src a b c a b

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example 12 S1S2 S3 src a a a bb b c c

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Connecting nodes Weighted arcs –The number of parent-subdirectory relationship among two nodes. 13 S1S2 S3 src a a a bb b c c S1S2 S3 src a a a bb b c c parent-subdirectory relationship

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Greedy tree extraction 14

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Greedy loop 19 S1S2 S3 src a a a bb b c c

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Directory Viewer 16 Tree View shows the unified directory tree. If a node contains multiple directories having different source code, the node is colored in blue. Different code included

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Directory Viewer 17 File List View shows a table of file names and their MD5 hash values contained in a selected node. A black hash value indicates that the file content is different from another product. Different contents

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Directory Viewer 18 File Matrix View shows the similarity of files having the same file name selected in a file list view. A darker (yellow/red) color indicates a lower similarity.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Case study Input products –Android OS : 4.2 –CPU : Qualcomm MSM ProductVendor Mobile Network Operator Release#Dirs FJL22Fujitsuau2013/117, FFujitsuSoftBank2013/127,708 F-01FFujitsuNTT DOCOMO 2013/107,582 SO-01FSonyNTT DOCOMO 2013/105,840

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Output A predetermined similarity threshold th = 0.8 Execution time : 42 minutes –Two Intel Xeon (2.27Ghz, 4cores) –24GB RAM The resultant unified directory tree comprises 9,037 nodes. –673 nodes contain different contents from other products. 20

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example: kernel node Fujitsu Sony-- Makefile AndroidKernel.mk Developer-specific options for the kernel build is mainly written in this file.

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example: Product-specific directory 22 (Fujitsu) external (Sony) external chronium external (Fujitsu) chronium (Sony) chronium (Fujitsu/Sony) Common subdirectories (Sony) Unique subdirectories Different Common Unique to Sony InputOutput

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Conclusion and Future Work Our tool visualizes a unified directory tree. We conducted a case study using four Android products. –The tool enabled us to quickly focus on directories having different contents. Future work: Controlled experiment to evaluate –The effectiveness for source code comparison tasks. 23

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 24

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Creating node Can analyze the differences among the directories

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Aligning the tree with a specific product root : {,, }s1s2s3 nsrc : {,, }s1/srcs2/srcs3/src na : {,, } s1/src/a s2/src/a s3/src/a nb : {,, } s1/src/a/b s2/src/b s3/src/b nc : {, } s1/src/c s2/src/c 2 30 Focus on S1

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Directory Viewer 27 Scope Button

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Tree View 28 S1 : cS2 : c S1 : b S2 : b S3 : b DifferenceSimilar Different file Path

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example: kernel node Fujitsu Sony-- MAINTAINERS Lack some non-ASCII characters

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University File List View 30 セルは、まとめられた各ディレクトリに対 する 各ファイルのハッシュ値 – ファイル内容が異なる場合黒く描画 フルパスをクリックするとファイル管理 ツールでそのディレクトリが開く ディレクトリ b を選択

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University File Matrix View After one of the cells is selected, an external diff tool (e.g.,WinMerge) is executed in order to compare two files. 31