• 検索結果がありません。

高速なソースコード類似度判定手法

8bit 8bit8bit

2. 高速なソースコード類似度判定手法

メトリクス比較を用いた類似判定手法を提案した

上記手法をツール

Luigi

に実装した

 Luigi

の適用実験により、以下を示した

 既存の文字列比較を用いた類似度測定ツール SMMT

と比べて

150 倍の速 度をもつことを示した

36

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

今後の研究方針

 アクセス修飾子解析手法

 AE が発生した原因をインタビューなどで調査する

 AE の発生を防ぐ開発環境を提供する

 外部からの利用を想定した AE を自動判別する

 テストケースも合わせて ModiChecker で解析する

 品質(バグ)と AE の関連性を分析する

 類似判定手法

 現在、類似判定エンジンのみなので、単独のツール として利用しやすいようにする

 各メトリクスの閾値の設定を簡単にできるようにす

 る Java 以外の言語への対応

37

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

発表おわり

ご清聴ありがとうございました.

38

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

以下、補足資料

39

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

業績一覧

主要論文

[1-1]

小堀 一雄

,

石居 達也

,

松下 誠

,

井上 克郎

: “Java

プログラムのアクセス修飾子過剰性分析ツール

ModiChecker

の機能拡張とその応用例”

. SEC journal, Vol.33, pp.151-158, 2013.

(学術論文)

[1-2] D. Quoc, K. Kobori, N. Yoshida, Y. Higo and K. Inoue,: ModiChecker: Accessibility Excessiveness   Analysis Tool for Java Program,

コンピュータソフトウェア

, Vol.29, No.3, pp.212-218, 2012.

(学術論文)

[1-3]

小堀 一雄

,

山本 哲男

,

松下 誠

,

井上 克郎

: “

コードの静的特性を利用した

Java

ソフトウェア部品類 似判定手法” ,電子情報通信学会論文誌

D

Vol.J90-D(4) , pp.1158-1160, 2007.

(学術論文)

[1-4] Kazuo Kobori, Tetsuo Yamamoto, Makoto Matsushita, Katsuro Inoue: “Classification of Java Programs in SPARS-J”, International Workshop on Community-Driven Evolution of Knowledge Artifact, Session 4-3, Irvine, CA, 2003.

(国際会議録)

関連論文

[2-1]

石居 達也

,

小堀 一雄

,

松下 誠

,

井上 克郎

: “

アクセス修飾子過剰性の変遷に着目した

Java

プログラ ム部品の分析”

,

情報処理学会研究報告 

Vol.2013-SE-180, No.1, pp.1-8, 2013. (

国内会議録

)

[2-2] Dotri Quoc

Kazuo Kobori

Norihiro Yoshida

Yoshiki Higo

Katsuro Inoue: “Modi Checker :

Accessibility Excessiveness Analysis Tool for Java Program”

日本ソフトウェア科学会大会講演

, Vol28, 6C-2, pp.1-7

2011. (

国内会議録

)

[2-3]

小堀 一雄,山本 哲男,松下 誠,井上 克郎

: “

メソッド間の依存関係を利用した再利用支援システムの

実装”

,

電子情報通信学会技術研究報告

, SS2004-58, Vol.104, No.722, pp.13-18, 2005.

(国内会議録)

[2-4]

小堀 一雄,山本 哲男,松下 誠,井上 克郎

: “

類似度メトリクスを用いた

Java

ソースコード間類似度

計測ツールの試作”

,

電子情報通信学会技術研究報告

, SS2003-2, Vol.103, No.102, pp.7-12, 2003. (

国内会議

)

40

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 41

はじめに

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

ソフトウェア保守とは

 ソフトウェア保守とは

 納入後,ソフトウェアに対して加えられる,欠陥の修正,性能など の改善,変更された環境に適合させるための修正. [IEEE Std 1219]

 「修正」と「ソフトウェア保守」の分類 [JISX0161:2008]

42

訂正 改良

是正保守 予防保守 適応保守 完全化保守

緊急保守

分類名 定義

是正保守 ソフトウェア製品の引渡し後に発見された問題 を訂正するために行う受身の修正

緊急保守 是正保守の内,実施までシステム運用を確保す るための,計画外で一時的な修正

予防保守

引渡し後のソフトウェア製品の潜在的な障害が

運用障害になる前に発見し,是正を行うための

修正

適応保守 引渡し後,変化した又は変化している環境にお いて,ソフトウェア製品を使用できるように保

ち続けるために実施するソフトウェア製品の修

完全化

保守 引渡し後のソフトウェア製品の潜在的な障害が 故障として現れる前に,検出し訂正するための 修正

修正の分類 ソフトウェア保守の 分類

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 43

ソースコード解析

 ソースコード解析の分類

 ソースコード静的解析

ソースコードを実際に動作することなく解析を行うことで,性質や振 る舞い情報を抽出する技術

ソースコードの中身を扱うため,網羅性の高い解析をすることが可能

 ソースコード動的解析

ソースコードを動作環境上で実際に動作させ,その動作結果や動作中 のログなどを解析することで性質や振る舞い情報を抽出する技術

マルチスレッド処理など,ソースコード静的解析では発見が難しい  振る舞いを解析することが可能

網羅的な振る舞いを調べるには多くのテストケースが必要となる.

 動作環境やテストケースの準備が不要であるため、 

現場への適用が容易な「ソースコード静的解析」に 

注目する。

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 44

研究対象とする課題① 

         「アクセス修飾子過剰性 の解析」

 解決したい課題(その1)

「過剰に広いアクセス修飾子をもつフィールド,メ ソッドに関する理解支援」

 課題の具体例

想定シナリオ:設計時に意図しなかった不正なメソッド呼び出し

対策の考察:

対策1:ドキュメントにプログラム内部構造を詳細に書く

       →作成コスト、メンテナンスコストが大きすぎる        →膨大な資料を説明・理解するコストが大きすぎる 対策2:不正な呼び出しができないようにリファクタリングする

       →不正な呼び出しの可能性がある箇所の特定が難しい

       →設計時に想定した範囲より過剰に広い範囲からアクセスされる         フィールド・メソッドの解析・修正を支援したい

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

適用実験

45

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University

ModiChecker 適用実験の概要

 実験の目的

 Validation of our approach

 Quantitative analysis of AE Id in some software systems

 Reasons for excessive/unused fields/methods

(found by interviewing developers)

関連したドキュメント