ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

1 EASE プロジェクトにおける EPM ( Empirical Project Monitor) を用いたプロジェクト管理デモ 奈良先端科学技術大学院大学 産学官連携研究員 松村 知子 2005 年 9 月 30 日 JISA 経営者セミナー.
メタモデル記述を用いた成果物間の依存関係追跡手法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
ソフトウェア・エンジニアリング入門 セッション 4: まとめ.
機能実現期間の測定による プログラマ能力の実験的評価
3-1システム戦略 3-1-3ソリューションビジネス (Point) ・代表的なサービスを通じ、ソリューションの考え方を理解
ビジネスパターンに基づく クラウドシステムのサービスレベル設計
共同ローカリゼーション フレームワーク 井上 謙次.
SS2009 形式手法の適用ワーキング グループの報告
CKメトリクスを用いてリファクタリングの 効果を予測する手法の提案
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
メトリクス計測 プラグインプラットフォームMASUの開発
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
オブジェクト指向プログラムのための 動的結合メトリクスの評価
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
ソードコードの編集に基づいた コードクローンの分類とその分析システム
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
複雑度と機能量に基づくアプリケーションフレームワークの実験的評価
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オブジェクト指向メトリクスを用いた 開発支援法に関する研究
CKメトリクスに基づくリファクタリングの 効果予測手法の提案と実装
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
Javaプログラムの変更を支援する 影響波及解析システム
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
コンポーネントランク法を用いたJavaクラス分類手法の提案
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
UMLモデルを対象とした リファクタリング候補検出の試み
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
開発履歴データのリアルタイム収集・分析システムEPMの拡張について ~ SRGMを用いた予測グラフの実現および既存解析システムとの連携 ~
コードスメルの深刻度がリファクタリングの実施に与える影響の実証的研究
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
ソフトウェアプロダクト集合に対する 派生関係木の構築
Q3 On the value of user preferences in search-based software engineering: a case study in software product lines Abdel Salam Sayyad (West Virginia University,
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
ソフトウェア工学 知能情報学部 新田直也.
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
依存関係の局所性を利用した プログラム依存グラフの 効率的な構築法
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
資料3-2 平成26年度 第3回技術委員会資料 次年度テーマの検討
データ中心システム設計方法論“DATARUN” 
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
JAVAを対象とした 動的複雑度メトリクスの実験的評価
オブジェクト指向開発における フォールト発生早期予測手法の 一提案
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コードクローン解析に基づく デザインパターン適用候補の検出手法
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
株式会社 エーアイネット・テクノロジ 川村廉平
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
プログラム理解のための 付加注釈 DocumentTag の提案
Detecting Software Modularity Violations
コードクローンを対象とした リファクタリングの有効性に関する調査
Presentation transcript:

ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について 大阪大学 神谷年洋

構成 1.メトリクスによる予測の実用化について 2.再利用とメトリクス 3.開発プロセスの変化とメトリクス 4.ソフトウェアの進化・発展とメトリクス プロセスメトリクス収集ツール 再利用を考慮したC&Kメトリクスの適用

メトリクスとは 開発プロセスやプロダクトを計測するモノサシ 主に開発管理に使われる

1.メトリクスによる予測の実用化について メトリクスによる予測や検定には統計データが必要  メトリクスによる予測や検定には統計データが必要 実例:2つのソフトウェア開発組織から,30人以上の技術者,2000以上のクラス R. Chidamber and C. Kemerer: A Metrics Suite for OO Design, IEEE Trans. on Software eng., vol. 20, No. 6, 1994, pp. 476-493. 少数のサンプルでは,予測や検定は統計的に困難になる →粒度を下げてサンプル数を増やす?

メトリクスデータが存在しない メトリクスデータそのものが社外秘 収集は基本的に被験者の報告ベースなので,データ収集そのものにコストがかかる メトリクスデータがプロセス管理以外の目的に用いられる→バイアスがかかる

対策 教育現場で実験を行う 実験条件を設定可能 被験者自身にメトリクスデータを収集する動機が存在する 被験者の能力の判定基準が存在する 複数の同一のプロダクトを開発する 被験者自身にメトリクスデータを収集する動機が存在する パーソナルソフトウェアプロセス(PSP) W. S. Humphrey: A Discipline for Software Engineering, Addison-Wesley(1995).

メトリクスデータ収集ツールを作成[1] 記入を容易にする 集計を容易にする 被験者に対するフィードバック ガイド機能,DB機能 PSPからの要請

2.再利用とメトリクス 大規模な再利用の影響 新規開発されるプロダクトの量を見積もることが困難になる アプリケーションフレームワークの場合,ドメインの適合度が再利用度に影響する FPは新規開発と修正を区別するが,部品を修正して再利用すると? 再利用されるプロダクトは新規開発の部分より高品質であることが多い

再利用部品のドキュメンテーションがどの程度提供されるのか オープンソース? オープンデザイン? オープン仕様書? オープンテストデータ,オープンサンプル? オープンエラー追跡データ?

対策 再利用部分と新規開発部分とを区別するメトリクスを提案[2] 再利用部分は新規開発部分よりも品質が高いことを考慮してメトリクスを計測する →エラー発生予測精度向上

部分的なドキュメンテーションからメトリクスを計測する試み[研究中] インターフェイスだけ公開する場合 +設計も公開する場合 ソースコードを公開する場合 エラー予測精度の違いを分析

3.開発プロセスの変化とメトリクス メトリクスは中間プロダクトを計測することで開発コストや品質を予測する スパイラル開発では,中間プロダクトが何度も生成される

対策 プロダクトメトリクスにも動的な概念を導入する? メトリクスを細かい粒度で計測,運用する方法の検討?

4.ソフトウェアの進化・発展とメトリクス 進化・発展により,ソフトウェアが運用に入ってからも,修正が続く 進化・発展の度合い(状態)を計測するメトリクスの必要性? 中谷多哉子, 玉井哲雄, 友枝敦,酒匂寛, : オブジェクト指向によるシステムの進化を表わすメトリクスの検討, ソフトウェアシンポジウム'96論文集, 1996, pp.52-62.

システムの進化・発展を予測するメトリクス? 発展のためのコストや 発展したときの品質を予測

まとめ (メトリクスの実用化を視野に入れて) データの積み上げのための枠組み 運用手法の確立 新たな問題領域に対応する 開発プロセスの影響,プロダクトの影響 Computer Added Measurement? 新たな問題領域に対応する

プロセスメトリクス収集ツール[1]

主な機能 (1)プロセスメトリクスの収集 (2)文書化支援/フィードバック 工数やエラー数といったプロセスメトリクスを半自動的に収集する →今までの手作業による収集よりも信頼性が向上 プロダクト,欠陥,フォールトの依存関係を利用することでデータの一貫性を保証する (2)文書化支援/フィードバック 収集したデータを整理して表示したり,HTML文書にする

収集するデータ

データ入力画面 テスト・プロダクト・エラーの依存関係に基づいたガイドを行う

データ表示画面 プロダクトやテストごとにエラーを分類

ツールの構成

ツールの評価 被験者にアンケート ログビューを見ることで,進捗状況を理解しやすかった 今までの所用時間が記録されているので,作業の見通しが立て易かった 同じようなエラーがあった場合,今まででの記録があるので修正の手助けになった 手作業で記録していたが,ツールを用いることで入力の時間が短縮された

再利用を考慮したC&Kメトリクスの適用[2]

ChidamberとKemererの複雑度メトリクス ソフトウェアの複雑さを計測する エラー発生予測 オブジェクト指向設計仕様書を計測対象とする クラスが他のクラスを参照する数が多いほど複雑である(CBO,RFC) クラスの親クラスや子クラスが多いほど複雑である(DIT, NOC) クラス内部の複雑度(LCOM, WMC)

再利用の影響 再利用されたクラスは新規開発のクラスよりも高品質である → 仮説:再利用されたクラスを参照しても複雑度は増大しない エラーが少ない 開発期間中に修正されない ドキュメンテーションが存在する → 仮説:再利用されたクラスを参照しても複雑度は増大しない 新規開発クラスに対する参照と,再利用クラスに対する参照を区別する

メトリクスの修正 CBO CBON CBOR 計測対象のクラスが結合しているクラスの数 計測対象のクラスが結合している新規開発クラス数 計測対象のクラスが結合している再利用クラス数

実験 新人研修におけるC++プログラム開発演習からデータを収集 6チームが独立に拡張酒屋問題を開発する 19人のデータが分析対象となった チームは4から5名の開発者から構成される データベースを用いて,売り上げ予測等を行う MFCをフレームワークとして用いる 19人のデータが分析対象となった

メトリクスデータ

評価