開発履歴データのリアルタイム収集・分析システム epm の拡張について ~...

29
1 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 開開開開開開開開開開開開開開開開 開開開開開開 EPM 開開開開開開開 SRGM 開開開開開開開開開開開開開開開開開開開開開開開開開開開 開開開開 開開開 開開開 開開開開 † 開開開開 開開開開開開開開開開 ‡ ( 開 ) 開開開開開開開開開開開開開

Upload: wyoming-meyer

Post on 30-Dec-2015

40 views

Category:

Documents


5 download

DESCRIPTION

開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携 ~. 横森励士 † 市井誠 † 新海平 ‡ 井上克郎 † †  大阪大学 大学院情報科学研究科 ‡ ( 株 ) 日立システムアンドサービス. 研究の背景. 現在のソフトウェア開発環境では,ソフトウェアの生産性に関する問題が顕在化しつつある 開発期間の短縮圧力 大規模化したプロジェクトに対しての人海戦術の限界 ソフトウェアの信頼性が犠牲になっていることが多い 多数のバグを含んだソフトの流通 一度ダウンすると多大な社会的損失. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

1Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

開発履歴データのリアルタイム収集・分析システム EPM の拡張について~ SRGM を用いた予測グラフの実現および既存解析システムとの連携 ~

横森励士† 市井誠† 新海平‡ 井上克郎†

†  大阪大学 大学院情報科学研究科‡ ( 株 ) 日立システムアンドサービス

Page 2: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

2Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の背景 現在のソフトウェア開発環境では,ソフトウェアの

生産性に関する問題が顕在化しつつある開発期間の短縮圧力大規模化したプロジェクトに対しての人海戦術の限

界 ソフトウェアの信頼性が犠牲になっていることが多

い多数のバグを含んだソフトの流通一度ダウンすると多大な社会的損失

Page 3: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

3Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の背景 ソフトウェアの生産性,信頼性を向上させるために

は,常にモニタリングを行い,問題を早期に発見し,早期に治療することが重要まずい状態を放置することは状況をさらに悪化させる

モニタリングを行う際には,ソフトウェア開発に関するデータの収集・計測・分析が必須の課題GQM など,ソフトウェア計測に関する諸技術は多数

提案されているが……手法をよく理解して,実践するには,十分な経験が必要実際のところ,改善に結びつけることはとても難しい

Page 4: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

4Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EASE プロジェクト 我々の研究チームではソフトウェア開発の分野にお

ける実証的手法(エンピリカルアプローチ)の実践を目指し, EASE プロジェクトを推進している定量的なデータ収集,分析,グラフ表示システム

EPM データ収集 データの分析

分析結果に基づくモデルの提案

開発現場へのフィードバック

プロセス改善のサイクルの確立を目指す

Page 5: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

5Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM リアルタイムでのプロジェクト管理を目的とした

開発データの自動収集・分析システム 以下の 3 種類の開発支援システムから収集

構成管理ツール( CVS )メーリングリスト管理ツール( Mailman, Majordom

o, FML )障害管理ツール( GNATS, Bugzilla )

オープンソース開発では昔からよく利用されている実際の開発においても,同種のシステムが利用されて

いることが多い

Page 6: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

6Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM のアーキテクチャ

構成管理履歴

メール履歴

不具合履歴

標準化エンピリカルデータ (XML 形式 )

PostgreSQL (Repository)

CVS, Mailman, GNATS, (WinCVS, ShareSourceTM)<Option> Majordomo, FML, Bugzilla

開発者管理者

開発者管理者

Ruby スクリプト

Java

Java

個別分析,関連分析

既存ツール

translator

importer

Analyzer

Page 7: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

7Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM によるデータ分析 単一システムからのデータを元に分析

ソースコード規模( CVS ) 障害解決時間累積・未解決障害件数 / 平均障害滞留時間( GNA

TS ( Bugzilla) ) ・・・

複数システムからのデータを元に分析 更新 / 参照数やメール投稿数( CVS⇔Mailman など) 障害報告 / メール投稿数( CVS⇔GNATS⇔ Mailman ) 更新と障害件数( CVS⇔GNATS ) ・・・

複数プロジェクト間の比較 分析結果をグラフに同時に出力

入力クエリーのカスタマイズ機能

Page 8: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

8Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM のインタフェース:設定画面

Page 9: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

9Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM 出力例(その1):ソースコードの規模推移とチェックイン

Page 10: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

10Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM 出力例(その2):累積メール投稿数,    チェックイン,障害発生 /障害解決時

Page 11: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

11Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

EPM 出力例(その3):複数プロジェクト間の比較

Page 12: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

12Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

現在の EPM の課題 予測機能の充実化

現在の EPM では情報を取得し集計して表示するだけ 開発者は,自力で類似プロジェクトを探索し表示し,類似プロジェクトの情報を

もとに推測するくらいしかない 開発者が現状を判断できるように,もう少し深く分析した情報を提示した

い 実際に EPM を利用してもらうための動機付けとして

「予測機能の充実」 「類似プロジェクトの検出を支援する機能」が必要

既存の解析システムとの連携 現在の EPM はログ情報から比較的簡単に導出できるメトリクスを提示 一方,我々の研究チームではソースコード ( などの生成物)に対する様々な

分析手法(ツール)を提案している SPARS CC-finder など

EPM 上でも,これらのツールを有効に活用したい EPM と有効に結びつける仕組みを提案することが重要である

Page 13: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

13Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の目的 実利用を考慮した EPM の機能の拡張

予測機能の充実化SRGM を用いた潜在フォールト数予測グラフの作成機能の実現

SRGM プラグイン既存の解析システムとの連携

既存の解析システムとの連携手法を考察CCFinderSPARS-Jユースケースポイント計測支援システム

Page 14: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

14Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の目的 実利用を考慮した EPM の機能の拡張

予測機能の充実化SRGM を用いた潜在フォールト数予測グラフの作成

機能の実現SRGM プラグイン

既存の解析システムとの連携既存の解析システムとの連携手法を考察

CCfinderSPARS-Jユースケースポイント計測支援システム

Page 15: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

15Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SRGM を用いた予測グラフ作成機能の実現

SRGM とはSoftware Reliability Growth Model (ソフトウェア信

頼度成長モデル)その時点までに発見された欠陥数を元に,欠陥数が

どう収束するかを推定するための手法

Page 16: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

16Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SRGM を用いた予測グラフ作成機能の実現

いままで,多くのモデルが提案されているが… 指数型SRGM修正指数型SRGMS字型SRGM テスト労力依存型SRGM など

実際企業などでSRGMが利用される場合には,決め打ちで一種類だけのモデルしか使われない場合が多い 実情とあわなかったり 開発者側が順応し,対策を立ててしまうことも

       いくつかのモデルを簡単に適用でき,比較できるような  仕組みをEPM上で実現したい

Page 17: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

17Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SRGM プラグイン 実現の手順:

1. EPMで収集しているバグ情報追跡システムの履歴情報を用いる 計測期間中の各日のバグ発見数を計算

2. 複数(現在は4つの)のモデルそれぞれでパラメータ推定を行う 指数型SRGM 修正指数型SRGM S字型SRGM 習熟S字型SRGM

3. それぞれのモデルに検定を行う コルモゴロフ・スミルノフ検定法

4. 検定に合致したモデルに対し,その結果をグラフ化する 潜在バグ数(とその予想域),総発見バグ数の推移予想

利点 : データを人手で加工する手間がなく,グラフ化までを自動化できる

複数のSRGMを気軽に利用できる 現場で GNATS などの障害管理ツールを導入するためのきっかけに

Page 18: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

18Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SRGM プラグイン

データベース(フォールト情報

管理システム)

2/15 2/16 2/17 2/18 ...

1 3 2 1 ....

検定

パラメータの推定

指数型 修正指数型 遅延 S字型 習熟 S字型

適合不適合 適合不適合

SRGMプラグイン

Page 19: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

19Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

現状の課題( SRGM プラグイン)

実際の開発データに基づいた評価 現在 EPM のバージョン 0.91 を実際の開発で利用してもらって

いる EPM の次バージョンリリース後に実際の開発データをもとに評価

機能の洗練検定方法の工夫

現在はコルモゴロフースミルノフ適合度検定法だけを利用モデルとの適合度を測定し,グラフをより見やすいものに加工

テスト工数(労力)を考慮した SRGM モデルの導入一般的に,テスト工数を考慮すると予測結果がより正確になるテスト労力関数にもいろいろなモデルが存在

Reyleigh curve, Logistic curve, Log-Logistic curve自動化には,プロジェクト管理システムとの連携が必要

Page 20: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

20Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の目的 実利用を考慮した EPM の機能の拡張

予測機能の充実化SRGM を用いた潜在フォールト数予測グラフの作成

機能の実現SRGM プラグイン

既存の解析システムとの連携既存の解析システムとの連携手法を考察

CCFnderSPARS-Jユースケースポイント計測支援システム

Page 21: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

21Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

既存の解析システムとの連携 現在の EPM では, CVSから基本的なメトリクスを抽

出するだけLOC ,更新(参照)回数…

適用対象を限定しないため CVS に登録されているプロダクトからはもっと情報が抽出できるはずより詳しい解析を行うために既存のツールを利用したい

既存のソースコード解析システムとの連携手法を考察CCFinderSPARS-Jユースケースポイント計測支援システム

Page 22: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

22Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

CCFinder コードクローンの検出,分析システム

コードクローンとはソースコード中の全く同じあるいは類似したコードの断片を指す

ソースコードにコードクローンが大量に存在すると,保守が困難に

CCFinder の特徴 スケーラブル

100万行単位のソースコードに対して実用的に適用できる.複数のプログラミング言語に対応

C/C++, Java, COBOL, Fortran などに対応 コードクローンの抽出だけでなく,コードクローンに関するい

くつかのメトリクスを測定可能コードクローンカバレッジ:ソースコード中の行の中で,コード

クローンの集合に含まれる行の割合Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue, ”CCFinder: A Multi-Linguistic Token-based Code Clone Detection System for Large Scale Source Code,” IEEE Trans. Software Engineering, Vol. 28, No. 7, pp. 654–670,2002.

Page 23: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

23Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

CCFinder の利用に関する考察 CCFinder を用いてコードクローンを検出したり,メトリク

スを用いることで,プロジェクトの現状が把握できないだろうか?

CVS内の各バージョンのソースコードに対して差分⇔本体間や,本体内,差分内でコードクローンを抽出し,

それぞれの場合のコードクローンカバレッジを計算コードクローンが混入された変更の推定コードクローンを多く含んだ修正は警告する

バージョン経過による,本体内のコードクローンカバレッジの推移を計算リファクタリングのタイミングをはかる

差分内,差分と本体間のコードクローンを計算コードクローンが混入された箇所の調査変更し忘れと思われるコードクローンがあればそれを指摘修正パターンをコードクローンから抽出し,変更を分類

Page 24: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

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

SPARS-J ソフトウェアプロダクトの収集・解析・検索システム

ソフトウェア部品を解析し,利用関係などの様々な情報をもとに,検索結果に有益な情報を付加する

単純な検索システムとしてだけでなく,組織内のソースコード管理にも有効に利用できる

SPARS-J の特徴 スケーラブル

10万ファイル単位のソースコードに対して実用的に運用可能高速な検索が可能

Java に対応 Java ソースコード, XML ドキュメント, JSP などを検索可能

順位付け手法キーワードとの適合性部品の被利用度( Component Rank )

横森励士 , 梅森文彰 , 西秀雄 , 山本哲男 , 松下誠 , 楠本真二 , 井上克郎 : ”Java ソフトウェア部品検索システム SPARS-J”, 電子情報通信学会論文誌 D-I, VolJ87-D-I, No.12, pp1060–1068, 2004.

Page 25: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

25Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SPARS-J の利用に関する考察 SPARS-J は EPM と同様な運用形態

サーバにデータベースを構築し,利用者はデータベースにアクセス夜中に走らせておけば,常に最新状態で利用可能

開発言語が Java であれば, EPM と同時に運用すると効果的EPM導入時にソースコード管理環境も容易に構築できる

Component Rank の推移を開発の安定度を測定するために使えないだろうか? 開発の初期は常に新しい部品が追加され,利用関係はどんどん変化していく時間の経過とともに収束していくはず

CVS内の各バージョンに対して, Component Rank を計算しその推移をはかる

正規化順位の平均変動率(とその移動平均)

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

1 28 55 82 109 136 163 190 217 244 271 298 325 352 379

CR変動率(正規化後 )10移動平均( リビジョン)50移動平均( リビジョン)

Page 26: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

26Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

ユースケースポイント測定システム

ソフトウェアの開発において見積もりをすばやく正確に行うことは重要 早い段階で見積もりができれば,計画も立てやすい

要求定義の段階において工数の規模見積もりを行う手法としてユースケース図から規模見積もりを行う手法が提案されているユースケースポイント法

ユースケースポイント法に基づいてユースケースポイント計測の自動化を支援するシステムを開発した アクタやユースケースに対する重み付けを支援する 重み付けをするために必要な情報が不足している場合でも,過去の情報を参考にして重み付けを行うことができる

松川文一 , 楠本真二 , 井上克郎 , 英繁雄 , 前川祐介 : ”ユースケースポイント計測支援ツールの実装とその適用” , 情報処理学会研究報告 (2004-SE-144), Vol. 2004, No.30, pp.91–98, 2004.

Page 27: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

27Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

ユースケースポイント測定システムに関する考察

EPM と連携することで, EPM に設計情報を用いた工数の予測機能を追加できる.ユースケース図を CVS で管理する必要あり変更があった場合も,過去に登録された情報をもと

に自動的に再計算再計算に必要な手間を最低限に必要な情報が不足していても, CVS リポジトリから

取得 プロジェクトの計画の変更に対して,柔軟に対応

できるようになる.

Page 28: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

28Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

既存解析システムとの連携

構成管理履歴

メール履歴

不具合履歴

標準化エンピリカルデータ (XML 形式 )

PostgreSQL (Repository)

CVS, Mailman, GNATS, (WinCVS, ShareSourceTM)<Option> Majordomo, FML, Bugzilla

開発者管理者

開発者管理者

Ruby スクリプト

Java

Java

個別分析,関連分析

既存ツール

translator

importer

Analyzer

解析ツール

不具合履歴解析情報

既存システム

実行

加工・登録

Page 29: 開発履歴データのリアルタイム収集・分析システム EPM の拡張について ~ SRGM を用いた予測グラフの実現および既存解析システムとの連携

29Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

まとめ まとめ

SRGM を用いた潜在フォールト数予測グラフの作成機能を EPM 上で実現した

既存の解析システムとの連携手法を考察したCCFinderSPARS-Jユースケースポイント計測支援システム

今後の課題実際の開発データに基づいた評価実際の利用をもとにした,機能の洗練既存の解析システムとの連携の実現