ソフトウェアを取り巻く環境の変化が メトリクスに及ぼす影響について 大阪大学 神谷年洋 構成 1.メトリクスによる予測の実用化について 2.再利用とメトリクス 3.開発プロセスの変化とメトリクス 4.ソフトウェアの進化・発展とメトリクス プロセスメトリクス収集ツール 再利用を考慮したC&Kメトリクスの適用 1 メトリクスとは • 開発プロセスやプロダクトを計測するモノサシ • 主に開発管理に使われる メトリクス (代 表 例 ) 工数 エラー数 ファンクシ ョンポ イント (IF P U G ) 複 雑 度 メ ト リ ク ス (M c C a b e の サ イ ク ロ マチック数 ) 計測対象 値 (単 位 ) 使用目的 開発プロセス プロダクト 仕様書 工 数 (人 月 ) エ ラ ー 数 (個 ) 機能量 進捗管理 品質管理 コスト予 測 プロダクト 複雑度 品質予測 2 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. • 少数のサンプルでは,予測や検定は統計的 に困難になる →粒度を下げてサンプル数を増やす? 3 メトリクスデータが存在しない • メトリクスデータそのものが社外秘 • 収集は基本的に被験者の報告ベースなので, データ収集そのものにコストがかかる • メトリクスデータがプロセス管理以外の目的 に用いられる→バイアスがかかる 4 対策 教育現場で実験を行う • 実験条件を設定可能 – 被験者の能力の判定基準が存在する – 複数の同一のプロダクトを開発する • 被験者自身にメトリクスデータを収集する動 機が存在する – パーソナルソフトウェアプロセス(PSP) • W. S. Humphrey: A Discipline for Software Engineering, Addison-Wesley(1995). 5 メトリクスデータ収集ツールを作成[1] • 記入を容易にする – ガイド機能,DB機能 • 集計を容易にする • 被験者に対するフィードバック – PSPからの要請 6 2.再利用とメトリクス 大規模な再利用の影響 • 新規開発されるプロダクトの量を見積もること が困難になる – アプリケーションフレームワークの場合,ドメイン の適合度が再利用度に影響する – FPは新規開発と修正を区別するが,部品を修正 して再利用すると? – 再利用されるプロダクトは新規開発の部分より高 品質であることが多い 7 • 再利用部品のドキュメンテーションがどの程 度提供されるのか – – – – – オープンソース? オープンデザイン? オープン仕様書? オープンテストデータ,オープンサンプル? オープンエラー追跡データ? 8 対策 再利用部分と新規開発部分とを区別するメトリ クスを提案[2] • 再利用部分は新規開発部分よりも品質が高 いことを考慮してメトリクスを計測する – →エラー発生予測精度向上 9 部分的なドキュメンテーションからメトリクスを計 測する試み[研究中] • インターフェイスだけ公開する場合 • +設計も公開する場合 • ソースコードを公開する場合 エラー予測精度の違いを分析 10 3.開発プロセスの変化とメトリク ス メトリクスは中間プロダクトを計測することで開 発コストや品質を予測する 要求分析 設計 コーディング テスト 開発コスト予測 エラー発生予測 • スパイラル開発では,中間プロダクトが何度 も生成される 11 対策 • プロダクトメトリクスにも動的な概念を導入す る? • メトリクスを細かい粒度で計測,運用する方法 の検討? 12 4.ソフトウェアの進化・発展とメト リクス 進化・発展により,ソフトウェアが運用に入って からも,修正が続く • 進化・発展の度合い(状態)を計測するメトリク スの必要性? • 中谷多哉子, 玉井哲雄, 友枝敦,酒匂寛, : オブ ジェクト指向によるシステムの進化を表わすメトリ クスの検討, ソフトウェアシンポジウム'96論文集, 1996, pp.52-62. 13 • システムの進化・発展を予測するメトリクス? – 発展のためのコストや – 発展したときの品質を予測 14 まとめ (メトリクスの実用化を視野に入れて) • データの積み上げのための枠組み • 運用手法の確立 – 開発プロセスの影響,プロダクトの影響 – Computer Added Measurement? • 新たな問題領域に対応する 15 プロセスメトリクス収集ツール[1] 主な機能 (1)プロセスメトリクスの収集 – 工数やエラー数といったプロセスメトリクスを半自 動的に収集する →今までの手作業による収集よりも信頼性が向上 – プロダクト,欠陥,フォールトの依存関係を利用す ることでデータの一貫性を保証する (2)文書化支援/フィードバック – 収集したデータを整理して表示したり,HTML文書 にする 17 収集するデータ レビュー テスト レビュー開始 (レビューされるクラス) テスト開始 (テストケース) フォールト発見 (フォールトの内容) 欠陥発見 (欠陥の内容) レビュー終了 テスト終了 フォールト修正 欠陥のフォールト特定 修正開始 (フォールトID) 特定開始 (欠陥ID) 修正終了 (修正内容) 特定終了 (フォールトが存在するクラス) (フォールトの内容) 18 データ入力画面 – テスト・プロダクト・エラーの依存関係に基づいた ガイドを行う 19 データ表示画面 – プロダクトやテストごとにエラーを分類 20 ツールの構成 Efer エンジン DB ・状態遷移を 管理する ・制約条件と 依存関係に 基づいて データを 生成する 作業データ 入力部 実作業データ入力 プロセスの 状態データ ウィンドウ出力 出力部 C++で実装 1万5千行 程度 作業データ, プロセスの 状態データ ログビュー プロダクトビュー HTML出力 テストケースビュー 21 ツールの評価 • 被験者にアンケート – ログビューを見ることで,進捗状況を理解しやす かった – 今までの所用時間が記録されているので,作業 の見通しが立て易かった – 同じようなエラーがあった場合,今まででの記録 があるので修正の手助けになった – 手作業で記録していたが,ツールを用いることで 入力の時間が短縮された 22 再利用を考慮したC&Kメトリクスの 適用[2] ChidamberとKemererの複雑 度メトリクス • ソフトウェアの複雑さを計測する – エラー発生予測 • オブジェクト指向設計仕様書を計測対象とす る – クラスが他のクラスを参照する数が多いほど複雑 である(CBO,RFC) – クラスの親クラスや子クラスが多いほど複雑であ る(DIT, NOC) – クラス内部の複雑度(LCOM, WMC) 24 再利用の影響 • 再利用されたクラスは新規開発のクラスより も高品質である – エラーが少ない – 開発期間中に修正されない – ドキュメンテーションが存在する → 仮説:再利用されたクラスを参照しても複雑 度は増大しない • 新規開発クラスに対する参照と,再利用クラ スに対する参照を区別する 25 メトリクスの修正 • CBO 計測対象のクラスが結合しているクラスの数 • CBON 計測対象のクラスが結合している新規開発クラス数 • CBOR 計測対象のクラスが結合している再利用クラス数 26 実験 • 新人研修におけるC++プログラム開発演習 からデータを収集 • 6チームが独立に拡張酒屋問題を開発する – チームは4から5名の開発者から構成される – データベースを用いて,売り上げ予測等を行う – MFCをフレームワークとして用いる • 19人のデータが分析対象となった 27 75 38 58 14 41 13 40 32 16 58 52 50 16 90 55 67 24 24 15 73 47 46 16 47 14 47 49 13 62 52 59 13 88 55 57 11 47 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 10 14 6 10 6 10 14 6 16 12 16 6 20 12 16 6 10 6 30 13 18 8 14 8 15 18 9 22 17 19 9 34 17 20 10 13 9 31 17 19 9 17 9 17 24 8 24 19 22 8 35 20 24 10 16 5 44 21 39 5 24 4 23 8 8 34 33 28 8 55 35 43 14 8 10 7 2 5 0 2 2 3 7 0 5 8 8 1 4 3 1 1 3 1 修正時間 (分) エラー個数 8 3 3 0 3 0 2 0 0 2 1 1 0 3 3 3 0 0 0 RFCR 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RFCN 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CBOR DITR DITN LCOM RFC CBO 38 16 21 8 17 8 17 18 9 24 18 20 9 37 20 23 10 13 9 CBON 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NOCR 17 10 14 6 10 6 10 14 6 16 12 16 6 20 12 16 6 10 6 NOCN 33 19 22 7 19 8 19 20 8 25 21 24 8 38 22 26 11 17 8 NOC 6 3 4 2 3 2 3 4 9 4 3 4 2 6 3 4 2 3 2 DIT クラス数 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 WMC 開発者 メトリクスデータ 1124 50 315 0 390 114 21 891 0 530 576 1005 60 850 154 94 90 75 25 28 評価 …N は新規開発部分との結合のみを数えるメトリクス …R は再利用部分との結合のみを数えるメトリクス メトリクス エラー個数 との相関 修正時間 と の相関 CBO CBON CBOR RFC RFCN RFCR 0.579 0.340 0.610 0.543 0.653 0.453 **有意水準 1% *有意水準 5% ** ** * ** 0.744 0.470 0.774 0.632 0.772 0.523 ** ** ** ** * 29
© Copyright 2024 ExpyDoc