1 / 20

API 呼び出し列の差分を利用 した Android アプリケーション比較ツールの 試作

API 呼び出し列の差分を利用 した Android アプリケーション比較ツールの 試作. 井上研究室 神田 哲也. ソフトウェアの比較. 現在,大量のソフトウェアが入手可能 Android Market から, Vector から, … 類似 する ソフトウェアが多い ソフトウェア を選択する必要性 利用者:ソフトウェアに利用したい機能が存在するかを確認したい 開発者 :機能追加の際,今あるソフトウェアがどのような機能を持つか知りたい  ソフトウェアを比較して 機能の違いを明確にする必要がある. ソフトウェア比較における問題点. API 呼び出しと機能.

Download Presentation

API 呼び出し列の差分を利用 した Android アプリケーション比較ツールの 試作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. API呼び出し列の差分を利用したAndroidアプリケーション比較ツールの試作API呼び出し列の差分を利用したAndroidアプリケーション比較ツールの試作 井上研究室 神田 哲也

  2. ソフトウェアの比較 • 現在,大量のソフトウェアが入手可能 • Android Marketから,Vectorから,… • 類似するソフトウェアが多い • ソフトウェアを選択する必要性 • 利用者:ソフトウェアに利用したい機能が存在するかを確認したい • 開発者:機能追加の際,今あるソフトウェアがどのような機能を持つか知りたい ソフトウェアを比較して機能の違いを明確にする必要がある 特別研究発表会

  3. ソフトウェア比較における問題点 特別研究発表会

  4. API呼び出しと機能 • プラットフォーム固有の機能を利用するためにAPIが呼び出される • 高機能なAPIが提供される環境がある • Android,Windows,… • 呼び出しの形式は統一されている 複数のソフトウェアを機械的に処理できる • ソースコードの比較より少ない情報で比較が可能 API呼び出しを比較することでソフトウェアの比較ができるのではないか 特別研究発表会

  5. Android • 携帯端末向けプラットフォーム • Android SDK(ソフトウェア開発キット) • カメラ,GPS位置情報などを利用するためのAPIを含む • 抽象度が高く,高機能なAPIを持つ 特別研究発表会

  6. 提案手法の概要 アプリケーションX1 API呼び出し列抽出 A.m1() B.m2() B.m3() C.m1() D.m4() A.m1() B.m2() D.m2() B.m3() アプリケーションX2 API呼び出し列抽出 API呼び出し列 比較 事前知識 X1のみに出現するAPI呼び出し列 共通するAPI呼び出し列 X2のみに出現するAPI呼び出し列 名前 API呼び出し列 照合 照合 照合 X2のみに存在する機能 X1のみに存在する機能 共通する機能 特別研究発表会

  7. API呼び出し列 • メソッドから抽出した興味のあるAPI呼び出しの並び • ソースコード中の出現順 • 制御構造は考慮しない • 1メソッドにつき1つのAPI呼び出し列を抽出 ソースコード public void onClick(View v) { String s = str.substring(2); Intent intent=new Intent(this,com.example.edit.class); startActivity(intent); } android.content.Intent.android.content.Intent android.app.Activity.startActivity API呼び出し列 特別研究発表会

  8. API呼び出し列の比較 A.m1() B.m2() B.m3() C.m1() D.m4() B.m3() A.m1() B.m2() D.m2() B.m3() 長さ2以上の共通する連続部分を共通するAPI呼び出し列として抽出 API呼び出し列 比較 X2のみに出現するAPI呼び出し列 X1のみに出現するAPI呼び出し列 共通するAPI呼び出し列 B.m3() C.m1() D.m4() A.m1() B.m2() B.m3() D.m2() B.m3() 特別研究発表会

  9. 事前知識との照合 事前知識 X1のみに出現するAPI呼び出し列 共通するAPI呼び出し列 B.m3() C.m1() D.m4() カメラ1 A.m1() B.m2() 一致 A.m1() B.m2() X2のみに出現するAPI呼び出し列 地図1 B.m2() B.m3() C.m1() D.m4() 一致 B.m2() B.m3() C.m1() D.m2() B.m3() カメラ3 D.m2() B.m3() 一致 特別研究発表会

  10. 事前知識作成の概要 API呼び出し列 … X1 B.m2() C.m1() B.m3() A.m1() B.m2() D.m4() A.m1() B.m2() C.m1() API呼び出し列抽出 X2 共通するAPI呼び出し列1 共通するAPI呼び出し列2 X3 • A.m1() • B.m2() • B.m2() • C.m1() 地図機能を持つAndroidアプリケーション フィルタリング フィルタリング 事前知識 地図2 • A.m1() • B.m2() B.m2() C.m1() 登録 除去 特別研究発表会

  11. ツールの概要(1/2):起動画面 比較対象を選択 特別研究発表会

  12. ツールの概要(2/2):結果表示 検出された機能(差分) 検出された機能(共通) 選択 機能名とAPI呼び出し列 出現位置情報 特別研究発表会

  13. ケーススタディ(1/7):目的 • 作成した事前知識に登録されている機能が,比較対象のアプリケーションに含まれているかを確認する • 試作したツールにより,共通する機能,共通しない機能がわかることを確認する 特別研究発表会

  14. ケーススタディ(2/7):対象 • 地図機能を持つアプリケーション11個を収集 • 6個で事前知識作成 • 156個のAPI呼び出し列を抽出 • うち23個に機能名をつけ登録 • 残りの5個をケーススタディの対象とする 特別研究発表会

  15. ケーススタディ(3/7):手順 • 地図機能を持つアプリケーション5個からAPI呼び出し列を抽出し,事前知識と照合 • 照合結果から5つのアプリケーションが区別できることを確認 • 試作したツールを用いて2つのアプリケーションを比較し,機能の差分が提示されることを確認 特別研究発表会

  16. ケーススタディ(4/7) :結果 • 8割近くの機能が調査対象のアプリケーションに出現 いずれかのアプリケーションに出現した機能:18 特別研究発表会

  17. ケーススタディ(5/7):5つのアプリケーションとの照合ケーススタディ(5/7):5つのアプリケーションとの照合 • アプリケーション間の違いをいくつかの機能で確認 • アプリケーションAには緯度経度を設定する機能が存在 • 警告ダイアログ表示機能はすべてのアプリケーションに存在 … 特別研究発表会

  18. ケーススタディ(6/7):ツールを用いた比較の例ケーススタディ(6/7):ツールを用いた比較の例 • 共通する機能と共通しない機能が区分されている • どちらもメニューのUIを利用 • 比較元2では緯度経度を取得する • 同じ機能でも違うAPI呼び出し列で実現されている場合あるため,複数表示される項目がある アプリケーションB アプリケーションC 特別研究発表会

  19. ケーススタディ(7/7) :考察 • API呼び出し列を比較することで,機能の比較が実現できている • 特定の機能を表していないと考えられるAPI呼び出し列が多い • Androidアプリケーションに共通する記述 • アプリケーション内部での処理 特別研究発表会

  20. まとめと今後の課題 • まとめ • API呼び出し列を利用したアプリケーションの比較方法の提案 • Androidアプリケーション向け比較ツールの試作 • 手法の有効性を確認 • 今後の課題 • 事前知識のフィルタリングの自動化 • ドメインごとに固有の機能と,ドメインによらない機能を分類して提示する手法の検討 特別研究発表会

More Related