定量的プロジェクトマネジメント事例研究会活動紹介 ~ ソフトウェア開発での品質予測の事例紹介その 2~ 2014 年 12 月 6 日 代表 山田知満,PMP 副代表 杉原秀保,PMP 副代表 小暮 豊,PMP
目次 1 1. 研究会の構成とメンバーの紹介 2. 活動経緯 3. 定量的 PM 事例研究 WG の活動紹介 4.CCPM 研究 WG の活動紹介 5. ソフトウェア開発での品質開発での品質予測の事例紹介その 2 PMI Japan Chapter, 2013. Copyright and all rights reserved.
1. 研究会の構成とメンバーの紹介 2 定量的プロジェクト マネジメント定量的プロジェクトマネジメント事例研究会 (PM) 定量的 PM 事例研究 WG CCPM 研究 WG 中江功 神野和司 杉原秀保 山田知満 小暮豊 村田仁士 山田知満 隅田則博 野田昭司 柳井亨夫 PMI Japan Chapter, 2013. Copyright and all rights reserved.
2. 活動経緯 3 年月 活動内容 2009 年 1 月 EVM 研究会と定量的 PM 事例研究会の合同 WG として発足 10 月 PMI 日本フォーラムで成果発表 ソフトウェア開発に EVM と品質モデルを適用した事例の紹介 2010 年 10 月 PMI 日本フォーラムで成果発表 ソフトウェア開発にアーンド スケジュールとモンテカルロ シミュレーションを適用した事例紹介 2011 年 7 月 PMI 日本フォーラムで成果発表 2012 年 12 月 CCPM 研究 WG 発足 実例から学ぶ EVM の実践ガイド第 2 版のご紹介 ( 注 ) 2013 年 8 月 PMI 日本フォーラムで成果発表 CCPM 研究 WG より 2.5 件発表 2014 年 7 月 PMI 日本フォーラムで成果発表 ソフトウェア開発での品質予測の事例紹介 ( 注 実践ガイドは 会員向け HP で公開 ) PMI Japan Chapter, 2013. Copyright and all rights reserved.
定量的 PM 事例研究 WG の活動紹介 2014 年 12 月 6 日 定量的 PM 事例研究 WG
2014 年度研究会計画 ( 定量的プロジェクトマネジメント事例研究 WG: 山田 ) 5 テーマテーマ 定量的プロジェクトマネジメントに関する事例研究 目標目標 プロジェクトマネジメントの課題とその対応策をノウハウにまとめる 研究成果を公表する 活動内容活動内容 1 定量的データが計測されているPJ 事例の収集 2データをプロジェクトマネジメントに利用する上で発生する様々な問題点を議論し課題を明確にする 3 参加メンバーの経験を元に課題に対する対策をノウハウとしてまとめ 研究会の内外で共有を図る 2014 年度目標 : 計画通りに定例会を開催し 研究成果を公開をする 7/13 PMI 日本フォーラム 2014 で成果発表 活動計画メンバー募集 ( 通年 ) 担当 14/01 02 03 04 05 06 07 08 09 10 11 12 山田 目標 計画策定 定例会開催 PJ 事例の調査 収集 全員 山田 全員 2/19 2/19 3/19 4/23 5/23 6/20 7/5 8/22 9/19 10/6 11/17 12/6 ES 翻訳本の調査 研究 全員 PMI 日本フォーラム成果発表 山田 7/13 5 12/6
研究テーマ (2014 年 12 月時点 ) 6 1. アーンド スケジュール (ES) についての事例研究 2. ソフトウェア開発での重回帰分析による品質予測成果物 : 事例から学ぶ品質予測の実践ガイド事例から学ぶ品質予測の実践ガイド 作成中 (2015 年 3 月完成目標 ) PMI 日本フォーラム 2014 で成果発表 2014 年 7 月 13 日 講演タイトル : ソフトウェア開発での品質予測の事例紹介 3. アーンド バリュー マネジメント (EVM) と品質に関する事例 4. 専門人材育成に向けた人材価値の可視化取組み 5. 事例から学ぶ EVM の実践ガイド の改定 6. 過去の教訓の蓄積の方法 ( ケーススタディによる研修事例 ) 7. 新規テーマ募集 6
アーンド スケジュール (ES) の事例研究 7 (1)WG メンバー全員に書籍 アーンドスケジュール を配布 (2) 疑問点 質問等をまとめる (3)EVM 研究会の定例会に参加し 翻訳者の水野浩太朗氏から毎月 解説を受ける ( 継続中 ) 7
CCPM 研究 WG の活動紹介 2014 年 12 月 6 日 CCPM 研究 WG
2014 年度研究会計画 ( クリティカル チェーン プロジェクトマネジメント研究 WG: 小暮 ) 9 テーマテーマ CCPM 利用の加速 目標目標 CCPM 理解者を一人 5 人作る 活動内容活動内容 1CCPMの普及 2CCPM 普及に当たって必要な資料の作成 経営管理者向け ( マフィアオファーシート作成 ) 一般 PM 向け ( デモ環境 ) 2014 年度目標 : 計画通りに定例会を開催し 年 2 回の成果発表をする 活動計画メンバー募集 ( 通年 ) 担当 14/01 02 03 04 05 06 07 08 09 10 11 12 山田 目標 計画策定 定例会開催 導入課題共有 全員 小暮 各自 2/19 2/19 3/17 4/21 5/19 6/16 7/22 8/25 9/16 10/20 11/17 12/15 研究成果の発表 全員 応募 9 発表
ソフトウェア開発での品質予測の事例紹介 ~ その 2~ 2014 年 12 月 6 日 定量的プロジェクトマネジメント事例研究会 代表 山田知満,PMP PMI Japan Chapter, 2014. Copyright and all rights reserved. 1
概要 ソフトウェア開発で過去の品質実績 ( 設計書のレビュー結果 コードレビューや試験の結果 出荷後の不具合 ) を蓄積すると その開発チーム固有の欠陥予測モデルを構築することができる 回帰分析と判別分析の手法を組み合わせた欠陥予測の手法とその適用事例を紹介する PMI Japan Chapter, 2014. Copyright and all rights reserved. 2
目 次 1. 品質予測の目的 2. 品質予測モデルの探索 3. 判別分析の手法 4. 新しい欠陥予測手法 5. 予測モデルの適用事例 6. 今後の課題 7. 付録 4 6 10 13 18 24 25 PMI Japan Chapter, 2014. Copyright and all rights reserved. 3
1. 品質予測の目的 開発フェーズ毎に混入する誤り ( 欠陥 ) を定量的に予測し その数を低減することによって出荷後のことによって出荷後の不具合を不具合を一定レベル以下にする 欠陥数 設計での欠陥混入を一定レベル以下に 製作での欠陥混入の欠陥混入を一定レベル以下に 出荷後の不具合を一定レベル以下に 設計 製作 試験 PMI Japan Chapter, 2014. Copyright and all rights reserved. 4
開発チーム毎の欠陥混入と除去グラフ ( 実績 ) 誤り件数欠陥数 ( /KL 件 / 実 KL) 35 欠陥混入と除去誤りの混入と除去 ( 実績 ) ) 30 25 20 Project A Project B Project C Project D Project E Project F 15 10 5 0 要件定義 外部設計 外部設計 内部設計 内部設計 ソ製作 製作 単体試験 ソ試験 出荷後 単体試験結合試験 PMI Japan Chapter, 2014. Copyright and all rights reserved. 5
2. 品質予測モデルの探索 開発チーム毎に欠陥混入と除去のモデルが成り立つと仮定設計と製作時に混入した欠陥を品質データから予測 欠陥数 欠陥混入と除去のモデル Z Y 混入欠陥予測残存欠陥予測 X z x y U V W 外部設計 内部設計 製作 単体試験 結合試験 PMI Japan Chapter, 2014. Copyright and all rights reserved. 6
混入欠陥の予測式 1 混入欠陥数を目的変数とし 相関がある開発規模やプロセス指標を説明変数と仮定混入欠陥数 =A 説明変数 1+ B 説明変数 2 + C ( 線形の予測式の場合 ) 2 目的変数の変動を説明できる説明変数の組合せと回帰係数と定数項を決める 3 予測式として利用可能か検証する 4 利用可能な予測式の組合せが見つかるまで 1 から 3 を繰り返す 予測式の例 予測 1 設計時の混入欠陥数 =A 誤り指摘数 + D 予測 2 設計時の混入欠陥数 =B 設計頁数 + C レビュー時間 + E (A B C は回帰係数 D E は定数 ) ( 注 ) 説明変数の組合せでお互いに相関が強いものはモデル式が不安定になるため除外する PMI Japan Chapter, 2014. Copyright and all rights reserved. 7
200 外れ値 設計混入欠陥数 設計混入欠陥 150 100 50 0-20 0 20 40 60 80 100 120 140 誤り指摘数 誤り指摘数 外れ値を除外するとモデル式としての寄与率 (R2 乗 ) は大きくなり誤差 (RMSE RMSE) は小さくなる 設計混入欠陥数 =A 誤り指摘数 +D 設計混入欠陥数実測値設計混入欠陥数実測値 PMI Japan Chapter, 2014. Copyright and all rights reserved. 8
開発チーム毎に欠陥混入の割合 ( 直線の傾き ) は 異なる 開発チーム内でも品質が良いグループと品質が悪いグループでは 傾きが異なる 欠陥数の予測式 Y= A x X + C X: レビューで検出した欠陥数 A: 回帰係数 C: 定数 欠陥数の予測 品質が悪いデータのグループ Yb 品質が良いデータのグループ Ya レビューで検出 X した欠陥数 PMI Japan Chapter, 2014. Copyright and all rights reserved. 9
3. 判別分析の手法 品質が良いグループと品質が悪いグループでは 統計的な分布にわずかな差異がある場合が多い この差異を利用して開発中のソフトウェア品質の良否とその確率を求める 設計レビューの誤り指摘の比較 コードレビューの誤り指摘の比較 品質が良い 品質が悪い 品質が良い 品質が悪い PMI Japan Chapter, 2014. Copyright and all rights reserved. 10
( 判別分析の手順 ) (1) 収集した品質データを品質が良いグループと品質が悪いグループに分ける 例出荷後不具合 n 件 /KL 未満か n 件 /KL 以上 ) (2)2 つのグループについて統計情報を計算する 例変数の平均値 分散 共分散 分散 共分散の逆行列 (3) 判別したいターゲット X からの統計上の距離 ( マハラノビスの距離 ) を計算する (4) ターゲット X は 統計上の距離が近い方に属していると判別する (5) 統計関数を利用して各々のグループに属する確率を求める PMI Japan Chapter, 2014. Copyright and all rights reserved. 11
変数 3 A: 品質が良いグループ B: 品質が悪いグループ X: 開発中の判別判別したいしたいターゲット B X A 変数 2 Ra: 品質が良いグループグループに属する確率 Rb: 品質が悪いグループグループに属する確率 Ra + Rb = 1 変数 1 誤判別率 : 間違って判別される割合 判別分析の予測精度を表す判別分析の予測精度を表す PMI Japan Chapter, 2014. Copyright and all rights reserved. 12
4. 新しい欠陥予測手法 回帰分析と判別分析の手法を組み合わせることで高い精度で欠陥を予測する ( 手順 ) (1) 品質が良いグループに属する場合の欠陥を予測する (Ya) (2) 品質が悪いグループに属する場合の欠陥を予測する (Yb) (3) 判別分析により 2 つのグループに属する確率を求める Ra: 品質が良いグループに属する確率 Rb: 品質が悪いグループに属する確率 (4) ターゲットの欠陥予測は 2 つの確率の期待値として求める Y= Ya * Ra + Yb * Rb PMI Japan Chapter, 2014. Copyright and all rights reserved. 13
予測 品質の悪いグループによる予測式 全データによる予測式 Yb Y 品質の良いグループによる予測式 Ya 変数 X Ya: 品質が良いグループに属すると仮定した場合の予測値 Yb: 品質が悪いグループに属すると仮定した場合の予測値 Y :Ya と Yb 及びその確率から求める予測値 PMI Japan Chapter, 2014. Copyright and all rights reserved. 14
回帰分析と判別分析を組み合わせて欠陥予測をする プログラム レビュー欠陥検出数 品質が良い場合の予測 品質が悪い場合の予測 混入欠陥予測 残存欠陥予測 品質が良い確率 判別結果 機能 1 24 25 35 29.0 5.0 0.6 機能 2 33 30 45 40.5 7.5 0.3 機能 3 19 18 28 20.0 1.0 0.8 判別分析の確率を利用して欠陥予測 ( 注意 ) 過去データの分布状況 ( 良いグループと悪いグループの重なり具合 ) や変数の組合せにより誤判別率は変化する 誤判別率誤判別率は 適切な変数の組合せて極力小さくする PMI Japan Chapter, 2014. Copyright and all rights reserved. 15
設計フェーズでの出力例 品質が良いグループ 品質が悪いグループ 設計フェーズの残存欠陥の予測値次フェーズの混入欠陥の予測値 判別分析の判定とその確率 PMI Japan Chapter, 2014. Copyright and all rights reserved. 16
外部設計欠陥実績 内部設計欠陥実績 製作欠陥実績 外部設計欠陥予測欠陥混入と除去 ( 予測と実績 ) 内部設計欠陥予測 製作欠陥予測 残存合計の欠陥実績 外部設計内部設計 製作 単体結合 残存合計の欠陥予測 PMI Japan Chapter, 2014. Copyright and all rights reserved. 17
5. 予測モデルの適用事例 ( 事例 1) 開発チーム X 過去 2 年分の品質実績から欠陥予測を実施 ( 下図 ) 検証のため品質悪化の時期と品質改善の時期を比較 ( 検証 ) 欠陥混入と除去のグラフ ( 検証 ) 残存欠陥のグラフ PMI Japan Chapter, 2014. Copyright and all rights reserved. 18
品質悪化の時期は 残存欠陥が多い 品質改善の時期は 残存欠陥が少ない 欠陥予測は 実績と良く一致している 品質が悪い時期の予測 品質悪化時と品質改善時の実績比較 品質が良い時期の予測 PMI Japan Chapter, 2014. Copyright and all rights reserved. 19
( 事例 2) 開発チーム Y 過去 2 年分の品質実績から欠陥予測を実施 ( 下図 ) 設計レビューでの欠陥検出が少ないがコードレビューで多く検出 開発チーム Y は 途中で 2 つの開発チーム Y1 と Y2 に分かれた 開発チーム Y1 と Y2 は 継続して開発中 ( 検証 ) 欠陥混入と除去のグラフ ( 検証 ) 残存欠陥のグラフ PMI Japan Chapter, 2014. Copyright and all rights reserved. 20
開発チーム Y1 の予測と実績 開発チーム Y2 の予測と実績 PMI Japan Chapter, 2014. Copyright and all rights reserved. 21
( 事例 3) 開発チーム Z の予測と実績 過去実績なし 類似 APP 開発 (Y) の予測式を適用 リリース毎の予測と実績は リリース時期により差異あり ( 検証 ) 開発チーム Z( 予測 ) と開発チーム Y( 実績 ) との比較 PMI Japan Chapter, 2014. Copyright and all rights reserved. 22
開発チーム Z 全体の予測と実績 最新のリリース 初期のリリース 途中のリリース PMI Japan Chapter, 2014. Copyright and all rights reserved. 23
6. 今後の課題 事例から分かること 欠陥の予測と実績は 比較的良く一致している 開発チーム毎の欠陥混入と除去の違いがグラフ化により見える どのフェーズで残存欠陥を多く残しているかを指摘できる 今後検出される出荷後不具合の件数を予測できる 課題 欠陥予測ツールの開発現場での活用と定着 判別分析手法の誤判別率の改善 欠陥予測のガイドライン作成と公開 PMI Japan Chapter, 2014. Copyright and all rights reserved. 24
7. 付録 7.1 判別分析の計算方法 7.2 欠陥予測手法 7.3 研究会の紹介 PMI Japan Chapter, 2014. Copyright and all rights reserved. 25
7.1 判別分析の計算方法 開発中のプロジェクトの変数を X とする 品質の良いグループと品質の悪いグループで次の計算をしてそれぞれのグループの平均からの統計的な距離を求める 品質の良いグループとの距離 D 2 a : 変数 X と品質の良いグループの平均値と分散で計算品質の悪いグループとの距離 D 2 b : 変数 X と品質の悪いグループの平均値と分散で計算 変数 X は 統計的な距離が近い方のグループに属していると判別する D 2 a < D 2 b なら開発中のプロジェクトの変数 X は 品質が良いグループに属する D 2 a > D 2 b なら開発中のプロジェクトの変数 X は 品質が悪いグループに属する PMI Japan Chapter, 2014. Copyright and all rights reserved. 26
2 変数 (X Y) と 3 変数 (X Y Z) の場合のマハラノビスの距離 D 2 の計算方法 PMI Japan Chapter, 2014. Copyright and all rights reserved. 27
マハラノビスの距離は 一般にカイ 2 乗分布に従うことが知られている 判別の重み ( 確率 ) をカイ 2 乗分布の右側確率 F(D 2,k) を使って次のように定義する 品質が良いと判別した場合の重み ( 確率 )=F(D 2 a,k)/(f(d 2 a,k) + (F(D 2 b,k) ) 品質が悪いと判別した場合の重み ( 確率 )=F(D 2 b,k)/(f(d 2 a,k) + (F(D 2 b,k) ) Excel データ分析の関数で表すと次のようになる F(D 2,k) =CHISQ.DIST(D 2,k) k: 自由度 ( 変数の個数 ) PMI Japan Chapter, 2014. Copyright and all rights reserved. 28
7.2 欠陥予測手法 特願 2014-169285 判別分析と回帰分析を組み合わせて利用する新しい欠陥予測の手法を説明する (1) 過去の品質データ ( 設計頁数 レビュー時間 誤り指摘数 出荷後不具合数 開発規模等 ) を品質の良いグループと品質の悪いグループに分ける 2 つのグループは 数が異なっていても良いが 同程度に分ける 2 つに分ける方法の例 出荷後不具合があるかないか 出荷後不具合が n 件 /KL 以上か未満か (2) 品質の良いグループと悪いグループでそれぞれ回帰分析を行い 混入欠陥数を予測する予測式とそのパラメータを決める 予測式の例 混入欠陥数 =A* 誤り指摘数 +B 混入欠陥数 =C* 設計頁数 +D* レビュー時間 +E (3) 品質の良いグループと悪いグループの平均値 分散 共分散行列とその逆行列を求める ( 判別分析の準備 ) PMI Japan Chapter, 2014. Copyright and all rights reserved. 29
(4) 設計完了時点の品質データ ( 設計頁数 レビュー時間 誤り指摘数 ) に対して判別分析を行い 品質が良いグループか品質が悪いグループか どちらに属しているかを判別する またその確率 (R a: 品質が良い確率 Rb: 品質が悪い確率 Ra + Rb=1) を求める (5) 品質が良いグループの回帰分析で求めた混入欠陥の予測式から混入欠陥の数 Ya を求める また品質が悪いグループの回帰分析で求めた混入欠陥の予測式から混入欠陥の数 Yb を求める (6) 混入欠陥 Y の期待値は 次式で求める 混入欠陥 Y = Ya * Ra + Yb * Rb (7) 残存欠陥 Z は 次式で求める 残存欠陥 y= Y - レビューで検出した誤り指摘数 PMI Japan Chapter, 2014. Copyright and all rights reserved. 30
外部設計からソ製作までの各フェーズで同じ手法により混入欠陥と残存欠陥を予測することができる ( 下図の X,Y,Z と x,y,z) 試験開始時点の残存欠陥は x,y,z の合計値である ただし 単純に予測値を合計すると誤差が大きくなる このため試験開始前の残存欠陥合計 ( 下図の U) は 外部設計からソ製作までに計測したデータを用いてモデル式を作成し 判別分析と組み合わせて期待値を求める 試験で検出した誤りを除いた残りが出荷後不具合 W( 予測値 ) である 欠陥数 Z Y X z y U V x 外部設計 内部設計 ソ製作 試験 W 不具合 混入欠陥予測 残存欠陥予測 PMI Japan Chapter, 2014. Copyright and all rights reserved. 31
7.3 研究会の紹介 PMI 日本支部関西ブランチ定量的プロジェクトマネジメント事例研究会 2009 年に EVM 研究会との合同 WG として発足 定量的なプロジェクトマネジメントの事例を集めて議論し 開発現場ですぐに役立つ研究成果をまとめて公開することを目標に活動している 2012 年に CCPM 研究 WG 発足 毎月 定例会やインターネット会議 メーリングリスト等により意見交換し活動している この分野に興味 関心のある方の参加をいつでも歓迎する 活動紹介とメンバー募集 PMI 日本支部の部会活動 関西ブランチ 定量的プロジェクトマネジメント事例研究会 https://www.pmi-japan.org/session/cat379/quantitative.php PMI Japan Chapter, 2014. Copyright and all rights reserved. 32