「演習で学ぶソフトウェアメ
トリクスの基礎」勉強会
第 6 章 工数の見積もり
6.2.4 ~ 6.2.4.4
P.2
6.2.4 プロキシポイント見積もり手法
プロキシポイント見積もり手法とは
システムの外部特性に基づいてプロジェクトの規模
を決定する。
規模のプロキシ(代理)として利用できる特性を用
いる。
プロキシポイント ⇔ プロジェクト規模とシステム構築工数
主要なプロキシポイント手法
ファンクションポイント法
オブジェクトポイント法
ユースケースに基づく見積もり手法
6.2.4.1 工数見積もりのメタモデル
工数見積もりの手順概要
1.
KLOC 、 FP 、またはその他の「プロキシポイント」メト
リクスを用いて規模を見積もる 【プロジェクト規模】
2.
「複雑性」要因または「困難性」要因に基づき見積もりを
調整する 【プロジェクトの複雑さ】
例えば、セキュリティ、アルゴリズムの複雑さ、信頼性要求
、通信要求、品質保証要求など
3.
生産性要因として、 FP/ 人月などの生産性データで工数
を見積もる 【生産性】
工数見積もり
生産性
プロジェクトの複雑さ
プロジェクト規模
P.4
6.2.4.2 ファンクションポイント法
FP を工数、開発期間、スケジュールに変換
する方法として
FP を、ベンチマークデータまたはアルゴリズム
ツール( COCOMO など)にそのまま適用
FP を LOC に変換し、ベンチマークデータまたは
LOC に基づくアルゴリズムツールを用いる
経験則を適用する
IFPUG のファンクションポイント法
・入力、出力、外部 I/F 、データファイル、照会に分解
・各構成要素の複雑度を評価(容易/普通/複雑)
・各構成要素の複雑度に基づいてファンクションポイントを決める
6.2.4.2 ファンクションポイント法
ファンクションポイントの経験則
プロジェクト期間:プロジェクトの長さは FP の D 乗に等しい。 D
の範囲は 0.32 ~ 0.5
要員数:新規開発プロジェクトの要員数は、 FP を 150 で割った値
に等しい。保守プロジェクトの要員数は 750 で割った値に等しい
工数:プロジェクトに必要な工数は、要員数に開発期間を掛けた
値に等しい
フィーチャの増加:ユーザー要求の数は、設計からコーディング
までの間は 1 カ月あたり 1 ~ 5% の比率で増加する。この数値は開
発方法論によって異なるが、平均は 2%
プロジェクトタイプ D の推奨値
軍事 0.45
平均 0.4
単純 0.32
大規模 Web 0.32 小規模 Web 0.5
P.6
6.2.4.2 ファンクションポイント法
COSMIC ファンクションポイント法
COSMIC-FFP(Full Function Point) 法
国際規格 ISO/IEC 19761:2003
IFPUG 法の欠点のいくつかを補った測定手法
複数の測定視点という概念を取り入れている( IFP
UG 法ではエンドユーザー視点のみ)
主要アクティビティは「データ移動」
Entry :利用者→機能プロセスの内側
Exit :機能プロセスの内側→利用者
Read :記憶域→システム
Write :システム→記憶域
6.2.4.3 オブジェクトポイント法
オブジェクトポイント法
4GL やそれに類する技術が利用されている場合に FP 法に代えて利用で きる手法。オブジェクトとは、画面、レポート開発に必要な 3GL モジ ュールを指す
1GL:機械語
2GL:NASM,SIF,gasなどのアセンブリ言語
3GL:C言語、 FORTRAN など
4GL:SQLのような自然言語に類似した命令文を含むもの
5GL:Visual Basicなど視覚化ツールを含むもの
オブジェクトポイントによる見積もり概要
1. 各オブジェクトの複雑度を数値による重みづけで表現する(この重み の値がオブジェクトポイント)
2. オブジェクトポイントの合計( OP )は、個々のオブジェクトポイント の合計で求める
3. 新規オブジェクトポイント合計( NOP )は、再利用比率を考慮して計 算する。 NOP=OP*(1- 再利用比率)
4. 環境要因とプログラマ生産性の逆数をかけることにより工数(人月)を 求める
環境要因:名目値 1 。名目値からの差異比率に基づいて調整
生産性:名目値 13NOP/ 人月。 4 ~ 50
P.8
6.2.4.3 オブジェクトポイント法
含まれるセクショ
ン数 データテーブル数およびデータソースの合計 4未満 4以上 7 以下 7より大きい
2未満 単純 単純 中程度
2以上 3 以下 単純 中程度 困難
3より大きい 中程度 困難 困難
オブジェクトポイントの複雑度 - レポート 含まれるビューの
数 データテーブル数およびデータソースの合計 4未満 4以上 7 以下 7より大きい
3未満 単純 単純 中程度
3以上 7 以下 単純 中程度 困難
7より大きい 中程度 困難 困難
オブジェクトポイントの複雑度 - 画面
オブジェクト型 単純 中程度 困難
画面 1 2 3
レポート 2 5 8
3GLコンポーネン ト
10 10 10
オブジェクトポイントの重み
6.2.4.4 ユースケースに基づく見積もり手法
ユースケースを見積もりに取り入れた代表的
な手法やアプローチ
ユースケースを FP 分析( FPA )に利用する
ユースケースを LOC 見積もりに利用する
ユースケースポイント法
(次ページにて)
ユースケース 要求 FPA
(容易)
P.10
6.2.4.4 ユースケースに基づく見積もり手法
ユースケースポイント法
1. それぞれのアクターを、単純 / 平均的 / 複雑に分類し、種別毎に数え る。それぞれの小計に重みを掛け、積を合計して未調整アクター重み
( UAW )を算出
2. それぞれのユースケースを、単純 / 平均的 / 複雑に分類し種別毎に数 える。それぞれの小計に重みを掛け、積を合計して未調整ユースケー ス重み( UUCW) を算出
3. 未調整ユースケースポイント( UUCP=UAW 合計 +UUCW 合計)の合計を 求める
4. 重み付きの技術複雑性要因および環境要因の値を計算。それぞれの要 因に対して、プロジェクト複雑度を 0 ~ 5 までの範囲で割り当てる。 この値に重みを掛けて、各要因の重み付け値を得る
5. 技術複雑性要因の重み付き値を合計して T 要因を求め、技術複雑性係 数( TCF) を計算。 TCF=0.6+0.01*T 要因
6. 環境要因の重み付き値を合計して E 要因を求め、環境係数( EF )を 計算。 EF=1.4-(0.03*E要因 )
7. 調整済ユースケースポイント( AUCP )を計算。 AUCP=UUCP*TCF*EF
8. 見積もり工数 =AUCP* ユースケース生産性、により工数を見積もる
カーナーはユースケース生産性として 20 人時 /UCP という数値を示す
シュナイダーとウィンタースは環境係数で生産性を修正することを推奨
6.2.4.4 ユースケースに基づく見積もり手法
分類 アクターの説明 重み
単純 APIが十分に定義されている 1
平均的 TCP/IP 、 HTTP 、 FTP 等のプロトコル、またはデータス トア
2
複雑 GUIインターフェース、または人間とのインターフェー ス
3
未調整アクター重み( Unadjusted Actor Weight, UAW)
分類 ユースケースの説明 重み
単純 トランザクション数が 4 未満 5
平均的 トランザクション数が 4 以上 7 以下 10 複雑 トランザクション数が 7 より大きい 15 未調整ユースケース重み( Unadjusted Use Case Weight, UUCW)
P.12
6.2.4.4 ユースケースに基づく見積もり手法
要因 説明 重み
T1 分散システム 2
T2 応答時間またはパフォーマンス重視 2
T3 エンドユーザー効率性 1
T4 複雑な内部処理 1
T5 再利用可能なコード 1
T6 インストール容易性 0.5
T7 使い易さ 0.5
T8 可搬性 2
T9 変更容易性 1
T10 並行性 1
T11 セキュリティ重視 1
T12 第三者へのアクセス提供 1
T13 特別なユーザー訓練設備の必要性 1 技術複雑性要因( Technical Complexity Factors, TCFs )
6.2.4.4 ユースケースに基づく見積もり手法
要因 説明 重み
E1 プロジェクトへの精通度 1.5
E2 アプリケーション経験 0.5
E3 オブジェクト指向経験 1
E4 主任分析者の能力 0.5
E5 モチベーション 1
E6 要求の安定性 2
E7 パートタイム作業者 -1
E8 プログラミング言語の難しさ -1 環境要因( Environmental Factors, EFs )
P.14
6.2.4.4 ユースケースに基づく見積もり手法
ユースケースポイント法の有効性
UCP 法で重大な課題
ユースケースによる詳細レベルのばらつき
ユースケースの詳細レベルは、 5KLOC のシステムと 500KLOC のシ ステムとでは全く異なる
ユースケースの複雑さのばらつき
単純なユースケースから複雑なユースケースがある
UCP 法に対する筆者の考え
利用が簡単で、素早く、分かりやすい
調整することにより有効性が高まる
ユースケースの規模と詳細度は、組織内で標準化されなければ
ならない
ユースケースの複雑度分類規則は、トランザクションの複雑度
に基づいて調整する必要がある