Parallel Setsによるライブラリの 組み合わせと利用状況の可視化 井上研究室 矢野裕貴 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ライブラリの利用 ソースコードの再利用手段として,オープンソースライ ブラリの利用が盛んに行われている メリット 多彩な機能 開発コストの削減 2 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ライブラリのバージョンアップ ライブラリは自身のプロジェクトとは別に開発が進めら れ,新しいバージョンがリリースされる 機能の追加 バグの修正 など 開発者は使用しているライブラリの更新作業を行う 必要がある 互換性の問題 3 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University バージョン間の非互換性 アップデートの際,互換性を失うような変更が加えら れる場合がある APIの変更などが行われると開発中のプログラムにも修正 が必要 ライブラリ間にも依存関係が存在する ライブラリの組み合わせによっても,非互換性による問題 が発生する可能性 4 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 研究背景 ライブラリの更新を行う際には,様々なことを考慮す る必要がある 機能 品質 互換性 適切な選択が難しい 他の開発者の判断を参考にする 5 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 利用状況の可視化 他のシステムにおけるライブラリの利用状況を,ライブ ラリ選択の際の判断基準に 例)時間的な利用数の変化[1] usage time [1] Y. M. Mileva, V. Dallmeier, M. Burger, and A. Zeller. Mining trends of library usage, in ERCIM Workshops, 2009, pp. 57–62. 6 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 提案手法 Parallel Setsを用いた,既存のシステムにおけるライ ブラリ利用の組み合わせの可視化 Parallel Sets とは,Kosaraらによって提案された複数のパラメータ で分類分けできるようなデータに対する可視化手法[2] 組みあわせを考慮することで,ライブラリ間で非互換 性による問題が発生するリスクを低減 既に利用された実績のある組み合わせを選ぶと安全であ る可能性が高い [2] Robert Kosara. Turning a table into a tree: Growing parallel sets into a purposeful project. Beautiful Visualization: Looking at Data through the Eyes of Experts, pp. 193-204 7 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Parallel Setsを用いた ライブラリ利用状況の可視化 それぞれの階層でシステムが各ライブラリのどのバー ジョンを利用しているかが表される 幅:各バージョンの利用数 線:組み合わせ 色:1層目のライブラリの利用バージョン 8 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Parallel Sets - データとの対応 ライブラリA,Bの両方を 使用している100個の システムの場合 1.0 40(40%) Library A Ver. 1.0 Ver. 2.0 Library B Ver. 1.0 25 25 50 Ver. 2.0 15 35 50 40 60 100 1.0→1.0 25(25%) 9 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Parallel Sets - 3層以上の場合 3層以上でも同様 1.0→1.0→2.0 10(10%) 10 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Parallel Sets - 並び替え 各階層の入れ替え バージョン,利用数順にソート 11 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 可視化手順 Step1 依存関係データベースの作成 既存のシステムから依存関係を収集 Step2 Parallel Setsの出力 データベースからの検索,可視化を行うツールを作成 12 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step1 依存関係データベースの作成 調査対象 GitHubで公開されている約4000のプロジェクト(2014/8) 100コミット以上 Maven2を用いて管理されている 方法 pom.xmlに記述された依存関係を参照 約40万の依存関係を抽出 Neo4jグラフデータベースへ追加 13 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Step2 Parallel Setsの出力 データベースから選択ライブラリに関するデータの検索, 結果の可視化 Query 14 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 使用例(ケース設定) 開発中のHttpのクライアントアプリケーションに新しく, Joda-Timeというライブラリを導入したい 現在使用しているライブラリ ・Commons-Collections : Ver. 3.2 ・Commons-HttpClient : Ver. 3.1 Q1. Joda-Timeのどのバージョンが現在の環境に適合 する可能性が高いか Q2. 使用中のライブラリのアップデートも行うとしたら, どんな組み合わせが良いか 15 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Q1:Joda-Timeのどのバージョンを選ぶか 同じ組み合わせで2つのライブラリを使用しているシス テムが,Joda-Timeのどのバージョンを使用している 現在使用しているライブラリ かを調べる ・Commons-Collections : Ver. 3.2 ・Commons-HttpClient : Ver. 3.1 16 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Q1:Joda-Timeのどのバージョンを選ぶか 3.2→3.1の組み合わせに対して,Joda-Timeの4つ のバージョンが使用されている 候補 Ver. {1.4, 1.6, 2.0, 2.2} 17 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Q2: 3つのライブラリのバージョンの組み合わせの 選択 利用数が多い組み合わせを探した場合 Commons-Collections Ver. 3.2.1 Commons-HttpClient Ver. 3.1 Joda-time Ver. 1.6 18 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Q2: 3つのライブラリのバージョンの組み合わせの 選択 新しいバージョンの組み合わせを優先した場合 Commons-Collections Ver. 3.2.1 Commons-HttpClient Ver. 3.1 Joda-time Ver. 2.2 19 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University まとめと今後の課題 まとめ ライブラリの組み合わせに着目した利用状況の可視化の 提案 実際のデータに対する可視化を行った 今後の課題 ライブラリ同士の比較を行いやすいように 他の可視化手法との組み合わせ 20 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
© Copyright 2025 ExpyDoc