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