機能規模測定手法 COSMIC 法を用いた画面生産性の分析事例

機能規模測定手法 COSMIC 法を用いた画面生産性の分析事例
藤井 拓†, 細川 亮二††, 木村めぐみ†
本論文では, 1 つのプロジェクト内での画面毎の
1. はじめに
生産性(画面生産性)を機能規模測定手法COSMIC
従来からソフトウェア開発プロセスの改善を行
法[1]の測定値に基づいて求める方法を説明する.
うために, 以下のような測定が行われてきた.
さらに,
A)
開発工程にレビュー作業を組み込み, その
分析するために用いた作業の分類方法について報
レビュー回数, 指摘件数とテスト段階で検
告する.
画面生産性のバラつきを生んだ要因を
出した欠陥数とを測定し, これらのデータ
から欠陥を効果的に予防できるように開発
プロセスを改善する
B)
2. 開発生産性と規模
開発生産性は,
一般的に開発対象のソフトウェ
開発終了時点のコード行数, 労力, 欠陥数
アの規模と開発に要した労力より以下のように求
を測定し,
めることができる.
それらから開発生産性や欠陥密
度を求める
開発生産性 ൌ
A)は, ウォーターフォール型の開発ライフサイク
規模
実績労力
ルに基づく標準的な開発プロセスが用いられ, ド
この式の「規模」としては, ソースファイルのコ
メインや技術にも共通性があるような開発組織に
ード行数の測定値を使うことも COSMIC 法のような
おいて用いられていることが多い. その一方で,
開発途上で要求の追加や変更が多く発生したり,
顧客によってドメイン, 開発プロセス, 技術がマ
チマチな受託開発では, A)のような測定や改善を
行う事が難しい.
B)は, 開発プロセスの違いによらず測定できる.
機能規模測定手法の測定値を使うこともできる.
本論文では, 前者をコード規模, 後者を機能規模
と呼ぶ.
COSMIC法は, ファクションポイント(IFPUG)
法[2]と並んでISO標準およびJIS標準になってい
る機能規模測定手法である. COSMIC法では, 以下
の 2 つの境界を出入りするデータの種類を数える
しかし, 開発終了時点でプロジェクト全体の開発
ことで機能規模を定量化する.
生産性や欠陥密度などを測定しても, その結果か
z
システムと外界との境界
ら個別の開発作業が効果的に行われたかという点
z
システムと永続ストレージとの境界
や, 要求の追加/変更が開発生産性にどのような
IFPUG 法と比べて, COSMIC 法が魅力的な点は以下
影響を及ぼしたかという点などを読み取ることは
のとおりである.
困難である. そのため, 測定結果からプロセスを
z
測定方法が比較的シンプルである
改善するためのヒントを得ることは困難である.
z
測定マニュアルやガイドラインが一般に公
これら従来の測定や分析が難しい原因の 1 つは,
ライフサイクルや適用する技術等の生産性や品質
に影響を与える因子が異なるプロジェクトの間で
比較を行おうとしている点にあると考えられる.
開されている
一方, COSMIC 法の弱い点は以下の点である.
z
測定手法としての普及度が日本では低い
z
ビジネス分野での測定実績や評価が日本で
は少ない
ライフサイクルや適用する技術等の前提が同じ 1
著者らは, COSMIC 法の長所に注目し, ビジネス系
つのプロジェクトに限定すれば, プロジェクト内
ソフトウェアの機能規模測定での有効性を明らか
の生産性や欠陥密度のバラつきに影響を与える因
にするために自社の開発プロジェクトにおいて
子も限定される. そのため, それらの因子と生産
COSMIC 法を適用している.
性や欠陥密度との因果関係が明らかになる可能性
がある.
機能規模を用いて開発生産性を求める場合とコ
ード規模を用いて開発生産性を求める場合とを比
べると, 両者には表 1 で示されるような長所と短
† (株)オージス総研 技術部ソフトウェア工学センター
††(株)オージス総研ソリューション開発本部 BS3 部
所がある.
表1
開発生産性を求める 2 つの方法の比較
長所
z
z
手動測定が必要
z
設計/実装構造によって開発
z
コード行数が測れないものは
発生産性の評価が可能
機能規模を用いる場
合
短所
設計/実装構造によらない開
z
コード行数が測れないものも
z
測定の自動化が可能
開発生産性が求まる
コード規模を用いる
生産性が変わる
場合
開発生産性が求まらない
著者らは, 機能規模を用いる場合の長所 2 点が魅
非 UI 部分の作業難易度や負荷」の 2 つの因子に注
力的だと考え, 本研究では機能規模を用いた開発
目した. UI はモデル-ビュー-コントローラー(MVC)
生産性の定量化を行った.
のビュー部分の機能, 非 UI はモデル及びコントロ
ーラー部分の機能に対応する. そのため, 開発作
3. 画面生産性と作業の分類
業を表 2 に示されるような大分類と中分類で分類
して実績労力を記録した.
同一プロジェクト内での開発生産性のバラつき
この表の大分類は前
を定量化する方法としては, 以下の式で求まるよ
述した A), B), C)の 3 分類に対応し, 中分類は作
うな画面生産性を考えることができる.
業対象により UI, 非 UI, どちらでもないの 3 種類
画面生産性画面 ൌ
機能規模画面
に分類している.
実績労力画面
いる.
中分類の「どちらでもない」は
UI と非 UI のどちらかに帰属できない作業を表して
ここで機能規模 画面 , 実績労力 画面 は各々画面単位
の機能規模の測定値, 画面単位の実績作業労力を
表す. 実際の開発作業では, 以下のような 3 種類
の開発作業が発生する.
A)
画面固有の機能の設計, 実装, テスト作業
B)
画面共通の機能の設計, 実装, テスト作業
C)
プロジェクト管理等の特定の機能を対象と
しない作業
画面生産性の算出においては A)の実績労力だけを
用いる. プロジェクト全体の開発生産性は, 画面
毎の機能規模の総和と上記 A), B), C)の合計であ
る実績労力から求める. B),C)の実績労力を除外し
ているため, 画面生産性の値はプロジェクト全体
の開発生産性よりも高めの値となる.
4. 最後に
ワークショップでは, 本論文で提案した画面生
産性と作業労力の分類を適用の結果を示し, 分析
方法の有効性について議論したいと考えている。
参考文献
[1]
COSMIC 法 ver3.0
測 定 マ ニ ュ ア
ル , http://www.jfpug.gr.jp/cosmic/CFFP-ind
ex.html
[2]
デービット・ガーマス他, ファクションポイ
ントの計測と分析, ピアソン・エデュケーショ
本研究では画面生産性のバラつきに影響する因
ン, 2002
子として, 「画面間の共通機能の括りだし」と「UI/
表 2 作業労力の分類
中分類
画面固有
大
分
画面共通
類
プロジェ
クト共通
z
z
UI
詳細設計(UI)
実装・単体テスト
(UI)
z
z
z
z
非 UI
詳細設計(非 UI)
実装・単体テスト
(非 UI)
詳細設計(非 UI)
実装・単体テスト
(非 UI)
z
どちらでもない
設計
z
設計
z
z
設計
プロジェクト管
理