はじめに IPA/SEC では ソフトウェア品質説明力を強化すべく様々な観点からの検討を実施してきました その一環として ソフトウェア品質を説明するための手法等について具体的な実施方法 そのための作業量 実施にあたっての課題等を整理し 実際にソフトウェア品質を説明する際の参考とできるようにするために

Similar documents
日経ビジネス Center 2

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

Microsoft Word - ESxR_Trialreport_2007.doc

2 はじめに IPA/SEC では ソフトウェア開発における定量的管理の普及促進の一環として 国内の多様なソフトウェア開発のプロジェクトデータを整理 分析した ソフトウェア開発データ白書 を 2004 年より定期的に発行しています その最新版である ソフトウェア開発データ白書 を

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

目次 ペトリネットの概要 適用事例

<4D F736F F D F193B994AD955C D9E82DD835C EC091D492B28DB8816A2E646F63>

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

トレーニングのプレゼンテーション

セミナータイトル    ~サブタイトル~

目次 取組み概要 取組みの背景 取組みの成果物 適用事例の特徴 適用分析の特徴 適用事例の分析結果から見えたこと JISAによる調査結果 どうやって 実践のヒント をみつけるか 書籍発行について紹介 今後に向けて 2

プロジェクトマネジメント知識体系ガイド (PMBOK ガイド ) 第 6 版 訂正表 - 第 3 刷り 注 : 次の正誤表は PMBOK ガイド第 6 版 の第 1 刷りと第 2 刷りに関するものです 本 ( または PDF) の印刷部数を確認するには 著作権ページ ( 通知ページおよび目次の前 )

どのような便益があり得るか? より重要な ( ハイリスクの ) プロセス及びそれらのアウトプットに焦点が当たる 相互に依存するプロセスについての理解 定義及び統合が改善される プロセス及びマネジメントシステム全体の計画策定 実施 確認及び改善の体系的なマネジメント 資源の有効利用及び説明責任の強化

トレーニングのプレゼンテーション

変更要求管理テンプレート仕様書

PARTⅢ 検証事例 2. トレーサビリティ管理の自動化に踏み切った理由や経緯 (1) 国際スタンダード認証に関する課題 ISO DO-178B/C IEC などの国際スタンダードでは 開発工程全般にわたって要件が満たされていること ( システムの正しい要件が 正しい方法で

PowerPoint プレゼンテーション

Microsoft PowerPoint - 配布用資料.ppt

目次 1. 一般 目的 適用範囲 参照文書 用語及び定義 内部監査 一般 内部監査における観点 内部監査の機会 監査室

NEXCESS基礎コース01 組込みソフトウェア開発技術の基礎 ソフトウェア開発プロセス編

要求仕様管理テンプレート仕様書

目次 1. はじめに 2. 利用目的別メトリクス一覧表の仕組み 3. 検索機能の使い方 4. 利用シナリオ ( 事例 ) 5. おわりに Center 2

CodeRecorderでカバレッジ

IT 産業を取り巻く環境の変化 ネットワークの普及 競争の激化ビジネスモデルの革新トラブルの多発 期待 ニーズ システムへの要求が増大 安全 安心への要請が増大 低コスト 短納期開発 多機能化 高性能化 信頼できるマネジメント トラブル未然抑止 リスクの増大 理想 不適切な見積 生産性の見誤り 人海

先進的な設計 検証技術の適用事例報告書 2015 年度版 2015 年 11 月

プロジェクトを成功させる見積りモデルの構築と維持・改善 ~CoBRA法による見積りモデル構築とその活用方法について~

過去問セミナーTM

変更の影響範囲を特定するための 「標準調査プロセス」の提案 2014年ソフトウェア品質管理研究会(30SQiP-A)

SEC セミナー (2012 年 12 月 21 日 ) 定量的品質管理 実践的取組み 定量的品質管理 手法の企業での取り組み事例 1 品質 生産性目標の設定方法 2 現場で定着させるテクニック ~ 品質管理を効果的に実践するには ~ 三菱電機インフォメーションシステムズ株式会社業務プロセス改善推進

効率の良いテストシナリオ? テストの進め方 テストプロセス テストの設計 より少ないテストケースで より多くのバグを見つける Mercury Interactive Japan KK all rights reserved. 2

はじめに IPA/SEC では ソフトウェア開発における定量的管理の普及促進の一環として 国内の多様なソフトウェア開発のプロジェクトデータを整理 分析した ソフトウェア開発データ白書 を 2004 年より定期的に発行しています その最新版である ソフトウェア開発データ白書 を 2

PowerPoint プレゼンテーション

日本版WISC-IVテクニカルレポート #6

品質 生産性目標の測定量 品質 生産性の測定量は何があるの? 点検のタイミンク 種類 要件定義 設計 製作 試験 全体 見積り 概算 正式 生産性 規模に対する工数実績 (Hr/KL) 規模に対する工期実績 ( 日 /KL) 規模に対する工数実績 (Hr/KL) 規模に対する工期実績 ( 日 /KL

項目記載事項必須 1.4 非機能性 更新業務仕様書の 3-4 非機能要件 を踏まえ 提案するシステムに関して 基本的な考え方や方針 アピールポイント等を簡潔かつ明瞭に記述すること 3-4 非機能要件 の (1) から (4) に区分し すべての項目について記述すること 1.5 他システム連携 更新業

<4D F736F F D F815B B E96914F92B28DB8955B>

ソフトウェア開発データが語るメッセージ 2017 ~ 生産性 信頼性の経年推移の分析から ~ 2018 年 3 月 6 日 独立行政法人情報処理推進機構 (IPA) 技術本部ソフトウェア高信頼化センター (SEC)

障害管理テンプレート仕様書

本日の内容 1. ソフトウェア開発データ白書について 2. ソフトウェア開発ライフサイクルから見た活用事例 3. 実践的活用をサポートするツール Center 1

Information-technology Promotion Agency, Japan (ET-WEST 2013)2013 年 6 月 13 日 ~14 日 組込みシステム開発技術リファレンス ESxR シリーズ概要紹介 IPA 独立行政法人情報処理推進機構 SEC ソフトウェア高信頼化セン

ISO 9001:2015 改定セミナー (JIS Q 9001:2015 準拠 ) 第 4.2 版 株式会社 TBC ソリューションズ プログラム 年版改定の概要 年版の6 大重点ポイントと対策 年版と2008 年版の相違 年版への移行の実務

untitle

大規模災害等に備えたバックアップや通信回線の考慮 庁舎内への保存等の構成について示すこと 1.5. 事業継続 事業者もしくは構成企業 製品製造元等の破綻等により サービスの継続が困難となった場合において それぞれのパターン毎に 具体的な対策を示すこと 事業者の破綻時には第三者へサービスの提供を引き継

メンバーの紹介 日本科学技術連盟ソフトウェア品質管理研究会 2010 年度第 6 分科会 B グループ リーダー関野浩之 アズビル株式会社 ( 発表者 ) 大坪智治 株式会社インテック 外谷地茂 キヤノンITソリューションズ株式会社 メンバーの特徴 開発案件のほとんどが派生開発 ( 組み込み系 :1

< D92E8955C81698D488E968AC4979D816A2E786C73>

リスクテンプレート仕様書

変更履歴 バージョン日時作成者 変更者変更箇所と変更理由 RIGHTS R ESER VED. Page 2

Software Engineering Center Information-technology Promotion Agency, Japan SEC 主催セミナー ( 東京 ) 2012 年 11 月 12 日 定量的プロジェクト管理ツールの概要 独立行政法人情報処理推進機構技術本部ソフトウ

目次 Ⅰ. 調査概要 調査の前提... 1 (1)Winny (2)Share EX (3)Gnutella データの抽出... 2 (1) フィルタリング... 2 (2) 権利の対象性算出方法... 2 Ⅱ. 調査結果 Win

ジョブ管理ソフトウェア LoadStar Scheduler ご紹介資料 ~ システム運用品質の向上とコスト削減を実現 ~

J-SOX 自己点検評価プロセスの構築

目次 1. はじめに 2. 利用目的別メトリクス一覧表の仕組み 3. 検索機能の使い方 4. 利用シナリオ 5. おわりに Center 1


と 測定を繰り返した時のばらつき の和が 全体のばらつき () に対して どれくらいの割合となるかがわかり 測定システムを評価することができる MSA 第 4 版スタディガイド ジャパン プレクサス (010)p.104 では % GRR の値が10% 未満であれば 一般に受容れられる測定システムと

IMI情報共有基盤 「表からデータモデル」 データ変換のみを行う方向け画面説明

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

スライド 1

Using VectorCAST/C++ with Test Driven Development

PowerPoint プレゼンテーション

不具合情報受付管理 DB 不具合情報対応情報要因 履歴登録 設備情報 不具合情報 対応情報 不具合 ( 履歴 ) 情報 機器仕様 納入情報 機器部品情報 関連資料 機器情報 交換部品情報 交換履歴 交換部品情報 保有部材管理 DB 保有部材管理 不具合情報 不具合先情報 不具合復旧情報 受付情報 対

Software Engineering Center Information-technology Promotion Agency, Japan IPA 2012 年 11 月 日日 定量的プロジェクト管理ツールの概要 独立行政法人情報処理推進機構

040402.ユニットテスト

Microsoft PowerPoint - CoBRA法の概要r1.pptx

2

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

15288解説_D.pptx

Agile 開発におけるプロジェクト管理の課題 リアルタイムなタスク管理 反復開発計画 ( イテレーション スプリント,..) が頻繁に変更される 機能追加やバグ修正 リファクタリングによるソースコード修正に対応したタスク管理が必要 ソースコードの二重管理 リリース済みのソースコードと 開発中のソー

<4D F736F F F696E74202D E A92E897CA D E83678AC7979D B838B5F F947

Microsoft PowerPoint - Personal Software Process (PSP)の実施の定着化

スライド 1

第 3 回 TERAS 成果報告会 TERAS V3 紹介と今後の展開 Tool Environment for Reliable and Accountable Software 一般社団法人 TERAS 理事開発委員長渡辺政彦 2014 年 3 月 12 日

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

パラダイムシフトブック.indb

ACR-C 保証継続報告書 独立行政法人情報処理推進機構原紙理事長藤江一正押印済変更 TOE 申請受付日 ( 受付番号 ) 平成 24 年 1 月 12 日 (IT 継続 2077) 認証番号 C0312 申請者コニカミノルタビジネステクノロジーズ株式会社 TOEの名称日本語名 :bi

日本機械学会 生産システム部門研究発表講演会 2015 資料

WBS_Ch0.indd

外部からの脅威に対し ファジング の導入を! ~ さらなる脆弱性発見のためのセキュリティテスト ~ 2017 年 5 月 10 日独立行政法人情報処理推進機構技術本部セキュリティセンター小林桂 1

発表内容 背景 コードクローン 研究目的 4 つのテーマ 研究内容 テーマ毎に, 概要と成果 まとめ 2

Microsoft Word - ESX_Setup_R15.docx

Copyright IPA Copyright IPA Copyright IPA モジュール A モジュール B モジュール C モジュール D 全体規模想定到達規模 規模計画値 4W 平均生産性 ( 右目盛 ) Copyright IPA が提供する定量関連のコンテンツ ツール群 データ提供企業

1. はじめに近年 下水処理場 ( 設備 ) の維持管理では 管理職員の減少と高齢化 施設の老朽化 自然災害リスクの増大等の課題が増大している 日本下水道事業団 ( 以下 JS) においては 人的 物的および資金的資源の有効活用 アセットマネジメント手法を最大限に活用したリスク評価に基づく健全な施設

スキル領域 職種 : マーケティング スキル領域と MK 経済産業省, 独立行政法人情報処理推進機構

目次 はじめに... 3 仮想化環境上の仮想マシン保護方法... 4 ( 参考 )Agent for Virtual Machines での仮想マシンのバックアップ... 8 まとめ 改訂履歴 2011/04 初版リリース 2012/10 第 2 版リリース このドキュメントに含まれる特

<4D F736F F F696E74202D2091E63389F15F8FEE95F1835A834C A CC B5A8F FD E835A835890A78CE C CC835A834C A A2E >

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

3. 回路図面の作図 回路図の作成では 部品など回路要素の図記号を配置し 要素どうしを配線するが それぞれの配線には 線番 などの電気的な情報が存在する 配線も単なる線ではなく 信号の入力や出力など部品どうしを結び付ける接続情報をもたせることで回路としての意味をもつ このように回路図を構成する図面は

狭山デポ様IBM移設予定機器 _ppt [Compatibility Mode]

やってみようINFINITY-製品仕様書 品質評価表 メタデータ 編-

Microsoft Word - JSQC-Std 目次.doc

2013 年年度度ソフトウェア 工学分野の先導的研究 支援事業 抽象化に基づいた UML 設計の検証 支援ツールの開発 公 立立 大学法 人岡 山県 立立 大学情報 工学部情報システム 工学科 横川智教 Circuit Design Engineering Lab. - Okayama Prefec

短納期開発現場への XDDP 導入手法

事故前提社会における           企業を支えるシステム操作統制とは

レビューとディスカッション 機能ガイド

【NEM】発表資料(web掲載用).pptx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

IT スキル標準 V3 2011_ 職種の概要と達成度指標 (7) アプリケーションスペシャリスト 職種の概要と達成度指標 APS 経済産業省, 独立行政法人情報処理推進機構

PowerPoint プレゼンテーション

BIM/CIM 活用における 段階モデル確認書 作成マニュアル 試行版 ( 案 ) 平成 31 年 3 月 国土交通省 大臣官房技術調査課

AAプロセスアフローチについて_ テクノファーnews

目次 1. 会社紹介 2. 小規模ソフトウェア開発のプロセス改善 3. 改善後の開発現場に現れてきた気になる傾向 4. 小集団改善活動 5. 当社が考える小規模開発 1/20

Transcription:

トレーサビリティ確保におけるソフト開発データからの 効果検証 実施報告書 2013 年 2 月

はじめに IPA/SEC では ソフトウェア品質説明力を強化すべく様々な観点からの検討を実施してきました その一環として ソフトウェア品質を説明するための手法等について具体的な実施方法 そのための作業量 実施にあたっての課題等を整理し 実際にソフトウェア品質を説明する際の参考とできるようにするために 公募により 観点ごとに分けられた実験を別々に実施しました 本書は それらの結果を 実験ごとにまとめた報告書のうちの 1つです 本報告書の実験は 2011 年度システムエンジニアリング実践拠点事業 として 東芝情報システム株式会社に委託し実施しました 報告内容は 2012 年度時点の内容であり 掲載されている個々の情報に関しての著作権及び商標はそれぞれの権利者に帰属するものです トレーサビリティ確保におけるソフト開発データからの効果検証 報告書 独立行政法人情報処理推進機構 Copyright Information-Technology Promotion Agency, Japan. All Rights Reserved 2013

目次 1. 背景... 1 2. 実験の目的とその概要... 2 2.1 実験テーマ... 2 2.2 実験分野... 2 2.3 実験対象... 2 2.4 実験尺度... 2 2.5 実験目標... 2 3. トレーサビリティについて... 3 3.1 ソフトウェア開発とトレーサビリティ... 3 3.2 トレーサビリティとは... 5 3.3 トレーサビリティ対策工数の試算... 6 3.3.1 品質指標の定義... 7 3.3.2 コード作成時間... 8 3.3.3 設計書作成時間... 9 3.3.4 設計書レビュー時間... 10 3.3.5 コードレビュー時間... 11 4. 適用レベルとトレーサビリティの範囲について... 12 4.1 適用レベルL0 のトレーサビリティの範囲... 13 4.2 適用レベルL1 のトレーサビリティの範囲... 13 4.3 適用レベルL2 のトレーサビリティの範囲... 14 4.4 適用レベルL3 のトレーサビリティの範囲... 15 4.5 適用レベルL4 のトレーサビリティの範囲... 16 5. 実験における調査概要... 17 5.1 調査概要... 17 5.2 調査対象データ... 18 5.3 調査対象プロジェクト... 20 5.3.1 プロジェクト 1 概要... 22 5.3.2 プロジェクト 2 概要... 23 5.3.3 プロジェクト 3 概要... 24 5.3.4 プロジェクト 4 概要... 25 6. 実験における調査結果... 26 6.1 プロジェクト 1 のデータ分析... 26 6.1.1 プロジェクト 1 の不具合データ... 26 i

6.1.2 プロジェクト1 不具合原因の内訳と対策工数... 30 6.2 プロジェクト 2 のデータ分析... 32 6.2.1 プロジェクト 2 の不具合データ... 32 6.2.2 不具合原因の内訳と対策工数... 36 6.3 プロジェクト 3 のデータ分析... 38 6.3.1 プロジェクト 3 の不具合データ... 38 6.3.2 不具合原因の内訳と対策工数... 42 6.4 プロジェクト 4 のデータ分析... 44 6.4.1 プロジェクト 4 の不具合データ... 44 6.4.2 不具合原因の内訳と対策工数... 48 7. 調査結果における考察と評価... 50 7.1 トレーサビリティと工数削減... 50 7.2 効果の検証... 52 7.3 適用レベルとトレーサビリティ範囲における評価結果... 54 8. トレーサビリティに関する管理レベルについて... 56 8.1 トレーサビリティ自体の品質... 56 8.2 トレーサビリティの保守... 56 8.3 トレーサビリティの管理方法... 56 8.4 検査工程とのトレーサビリティ... 56 9. 参考文献... 57 10. Appendix... 58 10.1 トレーサビリティの方法 例... 58 ii

図目次 図 1 V 字モデルでの設計書 / 仕様書間のトレーサビリティの例... 3 図 2 SCPチェック手順... 7 図 3 システムのタイプ分け... 7 図 4 プロジェクトプロファイル表... 8 図 5 設計書ボリューム率... 9 図 6 設計レビュー作業実施率... 10 図 7 コードレビュー作業実施率... 11 図 8 適用レベルL1 のトレーサビリティ範囲... 13 図 9 適用レベルL2 のトレーサビリティ範囲... 14 図 10 適用レベルL3 のトレーサビリティ範囲... 15 図 11 適用レベルL4 のトレーサビリティ範囲... 16 図 12 調査概要図... 17 図 13 PRISMYデータ管理画面... 19 図 14 プロジェクト 1 コード比率... 22 図 15 プロジェクト 1 工数比率... 22 図 16 プロジェクト 2 コード比率... 23 図 17 プロジェクト 2 工数比... 23 図 18 プロジェクト 3 コード比率... 24 図 19 プロジェクト 3 工数比... 24 図 20 プロジェクト 4 コード比率... 25 図 21 プロジェクト 4 工数比... 25 図 22 プロジェクト1 不具合発生要因及び不具合対応工数... 26 図 23 プロジェクト1 不具合検出工程... 27 図 24 プロジェクト1 設計要因の不具合件数及び設計要因の不具合対応工数... 28 図 25 プロジェクト1 不具合ごとの不具合対応工数... 29 図 26 プロジェクト1 不具合の原因区分比... 30 図 27 プロジェクト1 不具合対応工数とトレーサビリティ対策工数比... 31 図 28 プロジェクト 2 不具合発生要因及び不具合対応工数... 32 図 29 プロジェクト 2 不具合検出工程... 33 図 30 プロジェクト 2 設計要因の不具合件数及び設計要因の不具合対応工数... 34 図 31 プロジェクト 2 不具合ごとの不具合対応工数... 35 図 32 プロジェクト 2 不具合の原因区分比... 36 図 33 プロジェクト 2 不具合対応工数とトレーサビリティ対策工数比... 37 iii

図 34 プロジェクト 3 不具合発生要因及び不具合対応工数... 38 図 35 プロジェクト 3 不具合検出工程... 39 図 36 プロジェクト 3 設計要因の不具合件数及び設計要因の不具合対応工数... 40 図 37 プロジェクト 3 不具合ごとの不具合対応工数... 41 図 38 プロジェクト 3 不具合の原因区分比... 42 図 39 プロジェクト 3 不具合対応工数とトレーサビリティ対策工数比... 43 図 40 プロジェクト 4 不具合発生要因及び不具合対応工数... 44 図 41 プロジェクト 4 不具合検出工程... 45 図 42 プロジェクト 4 設計要因の不具合件数及び設計要因の不具合対応工数... 46 図 43 プロジェクト 4 不具合ごとの不具合対応工数... 47 図 44 プロジェクト 4 不具合の原因区分比... 48 図 45 プロジェクト 4 不具合対応工数とトレーサビリティ対策工数比... 49 図 46 工程別人月累計... 51 図 47 不具合対応工数と分布... 53 図 48 トレーサビリティマトリクスの例... 58 図 49 Wordでのトレーサビリティ情報の付加例... 60 図 50 Excelでのトレーサビリティ情報の付加例... 61 iv

表目次表 1 トレーサビリティ対策工数見積り... 6 表 2 主開発言語別 SLOC 生産性の基本統計量 ( 改良開発 )... 8 表 3 適用レベルとトレーサビリティの範囲... 12 表 4 不具合管理情報... 18 表 5 設計工程の名称の対応付け... 19 表 6 対象プロジェクト選定... 20 表 7 選定プロジェクトの概要... 20 表 8 開発規模の定義... 21 表 9 プロジェクト1 不具合対応工数の内訳... 27 表 10 プロジェクト1 不具合の原因区分... 30 表 11 プロジェクト1 トレーサビリティ対策工数... 31 表 12 プロジェクト 2 不具合対応工数の内訳... 33 表 13 プロジェクト 2 不具合の原因区分... 36 表 14 プロジェクト 2 トレーサビリティ対策工数... 37 表 15 プロジェクト 3 不具合対応工数の内訳... 39 表 16 プロジェクト 3 不具合の原因区分... 42 表 17 プロジェクト 3 トレーサビリティ対策工数... 43 表 18 プロジェクト 4 不具合対応工数の内訳... 45 表 19 プロジェクト 4 不具合の原因区分... 48 表 20 プロジェクト 4 トレーサビリティ対策工数... 49 表 21 トレーサビリティの工数削減効果... 50 表 22 各プロジェクトにおける工数削減率... 52 表 23 評価結果... 54 表 24 複雑度と工数削減効果... 55 表 25 トレーサビリティの効果とプロジェクト属性... 55 表 26 トレーサビリティマトリクスのメリット / デメリット... 59 表 27 Word Excel 使用のメリット / デメリット... 61 v

用語定義 用語 PRISMY トレーサビリティトレーサビリティマトリクス ESQR 解説 PRISMY(Project Information Sharing and Managing System) 不具合情報管理システム http://www.tjsys.co.jp/page.jsp?id=742 考慮の対象となっているものの履歴 適用又は所在を追跡できること [ ISO 9000(JIS Q 9000) の用語の定義 ] 本報告書では ソフトウェア開発のトレーサビリティを示す 追跡可能性マトリクス プロジェクトが 要件のすべてを正しく設計し 実装し 評価し 納入した と保証するためのトレーサビリティ ( 追跡可能性 ) を維持する仕組み 上位要件と下位要件との追跡可能性や 要件と下流の作業成果物との追跡可能性を 格子表 ( マトリクス ) に整理したもの ESQR(Embedded System development Quality Reference) 組込みソフトウェア開発向け品質作り込みガイド vi

1. 背景 ソフトウェア品質説明力は 社会的に極めて重要な課題として認識されてきており 独立行政法人情報処理推進機構技術本部ソフトウェア エンジニアリング センターでは その強化のための取り組みを実施している 本実験では 説明力を強化すべき品質として 製品の利用品質の確認や向上への利用者情報や利用情報の活用 という観点に注目し それに伴い実施する作業とコストの関連についての検証を行った 本報告書では 以下の構成にて実験結果について報告を行う 実験の目的とその概要 トレーサビリティについて 適用レベルとトレーサビリティの範囲について 実験における調査概要 実験における調査結果 調査結果における考察と評価 参考 1

2. 実験の目的とその概要ソフトウェア開発は オフショア化や競争のグローバル化 ソースコード作成の自動化など コスト削減の方策の取り込みが進んでいる 特に機器に組み込まれるソフトウェアでは 頻繁なソフトウェア更新が困難であるため コスト削減とともに一層の品質向上が望まれている ソフトウェア開発のV 字モデルにおいては コスト削減及び品質向上の施策として 文書 ( 仕様書 / 設計書 ) 間のトレーサビリティを確保し 仕様からソースコードまでを追跡できるような仕組みが必要であると考えられる そのため 今回の実験では 高めの品質レベルが要求される通信ソフトウェアを対象に システム設計から製造までの工程間で トレーサビリティを確保することで実現できる工数削減 ( コスト削減 ) の評価を行い その結果を ソフトウェア品質説明力強化に向けての参考データとして提供するものである 2.1 実験テーマ トレーサビリティ確保によるコスト削減 ( 手戻り作業の削減 ) 効果を検証する 2.2 実験分野今回の実験では 以下の実験分野を選択した 大分類 ( イ ): コスト評価小分類 (B): 利用品質の確認や向上への 利用者情報や利用情報の活用 2.3 実験対象今回の実験対象は 以下の 2 つのソフトウェア開発である 一般組込み機器製品に搭載される通信ソフトウェア 車両搭載用通信プロトコルスタックソフトウェア 2.4 実験尺度 トレーサビリティ確保による後戻り工数のコスト ( 削減分 ) トレーサビリティ対策による増加 ( 付 加 ) 工数の割合を測定する 2.5 実験目標 トレーサビリティ確保及び上流工程での品質確保による効果を明確にする 2

3. トレーサビリティについて 3.1ソフトウェア開発とトレーサビリティ組込みソフトウェア開発は 組込み製品の多機能化 多様化に伴い 開発するソフトウェアは肥大化 複雑化している 組込み製品の多様化への対応は 派生開発によるものも多く 1 つの機能が発展しながら複数の製品に展開されることも少なくない そのため ある機能で1つの不具合が発生すると その影響は派生開発された類似製品にも影響することになり 不具合が想定外の範囲に拡がることも考えられる ソフトウェアの品質を保証する上で ソフトウェア提供者は機能的で信頼性が高く 効率的なソフトウェアを提供することを考えなくてはならない また 機能性を追及するだけではなく 高性能で安全性 ( 信頼性 ) が高い等 高い品質を保証した製品開発を行う必要がある そのためには ソフトウェアへの要求を的確に定義し これを製品の中に確実に作り込むことが重要になる そこでは 欠陥を作り込むことを予防することがより重要であり これにはソフトウェアのトレーサビリティが深くかかわってくる ソフトウェアの品質保証では 以下の要素を担保することが求められている (1) 有益であり安全性が高いこと (2) システム設計は要求仕様を満足していること (3) 実装がシステム設計に合致していること (4) 要求仕様がシステムテストで確認されることこれらの要素を ソフトウェア開発におけるV 字モデルでの各仕様書 / 設計書の関連図 ( 図 1) で示す 要求仕様書 受入検査仕様書 それぞれの仕様通りに実装できているか確認が容易できているか検証が容易 システム設計書 システム検査仕様書 要求仕様が網羅されているか 不整合がないかの確認が容易 基本設計書 それぞれの仕様通りに実装できているか確認が容易できているか検証が容易 結合検査仕様書 上位設計書の内容が網羅されているか確認が容易 詳細設計書 単体検査仕様書 詳細設計の内容が正しく実装されているかの確認が容易 ソースコード製造 図 1 V 字モデルでの設計書 / 仕様書間のトレーサビリティの例 3

開発の各工程の成果物間のトレーサビリティが確保されることで 成果物が関連付けされ その結果 内容の確認が容易となり レビュー時間が短縮できると予測できる また 各段階での仕様の漏れや不整合の検出が容易になる その結果として 各工程のレビューで前工程の要件が正しく取り込めているか否かが確認でき 欠陥 ( 不具合 ) の作り込み防止にもつながる さらに 品質が向上することで 確認の手間 ( 工数 ) を削減できる可能性がある 4

3.2トレーサビリティとは一般には ソフトウェアのトレーサビリティとして 以下の 2 点が挙げられる (1) 製品に関するトレーサビリティ (2) 文書及びデータに関するトレーサビリティ (1) は ソフトウェアアイテム ( ソフトウェアの部品の最小構成単位 ) が 製品にどのように組み込まれているかを追跡できることである (2) は ソフトウェアの要件が製品のどの部分で実現されているかを追跡できることを意味し 逆にできあがっているソフトウェアの構成部品 ( 実行モジュール等 ) が どのソフトウェア要件を実現するためのものかを追跡できることも意味する 本実験では (2) 文章及びデータに関するトレーサビリティ について検証を行う ソフトウェア開発では 開発途中での仕様変更は多いので 変更に関連している他の部分を修正しなければならない また ソースコードの作成中に設計上の問題を発見した場合 その基になっている設計にまで立ち返って仕様を修正することになる このようにソフトウェア開発では 個々の成果物がお互いにどのように影響し合っているかを把握することが重要であり この特性がトレーサビリティである トレーサビリティを確保することで ソフトウェアの一部を修正したときに その影響を受けるソフトウェアの構成部品及び関連する箇所が特定可能なため 必要なソフトウェアの修正漏れを防ぐことができる トレーサビリティが確保された文書の作成工数は トレーサビリティなしの文書の作成工数に比べて 多くなることが推測される しかし トレーサビリティを意識して作成された文書は 上位文書との関連付けができているので 漏れや不整合が少なくなり品質が向上すると考えられる また 関連する文書の参照も容易であることから 第 3 者によるレビューも容易となり レビューの質や効率が向上することも考えられる これらの効果により 品質が向上した文書は 製造工程や検証工程での不具合発生を予防することになり 不具合対応工数の削減効果があると考える 5

3.3トレーサビリティ対策工数の試算今回の実験にあたり 成果物にトレーサビリティ情報を付加するための工数 ( トレーサビリティ対策工数 ) の見積りルールを策定した 基本的に トレーサビリティ情報を確認 / 付加する工数は 従来工数の 30% と仮定した ベースとなる工数の算出にあたって コード作成の工数については SEC BOOKS ソフトウェア開発データ白書 2010-2011 の生産性を参考とし 設計書作成ならびにレビューの工数を決めるための品質指標については SEC BOOKS 組込みソフトウェア開発向け品質作り込みガイド ( 以下 ESQR) の品質指標を参考とした 各作業工数の算出式を表 1に示す 表 1 トレーサビリティ対策工数見積り 作業算出式備考 コード作成設計書作成設計書レビューコードレビュー コード作成時間 =( 処置ステップ数 /8.47)- ( 処置ステップ数 /12.1) 設計書作成時間 = 処置ステップ数 28.6 設計書レビュー時間 = 処置ステップ数 13.42 コードレビュー時間 = 処置ステップ数 6.71 参考 : ソフトウェア開発データ白書 2010-2011 主開発言語別の SLOC 生産性基本統計量 ( 改良開発 ) の C 言語参考 :ESQR 設計書ボリューム率処置ステップ数 :KLOC 単位 前提:1 ページ / 時間 参考 :ESQR 設計レビュー作業実施率処置ステップ数 :KLOC 単位参考 :ESQR コードレビュー作業実施率処置ステップ数 :KLOC 単位 なお 算出の基礎となる 処置ステップ数 が極めて小さく 前述の品質指標では適切な値を算出できない場合 該当工数は 0.5 時間と仮定する それぞれの算出式の定義手順については 次ページ以降の3.3.1~3.3.5を参照のこと 6

3.3.1 品質指標の定義 ESQR の品質指標を参考するにあたり ESQR の手順に従ってシステムプロファイリング (SCP: System Characteristics Profiling) 及びプロジェクトプロファイリング (PCP:Project Characteristics Profiling) を実施した (1) システムプロファイリング (SCP) プロジェクトプロファイリングでは 図 2の手順に従いシステムタイプを決定する 図 2 SCP チェック手順 * 組込みソフトウェア開発向け品質作り込みガイド 今回の調査の対象プロジェクトは 車両搭載や携帯電話搭載を想定した通信システムであるため 以下のように仮定し Type-2[Normal Quality Required(NQ)] と定義した 人的損失 : なし 経済損失 :1 億円以上システムタイプについては 図 3を参照のこと 図 3 システムのタイプ分け * 組込みソフトウェア開発向け品質作り込みガイド 7

(2) プロジェクトプロファイリング (PCP) 次に図 4のプロジェクトプロファイル表を使用し 品質指標の補正係数を求める 今回の調査では ファクター 1~3をプラス補正 その他を基本と仮定し 補正係数を +3 と定める 図 4 プロジェクトプロファイル表 * 組込みソフトウェア開発向け品質作り込みガイド 3.3.2 コード作成時間 ソフトウェア開発データ白書 2010-2011 に記載されている 主開発言語別の SLOC 生産性基本統計量 ( 改良開発 ) ( 表 2 参照 ) の C 言語の標準偏差の値 (12.1SLOC/ 人時 ) を参考に コード作成工数を算出する なお コードへトレーサビリティ情報を付加するための工数は この生産性が 30% 低下する (3.3 参照 ) と仮定して算出した したがってトレーサビリティを確保するためのコード作成時間を以下のように求める トレーサビリティ情報付加時生産性 =12.1 0.7 =8.47 コード作成時間 =( 処置ステップ数 /8.47)-( 処置ステップ数 /12.1) 表 2 主開発言語別 SLOC 生産性の基本統計量 ( 改良開発 ) * ソフトウェア開発データ白書 2010-2011 8

3.3.3 設計書作成時間 図 5 に記載の ESQR の 設計書ボリューム率 を参考に 設計書枚数を不具合情報管理システ ム ( 以下 PRISMY) の 処置ステップ数 から算出する 図 5 設計書ボリューム率 システムタイプ Type-2:NQ プロジェクトプロファイル補正係数 +3 ( ソフトウェアの規模 複雑性 制約条件 ) 設計書ボリューム率 22 トレーサビリティ情報付加分加算 22 1.3=28.6 ページ数( 設計書作成時間 ) =28.6 処置ステップ数 ( ) 設計書へトレーサビリティ情報を付加するための工数は 1 ページあたり 1 時間と仮定した 9

3.3.4 設計書レビュー時間 図 6 に記載の ESQR の 設計レビュー作業実施率 を参考に 設計書レビュー時間を PRISMY の 処置ステップ数 から算出する 図 6 設計レビュー作業実施率 システムタイプ Type-2:NQ プロジェクトプロファイル補正係数 +3 ( ソフトウェアの規模 複雑性 制約条件 ) 設計レビュー作業実施率 10.32 トレーサビリティ情報付加分加算 10.32 1.3=13.42 設計書レビュー時間 =13.42 処置ステップ数今回の対象データでは 設計書レビュー時間に関するデータが少ないため ここで算出した設計書レビュー時間を 設計書レビュー時のトレーサビリティ情報を確認するための工数と仮定した 10

3.3.5 コードレビュー時間 図 7 に記載の ESQR の コードレビュー作業実施率 を参考に コードレビュー時間を PRISMY の 処置ステップ数 から算出する 図 7 コードレビュー作業実施率 システムタイプ Type-2:NQ プロジェクトプロファイル補正係数 +3 ( ソフトウェアの規模 複雑性 制約条件 ) 設計レビュー作業実施率 5.16 トレーサビリティ情報付加分加算 5.16 1.3=6.71 コードレビュー時間 =6.71 処置ステップ数今回の対象データでは コートレビュー時間に関するデータが少ないため ここで算出したコードレビュー時間を コードレビュー時のトレーサビリティ情報を確認するための工数と仮定した 11

4. 適用レベルとトレーサビリティの範囲について今回の実験結果を評価するにあたり プロジェクトの各成果物間のトレーサビリティを取る範囲を5 段階に分類し これを 適用レベル として 表 3のように定義した ソフトウェアのトレーサビリティは 本来であればV 字モデルの左側の設計工程の成果物と右側の検証工程の成果物のトレーサビリティも含まれる しかし 今回の実験では設計要因の不具合が対象なので 設計工程のみの成果物のトレーサビリティにフォーカスするため 検査工程の成果物とのトレーサビリティは作業項目からは除外した 適用レベル L1~L4 については トレーサビリティの始点を要求仕様書としているが 今回の調査対象プロジェクトでは 要求仕様書は実験の対象外としているため 適用レベル L1 については トレーサビリティが確保されているものとして評価を行う 適用レベル L0 は調査対象プログラムの現状なので 今回の評価対象の適用レベルは L1/L2/L3/L4 となる 適用レベル 表 3 適用レベルとトレーサビリティの範囲トレーサビリティの範囲 L0 トレーサビリティ : 全くなし L1 要求仕様書 システム設計書 L2 要求仕様書 システム設計書 基本設計書 L3 要求仕様書 システム設計書 基本設計書 詳細設計書 L4 要求仕様書 システム設計書 基本設計書 詳細設計書 ソースコード トレーサビリティの範囲が拡がることに比例して 成果物の作成工数は増加すると推測される 一方 各成果物の品質は向上するため検証工程での不具合発生件数は減少し 不具合対応工数も減少する 成果物にトレーサビリティ情報を付加するための工数 ( トレーサビリティ対策工数 ) と不具合対応工数の差を今回の実験の評価の尺度とする 12

品質向上の観点からは トレーサビリティはできるだけ広範囲で確保するべきだが プロジェクトで求められる品質と開発コストのバランスで トレーサビリティ確保の範囲は変化する 特定の条件下ではあるが 品質向上に充てられる工数増分と品質向上効果による不具合対応工数の削減分の関係を明らかにする 4.1 適用レベル L0 のトレーサビリティの範囲 適用レベル L0 では トレーサビリティを確保していない状態として扱う 4.2 適用レベル L1 のトレーサビリティの範囲適用レベル L1 では 図 8に示す通り要求仕様書 ~システム設計書間のトレーサビリティが確保されている状態として評価する 本来 顧客要求を取りまとめて要求仕様書を作成する要求管理の部分についてもトレーサビリティを確保することが好ましいが 今回の実験対象プロジェクトではこの部分のデータが存在しないため 対象外とする 適用レベル L1 では 顧客の要求する機能仕様が漏れなく記述されている要求仕様書に対して システムがどのように対処するのか 適切な解決方法が矛盾なく 漏れなくシステム設計書に記述されている状態である 要求仕様書 受入検査仕様書 システム設計書 システム検査仕様書 基本設計書 結合検査仕様書 詳細設計書 単体検査仕様書 ソースコード製造 図 8 適用レベル L1 のトレーサビリティ範囲 13

4.3 適用レベル L2 のトレーサビリティの範囲適用レベル L2 では 図 9に示す通り要求仕様書 ~ 基本設計書間のトレーサビリティが確保されている状態として評価する このレベルでは システム設計書に記述されている解決方法に対して システムの構築方法と解決方法の具体的な形が矛盾なく 漏れなく基本設計書に記述されている状態である 要求仕様書 受入検査仕様書 システム設計書 システム検査仕様書 基本設計書 結合検査仕様書 詳細設計書 単体検査仕様書 ソースコード製造 図 9 適用レベル L2 のトレーサビリティ範囲 14

4.4 適用レベル L3 のトレーサビリティの範囲適用レベル L3 では 図 10に示す通り要求仕様書 ~ 詳細設計書間のトレーサビリティが確保されている状態として評価する このレベルでは 基本設計書に記述されている解決方法の仕組みに対して それぞれの仕組みの具体的な実現方法が矛盾なく 漏れなく詳細設計書に記述されている状態である プログラム作成にあたっては 詳細設計書の他に外部との関係を記述したインターフェース仕様書等が必要な場合もあるが 今回の適用レベルの定義ではこれらの仕様書 / 設計書は詳細設計書に包含するものとする 要求仕様書 受入検査仕様書 システム設計書 システム検査仕様書 基本設計書 結合検査仕様書 詳細設計書 単体検査仕様書 ソースコード製造 図 10 適用レベル L3 のトレーサビリティ範囲 15

4.5 適用レベル L4 のトレーサビリティの範囲適用レベル L4 では 要求仕様書 ~ソースコード間のトレーサビリティが確保されている状態として評価する このレベルでは 詳細設計書に記述されている実現方法が 漏れなくプログラムコードに変換されている状態である 要求仕様書 受入検査仕様書 システム設計書 システム検査仕様書 基本設計書 結合検査仕様書 詳細設計書 単体検査仕様書 ソースコード製造 図 11 適用レベル L4 のトレーサビリティ範囲 16

5. 実験における調査概要 5.1 調査概要 調査対象 一般組込み機器製品に搭載される通信ソフトウェア車両搭載用通信プロトコルスタックソフトウェア ライフサイクルの範囲 システム設計 ~ 製造 調査の目的 トレーサビリティ確保によるコスト削減及び品質向上効果の検証 調査の分類 コスト評価 評価の尺度 人月 : 以下の工数の割合を測定 トレーサビリティ確保による後戻り工数( 削減分 ) トレーサビリティ対策のための増加( 付加 ) 工数 設計工程が原因の不具合情報抽出 不具合情報一覧 PRISMY( 不具合情報 ) 20% 15% 5% 不具合情報の集計 35% 25% 20 15 5 25 30 調査データ 実験データ 分析 / まとめ 実験結果 実施報告書 図 12 調査概要図 17

5.2 調査対象データ今回の調査対象データは 以下の 2 つのソフトウェア開発における不具合データである 一般組込み機器製品に搭載される通信ソフトウェア 車両搭載用通信プロトコルスタックソフトウェア これらのデータは PRISMY で管理されており 設計工程に起因する不具合データを PRISMY 情報から抽出して使用する PRISMY 情報からは 不具合管理情報として表 4のようなデータ項目を抽出した 表中の 解析時間 ~ 確認時間 までを 不具合対応工数として集計する 表 4 不具合管理情報 No. 抽出データ項目 説明 1 不具合管理番号 PRISMY 上の管理番号 2 工程種別 不具合の原因工程 3 不具合概要 不具合の概要 4 検出工程 不具合を検出した工程 5 解析時間 解析作業の実績時間 6 解析後レビュー時間 解析内容レビューの実績時間 7 対処時間 対処作業の実績時間 8 対処後レビュー時間 対処内容レビューの実績時間 9 確認時間 対処後の動作確認作業の実績時間 10 ステップ数 対処の際に修正したステップ数 18

PRISMY では 図 13 のような管理画面で不具合情報の管理を行っている 図 13 PRISMY データ管理画面 今回使用した PRISMY 情報では 工程種別 等に設定されている設計工程の名称が 機能設計 / 詳細設計 / 実装設計の 3 つのいずれかであり 一般的な名称であるシステム設計 / 基本設計 / 詳細設計と異なっている したがって 本報告書では 表 5のように設計工程の名称の対応付けを行い 一般的な名称を使用する 表 5 設計工程の名称の対応付け PRISMY 情報の名称 一般的な名称 機能設計 システム設計 詳細設計 基本設計 実装設計 詳細設計 19

5.3 調査対象プロジェクト 対象の 2 つのソフトフェア開発は 2005 年から継続しており 今回の対象プロジェクトは 2007~ 2011 年の間に実行されたプロジェクトである 調査にあたり 表 6のように該当する 9 つのプロジェクトから 適正な品質レベルを示した 4 つ のプロジェクトを選定した 表 6 対象プロジェクト選定 No. プロジェクト名 品質レベル 選定 1 MT 社向け管理 低い 2 AL 社向け開発 適正 プロジェクト 1 3 A 社向け開発 高い 4 HY 社開発 適正 プロジェクト 2 5 M 社向け開発 高い 6 T 社向け開発 適正 プロジェクト 3 7 A Model 開発 低い 8 AI 社向け開発 1 低い 9 AI 社向け開発 2 適正 プロジェクト 4 調査の便宜上 選定したプロジェクトは これ以降プロジェクト 1/ プロジェクト 2/ プロジェクト 3 / プロジェクト 4 と呼ぶこととする 各プロジェクトの概要は 表 7 のようになっている 表 7 選定プロジェクトの概要 プロジェクト 開発区分 流用率 開発規模 プロジェクト 1 派生開発 93% 大規模 プロジェクト 2 派生開発 71% 中規模 プロジェクト 3 派生開発 86% 中規模 プロジェクト 4 派生開発 82% 中規模 なお 開発規模については 今回の調査では表 8 の定義を使用した 20

表 8 開発規模の定義 開発規模大規模中規模小規模 開発工数 ( 人月 ) 80 以上 50 ~ 80 未満 50 未満 開発 Step 数 (KLOC) 300 以上 100 ~ 300 未満 100 未満 21

5.3.1 プロジェクト 1 概要プロジェクト 1 の開発規模は 348KLOC の大規模プロジェクトである 新規 / 変更 / 流用の比率を図 14に示す 派生開発で流用率が 94% と非常に高い割合を占めている 新規 0% 変更 6% 流用 94% 図 14 プロジェクト 1 コード比率 プロジェクト 1 の開発工数は 12,721 時間で 設計 / 製造 / 検査 / 不具合対応の各工程の比率を図 15に示す このプロジェクトの結合検査項目は 14,000 件で検査工程が 25% を占めており 不具合対応が 10% を占めている 不具合対応 10% 設計 25% 検査 25% 製造 40% 図 15 プロジェクト 1 工数比率 22

る 5.3.2 プロジェクト 2 概要 プロジェクト 2 の開発規模は 180KLOC の中規模プロジェクトである 新規 / 変更 / 流用の比率を図 16 に示す 派生開発で流用率が 71% と高い割合を占めてい 新規 0% 変更 29% 流用 71% 図 16 プロジェクト 2 コード比率 プロジェクト 2 の開発工数は 11,470 時間で 設計 / 製造 / 検査 / 不具合対応の各工程の比率を図 17に示す このプロジェクトの結合検査項目は 8,700 件で検査工程が 33% を占めており 不具合対応が 10% を占めている 不具合対応 10% 設計 28% 検査 33% 製造 29% 図 17 プロジェクト 2 工数比 23

る 5.3.3 プロジェクト 3 概要 プロジェクト 3 の開発規模は 173.7KLOC の中規模プロジェクトである 新規 / 変更 / 流用の比率を図 18 に示す 派生開発で流用率が 87% と高い割合を占めてい 新規 2% 変更 11% 流用 87% 図 18 プロジェクト 3 コード比率 プロジェクト 3 の開発工数は 9,932 時間で 設計 / 製造 / 検査 / 不具合対応の各工程の比率を図 19に示す このプロジェクトの結合検査項目は 3,600 件で検査工程が 33% を占めており 不具合対応が 10% を占めている 不具合対応 10% 設計 25% 検査 33% 製造 32% 図 19 プロジェクト 3 工数比 24

5.3.4 プロジェクト 4 概要プロジェクト 4 の開発規模は 220KLOC の中規模プロジェクトである 新規 / 変更 / 流用の比率を図 20に示す 派生開発で流用率が 81% と高い割合を占めている 新規 14% 変更 5% 流用 81% 図 20 プロジェクト 4 コード比率 プロジェクト 4 の開発工数は 14,051 時間で 設計 / 製造 / 検査 / 不具合対応の各工程の比率を図 21に示す このプロジェクトの結合検査項目は 7,500 件で検査工程が 31% を占めており 不具合対応が 4% を占めている 不具合対応 4% 検査 31% 設計 30% 製造 35% 図 21 プロジェクト 4 工数比 25

6. 実験における調査結果 6.1 プロジェクト 1 のデータ分析 プロジェクト 1 のデータ分析の結果を以下に記す 6.1.1 プロジェクト 1 の不具合データプロジェクト 1 における不具合件数は 421 件で 不具合対応工数の合計は 1251 時間であった 発生要因で分類した場合の件数の割合 及び不具合対応工数の割合を図 22に示す 発生要因工程としては 製造 の割合が 51% と最も多い しかし 今回の調査では設計工程を要因とした不具合を対象としているため ここでは システム設計 基本設計 詳細設計 の 3 つの工程に注目する これら 3 工程を要因とする不具合は 合わせて全体の 26% を占めている 不具合対応工数で見ると システム設計 基本設計 詳細設計 の割合が 合わせて 45% となり 件数の割合に比較して大きくなっていることから 設計工程が要因の不具合は不具合対応工数が大きくなることを示している 不明 14% ノーバグ 8% その他 1% 基本設計 15% 詳細設計 7% 不明 0% ノーバグ 5% 基本設計 24% システム設計 4% 製造 50% 詳細設計 16% 製造 51% システム設計 5% 発生要因 不具合対応工数 図 22 プロジェクト1 不具合発生要因及び不具合対応工数 26

また これらの不具合が検出された工程を分析した結果を図 23に示す 上流工程で検出される割合が極端に少なく 検査工程で検出される割合が 合計で 51% と半数を占めている また 他社や他プロジェクトなど外部からの指摘も 合計で 43% と大きな割合を占めている 簡易検査 0% C 社指摘 13% ユースケース検査仕様書作成 0% 仕様変更 1% 簡易スクリプト検査 0% 結合検査 22% A 社指摘 17% 他プロジェクトからの情報 13% コードレビュー 5% 設計レビュー 1% 接続性評価 4% リリース前検査 7% 単体検査 18% 図 23 プロジェクト 1 不具合検出工程 これらの不具合のうち 設計要因の不具合件数は 107 件で その不具合対応工数の合計は 552.35 時間であった プロジェクト 1 における 設計要因の不具合対応工数の内訳を表 9に示す 工程種別 表 9 プロジェクト 1 不具合対応工数の内訳 解析時間 解析後レビュー 不具合対応工数 (H) 処置時間 処置後レビュー 確認時間 対応工数合計 システム設計 20.00 0.00 37.00 0.00 0.25 57.25 基本設計 148.75 0.25 143.85 0.75 2.50 296.10 詳細設計 113.50 0.00 85.00 0.00 0.50 199.00 小計 282.25 0.25 265.85 0.75 3.25 552.35 27

不具合件数を システム設計 基本設計 詳細設計 の 3 工程で分類した結果 及びそれぞれの不具合対応工数の割合を図 24に示す 不具合件数では 基本設計が 58% 詳細設計が 27% となり この 2 つの要因が 合わせて 8 割強を占めている また 不具合対応工数については 詳細設計の不具合対応工数の割合が不具合件数に比べて約 10% 増加しており 詳細設計の不具合対応工数が大きくなる傾向にある システム設計 15% システム設計 10% 詳細設計 27% 詳細設計 36% 基本設計 58% 基本設計 54% 不具合件数 不具合対応工数 図 24 プロジェクト1 設計要因の不具合件数及び設計要因の不具合対応工数 28

次に 不具合ごとの不具合対応工数の分布を図 25に示す 不具合対応工数が 5 時間未満のものが 71% と大半を占めている 工数の削減にはこの部分への対処が不可欠である また 不具合対応工数が 30 時間以上のものが 2 件あり 1 件はデグレードであり もう 1 件は設計誤りが原因であった この種の不具合は 発生すると対応により多くの工数を要すると考えられる 20~30H 未満 5% 10~20H 未満 10% 5~10H 未満 12% 30~40H 未満 1% 40~50H 未満 0% 50H~ 1% 0~5H 未満 71% 図 25 プロジェクト 1 不具合ごとの不具合対応工数 29

6.1.2 プロジェクト1 不具合原因の内訳と対策工数抽出した設計要因の不具合の原因を分析した結果を表 10に示す なお 一つの不具合が複数の原因に区分されることもあるため 表中の不具合件数の合計は実際の件数よりも多くなっている 表 10 プロジェクト1 不具合の原因区分 工程種別 設計漏れ 設計誤り 検査漏れ 原因区分 ( 件 ) 検査仕様レビュー誤り不足 トレーサビリティビりティ 外部要因 不明 システム設計 8 0 1 3 5 4 1 0 基本設計 26 32 1 1 12 5 0 1 詳細設計 0 0 0 0 29 0 0 0 小計 34 32 2 4 46 9 1 1 また それぞれの割合を図 26 に示す トレーサビリティビりティ 7% 外部要因 1% 不明 1% 設計漏れ 26% レビュー不足 35% 設計誤り 25% 検査仕様誤り 3% 検査漏れ 2% 図 26 プロジェクト 1 不具合の原因区分比 設計漏れ 設計誤り レビュー不足 トレーサビリティ( 欠如 ) の 4 項目が合計で 93% と大半を占めている トレーサビリティを確保することで 上位及び下位の要件との関連付けが容易になり 記述の漏れや不整合を防止し レビューの質の向上が期待できるので いずれの原因も トレーサビリティを確保することが有効な対策になる それぞれの不具合に対して トレーサビリティ対策工数を見積もった 30

す 表 1 の見積り単位で 不具合ごとのトレーサビリティ対策工数を見積もった結果を表 11 に示 プロジェクト 1 における トレーサビリティ対策工数の合計は 258 時間となった 表 11 プロジェクト 1 トレーサビリティ対策工数 工程種別 設計書作成 トレーサビリティ対策工数 (H) 設計書コードコード作成レビューレビュー 対策工数合計 システム設計 9.50 9.50 6.50 5.00 30.50 基本設計 52.50 53.50 36.00 28.00 170.00 詳細設計 16.50 15.00 14.00 12.00 57.50 合計 78.50 78.00 56.50 45.00 258.00 このトレーサビリティ対策工数と設計要因による不具合対応工数の合計 (552.35 時間 ) との比較を図 27に示す 不具合対応工数 / 対策工数の比較 トレーサビリティ不具合対策工数対策工数 ( 予測予測 ) ドキュメント ソース レビュー 5533%% 削減 不具合対応工数 ( 実績 ) 解析 処置 レビュー 0 100 200 300 400 500 600 時間 (H) 図 27 プロジェクト 1 不具合対応工数とトレーサビリティ対策工数比 この結果から プロジェクト 1 では 53% の工数削減が期待できることになる 31

6.2プロジェクト 2 のデータ分析 6.2.1 プロジェクト 2 の不具合データプロジェクト 2 における不具合件数は 294 件で 不具合対応工数の合計は 993 時間であった 発生要因で分類した場合の件数の割合 及び不具合対応工数の割合を図 28に示す 発生要因工程としては 今回の調査で対象とした設計工程を要因としている不具合の割合が多い システム設計 基本設計 詳細設計 の 3 つの工程を要因とする不具合は 合わせて全体の 59% を占めている 不具合対応工数で見ると 前述の 3 工程の割合が 合計で 73% となり 件数の割合に比較して大きくなっていることから 設計工程が要因の不具合は不具合対応工数が大きくなることを示している ノーバグ 18% その他 2% 詳細設計 15% ノーバグ 16% 不明 0% その他 1% 詳細設計 16% 不明 9% 製造 12% システム設計 17% 基本設計 27% 製造 10% システム設計 30% 基本設計 27% 発生要因 不具合対応工数 図 28 プロジェクト 2 不具合発生要因及び不具合対応工数 32

また これらの不具合が検出された工程を分析した結果を図 29に示す 上流工程で検出される割合が極端に少なく 検査工程で検出される割合が 合計で 59% と半数以上を占めている また 他社や他プロジェクトなど外部からの指摘も 合計で 33% と大きな割合を占めている 仕様変更 1% C 社指摘 2% ユースケース検査仕様書作成 0% 簡易スクリプト検査 0% 結合検査 9% その他 4% A 社指摘 26% 他プロジェクトからの情報 5% 単体検査 26% コードレビュー 5% 設計レビュー 1% 総合検査 17% リリース前検査 7% 図 29 プロジェクト 2 不具合検出工程 これらの不具合のうち 設計要因の不具合件数は 172 件で その不具合対応工数の合計は 726.25 時間であった プロジェクト 2 における 設計要因の不具合対応工数の内訳を表 12に示す 工程種別 表 12 プロジェクト 2 不具合対応工数の内訳 解析時間 解析後レビュー 不具合対応工数 (H) 処置時間 処置後レビュー 確認時間 対応工数合計 システム設計 127.50 0.50 164.75 0.00 0.00 292.75 基本設計 119.00 1.50 150.75 0.00 0.00 271.25 詳細設計 64.50 0.00 97.75 0.00 0.00 162.25 小計 311.00 2.00 413.25 0.00 0.00 726.25 33

不具合件数を システム設計 基本設計 詳細設計 の 3 工程で分類した結果 及びそれぞれの不具合対応工数の割合を図 30に示す システム設計については 不具合件数では 30% であるが 不具合対応工数では 41% と 11% 増加している 逆に基本設計 詳細設計については 不具合対応工数での割合が減少している 詳細設計システム 22% 詳細設計設計 26% 30% システム設計 41% 基本設計 44% 基本設計 37% 不具合件数 不具合対応工数 図 30 プロジェクト 2 設計要因の不具合件数及び設計要因の不具合対応工数 34

次に 不具合ごとの不具合対応工数の分布を図 31に示す 不具合対応工数が 5 時間未満のものが 68% と大半を占めている 工数の削減にはこの部分への対処が不可欠である また 不具合対応工数が 20 時間以上のものが 3 件あり いずれも設計誤りが原因であった この種の不具合は 発生すると対応により多くの工数を要すると考えられる 20~30H 未満 1% 10~20H 未満 6% 30~40H 未満 0% 40~50H 未満 1% 50H~ 0% 5~10H 未満 24% 0~5H 未満 68% 図 31 プロジェクト 2 不具合ごとの不具合対応工数 35

6.2.2 不具合原因の内訳と対策工数抽出した設計要因の不具合の原因を分析した結果を表 13に示す なお 一つの不具合が複数の原因に区分されることもあるため 表中の不具合件数の合計は実際の件数よりも多くなっている 表 13 プロジェクト 2 不具合の原因区分 工程種別 設計漏れ 設計誤り 検査漏れ 原因区分 ( 件 ) 検査仕様レビュー誤り不足 トレーサビリティビりティ 外部要因 不明 システム設計 5 34-1 7-7 - 基本設計 7 60 - - 5 2 2 5 詳細設計 8 26-1 12 - - 1 小計 20 120 0 2 24 2 9 6 また それぞれの割合を図 32 に示す トレーサビリティビりティ 1% レビュー不足 13% 外部要因 5% 不明 3% 設計漏れ 11% 検査仕様誤り 3% 検査漏れ 0% 設計誤り 66% 図 32 プロジェクト 2 不具合の原因区分比 設計漏れ 設計誤り レビュー不足 トレーサビリティ( 欠如 ) の 4 項目が合計で 91% と大半を占めている トレーサビリティを確保することで 上位及び下位の要件との関連付けが容易になり 記述の漏れや不整合を防止し レビューの質の向上が期待できるので いずれの原因も トレーサビリティを確保することが有効な対策になる それぞれの不具合に対してトレーサビリティ対策工数を見積もった 36

す 表 1 の見積り単位で 不具合ごとのトレーサビリティ対策工数を見積もった結果を表 14 に示 プロジェクト 2 における トレーサビリティ対策工数の合計は 563.25 時間となった 表 14 プロジェクト 2 トレーサビリティ対策工数 工程種別 設計書作成 トレーサビリティ対策工数 (H) 設計書コードコード作成レビューレビュー 対策工数合計 システム設計 77.00 87.00 44.00 32.00 240.00 基本設計 61.50 60.25 44.00 37.00 202.75 詳細設計 36.50 35.50 26.00 22.50 120.50 合計 175.00 182.75 114.00 91.50 563.25 このトレーサビリティ対策工数と設計要因による不具合対応工数の合計 (726.25 時間 ) との比較を図 33に示す 不具合対応工数 / 対策工数の比較 トレーサビリティ不具合対策工数対策工数 ( 予測予測 ) ドキュメント ソース レビュー 2222%% 削減 不具合対応工数 ( 実績 ) 解析 処置 レビュー 0 100 200 300 400 500 600 700 800 時間 (H) 図 33 プロジェクト 2 不具合対応工数とトレーサビリティ対策工数比 この結果から プロジェクト 2 では 22% の工数削減が期待できることになる 37

6.3プロジェクト 3 のデータ分析 6.3.1 プロジェクト 3 の不具合データプロジェクト 3 における不具合件数は 395 件で 不具合対応工数の合計は 1039 時間であった 発生要因で分類した場合の件数の割合 及び不具合対応工数の割合を図 34に示す 発生要因工程としては 今回の調査で対象とした設計工程を要因としている不具合の割合が多い システム設計 基本設計 詳細設計 の 3 つの工程を要因とする不具合は 合わせて全体の 67% を占めている 不具合対応工数で見ると 前述の 3 工程の割合が 合計で 88% となり 件数の割合に比較して大きくなっていることから 設計工程が要因の不具合は不具合対応工数が大きくなることを示している 不明 9% その他 4% 詳細設計 15% 製造 10% その他 2% 詳細設計 17% システム設計 10% 製造 20% システム設計 5% 基本設計 47% 基本設計 61% 発生要因 不具合対応工数 図 34 プロジェクト 3 不具合発生要因及び不具合対応工数 38

また これらの不具合が検出された工程を分析した結果を図 35に示す 上流工程で検出される割合が 6% と少なく 検査工程で検出される割合が 合計で 52% と半数以上を占めている また 他社や他プロジェクトなど外部からの指摘も 合計で 33% と大きな割合を占めている C 社指摘 13% 簡易スクリプト検査 0% 詳細設計 1% 仕様変更 6% 結合検査 2% 他プロジェクトからの情報 1% B 社指摘 6% 単体検査 43% A 社指摘 13% コードレビュー 3% 基本設計 4% システム設計 1% リリース前検査 7% 図 35 プロジェクト 3 不具合検出工程 これらの不具合のうち 設計要因の不具合件数は 265 件で その不具合対応工数の合計は 922.45 時間であった プロジェクト 3 における 設計要因の不具合対応工数の内訳を表 15に示す 表 15 プロジェクト 3 不具合対応工数の内訳 不具合対応工数 (H) 工程種別 解析時間 解析後レビュー 処置時間 処置後レビュー 確認時間 対応工数合計 システム設計 21.10 0.00 85.50 0.00 1.10 107.70 基本設計 279.00 0.00 334.20 0.00 19.80 633.00 詳細設計 80.60 0.00 91.10 0.00 10.05 181.75 小計 380.70 0.00 510.80 0.00 30.95 922.45 39

不具合件数を システム設計 基本設計 詳細設計 の3 工程で分類した結果 及びそれぞれの不具合対応工数の割合を図 36に示す システム設計については 不具合件数では 7% であるが 不具合対応工数では 12% となり 5% 増加している 基本設計及び詳細設計についてのそれぞれの割合を比較すると それぞれ 3% 2% と僅かではあるが減少している 詳細設計 22% システム設計 7% 詳細設計 20% システム設計 12% 基本設計 71% 基本設計 68% 不具合件数 不具合対応工数 図 36 プロジェクト 3 設計要因の不具合件数及び設計要因の不具合対応工数 40

次に 不具合ごとの不具合対応工数の分布を図 37に示す 不具合対応工数が 5 時間未満のものが約 79% と大半を占めている 工数の削減にはこの部分への対処が不可欠である また 不具合対応工数が 40 時間以上のものが 2 件あり いずれも設計誤りが原因であった この種の不具合は 発生すると対応により多くの工数を要すると考えられる 10~20H 未満 4.5% 20~30H 未満 1.5% 30~40H 未満 0.0% 50H~ 0.4% 40~50H 未満 0.4% 5~10H 未満 14.3% 0~5H 未満 78.9% 図 37 プロジェクト 3 不具合ごとの不具合対応工数 41

6.3.2 不具合原因の内訳と対策工数抽出した設計要因の不具合の原因を分析した結果を表 16に示す なお 一つの不具合が複数の原因に区分されることもあるため 表中の不具合件数の合計は実際の件数よりも多くなっている 表 16 プロジェクト 3 不具合の原因区分 工程種別 設計漏れ 設計誤り 検査漏れ 原因区分 ( 件 ) 検査仕様レビュー誤り不足 トレーサビリティビりティ 外部要因 不明 システム設計 1 11 - - 1 0-6 基本設計 16 123-4 21 3 19 18 詳細設計 18 27 - - 15 2 1 6 小計 35 161 0 4 37 5 20 30 また それぞれの割合を図 38 に示す 外部要因 7% トレーサビリティビりティ 2% レビュー不足 13% 検査仕様誤り 3% 検査漏れ 0% 不明 10% 設計漏れ 12% 設計誤り 55% 図 38 プロジェクト 3 不具合の原因区分比 設計漏れ 設計誤り レビュー不足 トレーサビリティ( 欠如 ) の 4 項目が合計で 82% と大半を占めている トレーサビリティを確保することで 上位及び下位の要件との関連付けが容易になり 記述の漏れや不整合を防止し レビューの質の向上が期待できるので いずれの原因も トレーサビリティを確保することが有効な対策になる それぞれの不具合に対してトレーサビリティ対策工数を見積もった 42

す 表 1 の見積り単位で 不具合ごとのトレーサビリティ対策工数を見積もった結果を表 17 に示 プロジェクト 3 における トレーサビリティ対策工数の合計は 516.5 時間となった 表 17 プロジェクト 3 トレーサビリティ対策工数 トレーサビリティ対策工数 (H) 工程種別 設計書作成 コード作成 設計書レビュー コードレビュー 対策工数合計 システム設計 9.50 11.00 6.50 5.50 32.50 基本設計 102.00 96.25 79.00 71.00 348.25 詳細設計 40.00 37.75 31.00 27.00 135.75 合計 151.50 145.00 116.50 103.50 516.50 このトレーサビリティ対策工数と設計要因による不具合対応工数の合計 (922.45 時間 ) との比較 を図 39 に示す 不具合対応工数 / 対策工数の比較 トレーサビリティ不具合対策工数対策工数予測 ) ( 予測 ) ドキュメント ソース レビュー 4444%% 削減 不具合対応工数 ( 実績 ) 解析 処置 レビュー 0 100 200 300 400 500 600 700 800 900 1000 時間 (H) 図 39 プロジェクト 3 不具合対応工数とトレーサビリティ対策工数比 この結果から プロジェクト 3 では 44% の工数削減が期待できることになる 43

6.4プロジェクト 4 のデータ分析 6.4.1 プロジェクト 4 の不具合データプロジェクト 4 における不具合件数は 272 件で 不具合対応工数の合計は 497 時間であった 発生要因で分類した場合の件数の割合 及び不具合対応工数の割合を図 40に示す 発生要因工程としては 今回の調査で対象とした設計工程を要因としている不具合の割合が多い システム設計 基本設計 詳細設計 の 3 つの工程を要因する不具合は 合わせて全体の 26.4% を占めている 不具合対応工数で見ると 前述の 3 工程の割合が 合計で 31% となり 件数の割合に比較して大きくなっていることから 設計工程が要因の不具合は不具合対応工数が大きくなることを示している その他 28% 詳細設計 21% 1 その他 20% 詳細設計 23% 検査ミス 12% 基本設計 0.4% システム設計 5% 検査ミス 8% 検査仕様 3% 基本設計 1% システム設計 7% 検査仕様 8% 製造 26% 製造 38% 発生要因 不具合対応工数 図 40 プロジェクト 4 不具合発生要因及び不具合対応工数 44

また これらの不具合が検出された工程を分析した結果を図 41に示す プロジェクト 4 については 上流工程で検出されている不具合はなく 検査工程で検出される割合が 合計で 99% とほぼ全件を占めている また 他社や他プロジェクトなど外部からの指摘も 1% とごくわずかになっている 総合検査 1% リリース前検査 1% 単体検査 7% A 社指摘 1% 仕様変更 0% 結合検査 90% 図 41 プロジェクト 4 不具合検出工程 これらの不具合のうち 設計要因の不具合件数は 72 件で その不具合対応工数の合計は 152.35 時間であった プロジェクト 4 における 設計要因の不具合対応工数の内訳を表 18に示す 表 18 プロジェクト 4 不具合対応工数の内訳 不具合対応工数 (H) 工程種別 解析時間 解析後レビュー 処置時間 処置後レビュー 確認時間 対応工数合計 システム設計 19.60 0.00 13.00 0.00 3.00 35.60 基本設計 0.50 0.00 3.00 0.00 0.00 3.50 詳細設計 70.25 0.00 28.75 0.00 14.25 113.25 小計 90.35 0.00 44.75 0.00 17.25 152.35 45

不具合件数を システム設計 基本設計 詳細設計 の 3 工程で分類した結果 及びそれぞれの不具合対応工数の割合を図 42に示す システム設計については 不具合件数では 19% であるが 不具合対応工数では 23% となり 4% 増加している 逆に詳細設計の割合は 80% から 75% と 5% 減少している システム設計 19% システム設計 23% 基本設計 1% 基本設計 2% 詳細設計 80% 詳細設計 75% 不具合件数 不具合対応工数 図 42 プロジェクト 4 設計要因の不具合件数及び設計要因の不具合対応工数 46

次に 不具合ごとの不具合対応工数の分布を図 43に示す 不具合対応工数が 5 時間未満のものが 91% と大半を占めている 工数の削減にはこの部分への対処が不可欠である なお このプロジェクトでは 不具合対応工数が 20 時間以上の不具合は存在しなかった 10~20H 未満 1% 5~10H 未満 8% 20~30H 未満 0% 30~40H 未満 0% 40~50H 未満 0% 50H~ 0% 0~5H 未満 91% 図 43 プロジェクト 4 不具合ごとの不具合対応工数 47

6.4.2 不具合原因の内訳と対策工数 抽出した設計要因の不具合の原因を分析した結果を表 19 に示す 表 19 プロジェクト 4 不具合の原因区分 工程種別 設計漏れ 設計誤り 検査漏れ 原因区分 ( 件 ) 検査仕様レビュー誤り不足 トレーサビリティビりティ 外部要因 不明 システム設計 1 5 - - 1-2 5 基本設計 - 1 - - - - - - 詳細設計 7 29 0 8 4 0 2 7 小計 8 35 0 8 5 0 4 12 また それぞれの割合を図 44 に示す 不明 17% 設計漏れ 11% 外部要因 6% トレーサビリティビりティ 0% レビュー不足 7% 検査仕様誤り 3% 検査漏れ 0% 設計誤り 48% 図 44 プロジェクト 4 不具合の原因区分比 設計漏れ 設計誤り レビュー不足 の 3 項目が合計で 66% と大半を占めている トレーサビリティを確保することで 上位及び下位の要件との関連付けが容易になり 記述の漏れや不整合を防止し レビューの質の向上が期待できるので いずれの原因も トレーサビリティを確保することが有効な対策になる それぞれの不具合に対してトレーサビリティ対策工数を見積もった 48

す 表 1 の見積り単位で 不具合ごとのトレーサビリティ対策工数を見積もった結果を表 20 に示 プロジェクト 4 における トレーサビリティ対策工数の合計は 137.75 時間となった 表 20 プロジェクト 4 トレーサビリティ対策工数 トレーサビリティ対策工数 (H) 工程種別 設計書作成 コード作成 設計書レビュー コードレビュー 対策工数合計 システム設計 6.00 6.50 3.50 3.00 19.00 基本設計 0.50 0.50 0.50 0.50 2.00 詳細設計 36.00 36.75 24.50 19.50 116.75 合計 42.50 43.75 28.50 23.00 137.75 このトレーサビリティ対策工数と設計要因による不具合対応工数の合計 (152.35 時間 ) との比較を図 45に示す 不具合対応工数 / 対策工数の比較 1100%% 削減 トレーサビリティ不具合対策工数対策工数予測 ( 予測 ) ドキュメント ソース レビュー 不具合対応工数 ( 実績 ) 解析 処置 レビュー 0 20 40 60 80 100 120 140 160 時間 (H) 図 45 プロジェクト 4 不具合対応工数とトレーサビリティ対策工数比 この結果から プロジェクト 4 では 10% の工数削減が期待できることになる 49

7. 調査結果における考察と評価 6. 実験における調査結果 の結果から トレーサビリティ確保の範囲と工数削減の効果につ いて考察する 7.1 トレーサビリティと工数削減 表 21 は 今回調査した不具合対応工数と その不具合を防止するためのトレーサビリティ対 策工数をまとめたものである この表の 不具合対応工数 は PRISMY 情報から抽出した 設計要因の不具合情報 1 件ごと の 解析時間 ~ 確認時間 を集計したものである 解析時間 確認時間 等の意味については 表 4を参照のこと トレーサビリティ対策工数 は その不具合情報を基に見積もったトレーサビリティを確保するため工数を表しており 工数差 は 不具合対応工数とトレーサビリティ対策工数との差を表している 人月は この工数差を 160 時間 / 人月で換算した値である また 人月累計 は 4. 適用レベルとトレーサビリティの範囲について で定義した 適用レベル L2/L3/L4 に従ってトレーサビリティの範囲が拡がることに伴う 工数の違いを表した値である 表 21 トレーサビリティの工数削減効果 プロジェクト 項目 L2 L3 L4 合計 不具合対応工数 (H) 57.25 296.10 199.00 552.35 トレーサビリティ 30.50 170.00 57.50 258.00 対策工数 (H) プロジェクト1 工数差 (H) 26.75 126.10 141.50 294.35 工数 ( 人月 ) 0.17 0.79 0.88 1.84 人月累計 ( 人月 ) 0.17 0.96 1.84 - 不具合対応工数 (H) 292.75 271.25 162.25 726.25 トレーサビリティ 240.00 202.75 120.50 563.25 対策工数 (H) プロジェクト2 工数差 (H) 52.75 68.50 41.75 163.00 工数 ( 人月 ) 0.33 0.43 0.26 1.02 人月累計 ( 人月 ) 0.33 0.76 1.02 - 不具合対応工数 (H) 107.70 633.00 181.75 922.45 トレーサビリティ 32.50 348.25 135.75 516.50 対策工数 (H) プロジェクト3 工数差 (H) 75.20 284.75 46.00 405.95 工数 ( 人月 ) 0.47 1.78 0.29 2.54 人月累計 ( 人月 ) 0.47 2.25 2.54 - 不具合対応工数 (H) 35.60 3.50 113.25 152.35 トレーサビリティ 19.00 2.00 116.75 137.75 対策工数 (H) プロジェクト4 工数差 (H) 16.60 1.50-3.50 14.60 工数 ( 人月 ) 0.10 0.01-0.02 0.09 人月累計 ( 人月 ) 0.10 0.11 0.09-50

表 21 の人月累計をグラフに表したのが 図 46 である 工程別人月累計 ( 人月 ) 0.00 0.50 1.00 1.50 2.00 2.50 3.00 L2 0.10 0.17 0.33 0.47 L3 0.11 0.76 0.96 2.25 L4 0.09 1.02 1.84 2.54 プロジェクト 1 プロジェクト 2 プロジェクト 3 プロジェクト 4 図 46 工程別人月累計 51

7.2 効果の検証図 46で示しているように プロジェクト 1~プロジェクト 3 については 工程の進行 ( トレーサビリティの範囲拡大 ) に従い工数差が拡大する傾向を示しており トレーサビリティの確保が コスト削減に有効であることを示している このような傾向になる事はあらかじめ予想していたが 実際の検証結果として これだけの工数 ( コスト ) 差があることが明確になった 各プロジェクトにおける工数削減率を表 22に示す 開発工数に対しての削減率は数 % であるが 不具合対応工数に対してはプロジェクト 1 で 53% プロジェクト 2 で 22% プロジェクト 3 で 44% に相当するため トレーサビリティ対応を開発当初から あらかじめ想定して入れておくことで 不具合の大幅な削減効果が期待できる プロジェクト 表 22 各プロジェクトにおける工数削減率 削減率 ( 対開発工数 ) 削減率 ( 対不具合対応工数 ) プロジェクト 1 2.3% 53% プロジェクト 2 1.5% 22% プロジェクト 3 4.1% 44% プロジェクト 4 0.08% 10% 一方 プロジェクト 4は L2 L3 での工数差が他のプロジェクトに比べて小さく L4 では工程差が逆転している これは プロジェクト 4 においては トレーサビリティ確保に対する工数削減効果が少ないことを示しており トレーサビリティに要する工数によっては コスト増になることを示している 次に プロジェクト 4 においてコスト削減効果が少ない / 無い要因を 4 つのプロジェクトの不具合情報から考察する 52

図 47はプロジェクトごとの不具合対応工数の分布を表したものである 不具合対応工数が 5 時間未満の不具合件数の割合が高いことは 4 つのプロジェクトが同じ傾向を示している しかし 図中の赤矢印の部分 ( 対策時間 5 時間以上 ) の件数は プロジェクト 1~ 3は 10 数件あるのに対し プロジェクト 4 では 1 件のみであった 不具合対応工数と分布 300 件数 ( 件 ) 250 200 150 100 50 11 5 01 13 76 10 2 10 41 118 12 40 1 38 209 61 0 65 50H~ 40~50H 未満 30~40H 未満 20~30H 未満 10~20H 未満 5~10H 未満 0~5H 未満 0 プロジェクト 1 派生 / 大規模 プロジェクト 2 派生 / 中規模 プロジェクト 3 派生 / 中規模 プロジェクト 4 派生 / 中規模 図 47 不具合対応工数と分布 一方 今回の調査で算出したトレーサビリティ対策工数は 3.3 トレーサビリティ対策工数の試算 で定義した算出式を使用し PRISMY 情報の処置ステップ数から算出したものであり この工数が 10 時間以上のものは全体で 14 件だけであった これは設計要因の全不具合件数のわずか 2% であり ほとんどのトレーサビリティ対策工数が 10 時間未満であることを示している したがって プロジェクト 4では 個々の不具合対応工数とトレーサビリティ対策工数の差が少ない状態であり しかも不具合対応工数が 5 時間以上の不具合件数も少なかったことにより トレーサビリティ対策工数との差が少なくなったといえる このようなプロジェクトでは トレーサビリティ対策工数が増加すると トレーサビリティを取っていない場合との工数差が逆転することも考えられる 53

7.3 適用レベルとトレーサビリティ範囲における評価結果 4. 適用レベルとトレーサビリティの範囲について で記載した 適用レベルと トレーサビリティ範囲についての 今回の調査結果を表 23に示す なお トレーサビリティなしの L0 については現状データのままなので 全 4 プロジェクトの評価は 0になる また 適用レベル L1 の項目については 4. 適用レベルとトレーサビリティの範囲について で述べたようにデータがないため 今回の調査の対象から除外する 表 23 評価結果 適用レベル プロジェクト区分 評価 ( 人月 ) プロジェクト 1 0 L0 プロジェクト 2 0 トレーサビリティ : 全くなし プロジェクト 3 0 プロジェクト 4 0 プロジェクト 1 対象外 L1 プロジェクト 2 対象外 要求仕様書 システム設計書 プロジェクト 3 対象外 プロジェクト 4 対象外 プロジェクト 1 0.17 L2 プロジェクト 2 0.33 要求仕様書 システム設計書 基本設計書 プロジェクト 3 0.47 プロジェクト 4 0.10 プロジェクト 1 0.96 L3 プロジェクト 2 0.76 要求仕様書 システム設計書 基本設計書プロジェクト 3 2.25 詳細設計書プロジェクト 4 0.11 プロジェクト 1 1.84 L4 プロジェクト 2 1.02 要求仕様書 システム設計書 基本設計書プロジェクト 3 2.54 詳細設計書 ソースコードプロジェクト 4 0.09 今回 選定した 4 つのプロジェクトのうち プロジェクト 4 のみは 適用レベルを L2 から L3 に上げた場合のコスト削減効果が少なく さらに L3 から L4 に上げるとコスト削減効果が減少することを示している 54

対応に 10 時間以上かかった不具合を多く含むプロジェクトは プログラムの複雑度が高いと想定される その結果としてトレーサビリティの複雑度が高くなることが想定される トレーサビリティの観点から考えれば トレーサビリティの複雑度を小さくするように成果物間の依存関係が成り立つようなプロジェクト管理を行うことで プログラムの複雑度が低くなり シンプルなプログラムを作成することが可能になることも想定できる 今回の調査では 不具合対応に 10 時間以上かかった不具合件数が多いプロジェクトの複雑度が高いと仮定し 工数削減効果との関係を表 24に示す 表 24 複雑度と工数削減効果 プロジェクト 不具合対応工数が 10 時間以上の不具合件数 工数削減効果 プロジェクト 1 19 53% プロジェクト 2 13 22% プロジェクト 3 18 44% プロジェクト 4 1 10% 今回の調査結果から 表 25 のようなことが推測できる 規模大規模中規模小規模 表 25 トレーサビリティの効果とプロジェクト属性 効果 複雑度 効果 大 中 小 今回の調査ではサンプル数が少なかったため 規模と複雑度の組合せについては推測することはできなかった また 今回の調査対象データは通信ソフトウェアのみだったため 選択肢は限定的であり 様々なパターンのプロジェクトのデータを網羅することはできなかった 分野に応じ 保証されるべき信頼性 安全性の範囲とコストとの関係を明らかにするには 対象とするソフトウェアの分野を拡げて さらに調査を行う必要があると考える また トレーサビリティの観点からトレーサビリティの複雑度の低減を図ることによりプログラムがよりシンプルになることも想定されるため 今回の実験とは異なる観点での調査も行う必要があると考える 55

8. トレーサビリティに関する管理レベルについて今回の調査では 設計工程から製造工程までのトレーサビリティのみに注目したが ソフトウェアの品質向上策としての有効活用を考えれば トレーサビリティに関する管理レベル ( 管理上の観点 ) について 考慮すべき点を挙げる 8.1トレーサビリティ自体の品質今回の調査では トレーサビリティの質については考慮していない しかし トレーサビリティを確保していても その精度 / 粒度などの品質が設計品質に影響することは明らかなので トレーサビリティの品質にも考慮が必要である 8.2トレーサビリティの保守継続的に開発されるソフトウェアの場合 トレーサビリティ情報の保守も重要になる 開発規模やトレーサビリティ管理方法によっては 専任の管理者が必要なケースなどが考えられる その場合のコストもあらかじめ考慮する必要がある 8.3トレーサビリティの管理方法トレーサビリティの有無やトレーサビリティの範囲以外に トレーサビリティの管理方法にも考慮が必要だと思われる 8.1 トレーサビリティ自体の品質 や 8.2 トレーサビリティの保守 にも関連するが 専用ツールの利用の有無やその機能等が品質に影響すると考える 8.4 検査工程とのトレーサビリティ 今回は対象外としたが 一般に 設計書と検査仕様書間のトレーサビリティも ソフトウェア品質 の評価では重要であり 今後 データ収集の対象とすることが望まれる 56

9. 参考文献 [1]SEC BOOKS 高信頼化ソフトウェアのための開発手法ガイドブック 独立行政法人情報処理推進機構ソフトウェア エンジニアリング センター編 [2]SEC BOOKS 組込みソフトウェア開発向け品質作り込みガイド 独立行政法人情報処理推進機構ソフトウェア エンジニアリング センター編 [3]SEC BOOKS ソフトウェア開発データ白書 2010-2011 独立行政法人情報処理推進機構ソフトウェア エンジニアリング センター編 [4] ソフトウェア品質説明力強化のための制度フレームワークに関する提案 ( 中間報告 )(2011 年 9 月 30 日公開 ) 独立行政法人情報処理推進機構ソフトウェア エンジニアリング センター編 57

10. Appendix 10.1 トレーサビリティの方法 例 設計書間のトレーサビリティを確保する方法は 要件管理ツールを導入することも 1 つの選択肢であり 早期効果が期待できる しかし コストや習熟時間の問題 または対応可能なファイル形式に制限がある場合もある ここでは Excel や MS Office の機能を使用してトレーサビリティを確保する例を示す 要求仕様 システム設計書 簡易で判りやすい表示 基本設計書詳細設計書ソースコード 明るい色を使用する アイコンを使用する 単体検査仕様書明度 : 以上輝度 : 以上アイコンサイズ : 以上 結合検査仕様書 システム検査仕様書 高齢者でも使い易い 老眼でも見やすい表示 明るい色を使用する 大きな文字を使用する 明度 : 以上輝度 : 以上フォント : 以上 : 図 48 トレーサビリティマトリクスの例 図 48のトレーサビリティマトリクスは 左端に基となる要件を記述し その右側に各工程において要件に対応する内容を記述する 例えば 基本設計書の作成の際は 基本設計書の作成の進行に伴って参照したシステム設計書の項目の隣に対応する内容を埋めていく これにより 基本設計書が完成した際には 要求仕様から基本設計書までのトレーサビリティが確保されていることになる この作業を各工程で繰り返すことにより 要求仕様からシステム検査仕様書までのトレーサビリティが確保できる なお この表の作成は各設計書の作成と同時並行で行うことに意味がある 設計書完成後に改めてこの表を作成しようとすると 作成した設計書をもう一度見直すことになり 設計書作成と同程度の工数が必要になることが考えられる 58

メリットデメリット表 26 トレーサビリティマトリクスのメリット / デメリット 1 各設計書の記述内容がひと目で比較 / 確認ができるので 不適切な記述や矛盾を容易に発見することができる 2 表中の空欄は仕様や検査項目の漏れを表しているので 仕様のカバレッジの確認を簡単に行うことができる 1 各工程で作成する設計書の内容をコピーして作成する表なので 元の設計書に変更が発生した場合 この表も必ず修正する必要がある 2 設計書の関係が 1 対 1 のときはシンプルで分かりやすい表であるが 1 対多になった場合は関係が分かり難くなることが考えられる 一方 図 48のようなトレーサビリティマトリクスの作成 / 管理を 各設計書や仕様書の作成と並行して行うのは 限られたスケジュールの中では困難な場合も想定される 改めてトレーサビリティマトリクスを作成せずに Word または Excel で作成した設計書に工夫を加えて トレーサビリティを確保する方法の一例を挙げる 59

Word の場合 図 49 の通りコメント機能を使用して関連付け情報を設計書に埋め込む方法がある コメント機能であれば コメントを非表示にすることで成果物としての設計書の体裁に影響することもない 作成する設計書において 基本的に各行にコメント欄を挿入し ここに関連している上位設計書のコメント番号を記入する このコメント番号を辿ることでトレーサビリティが確認できるようになる 図 49 Word でのトレーサビリティ情報の付加例 60

メリットデメリットExcel の場合は 関連付け情報の列 ( 図 50の赤枠 ) を追加する ここに関連している上位設計書の行番号を記入する また 単純に行番号だけでは 混乱することも考えられるので 要求仕様書であれば 例えば UR を接頭語として UR-1 ( 要求仕様書の1 行目 ) などとするとより明確になる その列を非表示にすることで 成果物としての体裁に影響が出ることはない 図 50 Excel でのトレーサビリティ情報の付加例 表 27 Word Excel 使用のメリット / デメリット 1 レーサビリティ情報のために別ファイルを用意する必要がない 2 本文の変更に合わせて 別のファイルのトレーサビリティ情報をメンテナンスする必要がない 1 トレーサビリティ全体を見渡すのが難しい 2 関連先の内容を確認する際は 関連先のファイルを別途開く必要がある 以上 61