| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
ページの作成:「==ファンクションポイント(Function Point)== *以下の本からのメモです。詳細は以下の書籍を確認してください。 {{amazon|4822281442}}…」
==ファンクションポイント(Function Point)==
*以下の本からのメモです。詳細は以下の書籍を確認してください。
{{amazon|4822281442}}
*[http://typea-service.appspot.com/fp オンラインから利用するフリーのファンクションポイント計算ツール]
*[http://typea-service.appspot.com/cocomo オンラインから利用するフリーのCOCOMOによる工数計算ツール]


===計測ツール===
*[http://typea-service.appspot.com/fp オンラインから利用するフリーのファンクションポイント計算ツール(謹製)]

===計測の手順===
#計測タイプの決定
#計測範囲の決定、アプリケーション境界の決定
#データファンクション計測
#トランザクショナルファンクション計測
#未調整ファンクションポイント計算
#調整係数計算
#調整済ファンクションポイント計算
[[File:0008_funcpoint01.jpg]]

===計測タイプの決定===
====3つの計測タイプ====
*システム開発ライフサイクルの様々な場面に対応できるように、以下のタイプが定義されている。
{|class="wikitable"
!タイプ
!概要
|-
|新規開発FP計測(Development Project FP Counting)
|ソフトウェアを新規導入時に適用
|-
|機能拡張FP計測(Enhancement Project FP Counting)
|既存のアプリケーションに対して、機能の追加/変更/削除により変更される部分の計測
|-
|アプリケーションFP計測(Application FP Counting)
|導入済みソフトウェアのFP値
|-
|}
===計測範囲の決定、アプリケーション境界の決定===
*何をどこまで計測するのかを事前に決めておく。
**計測範囲(Counting Scope)
**アプリケーション境界(Application Boundary)
====計測範囲(Counting Scope)====
*計測するシステムにどのような機能があるかを見極める
*ユーザーの視点が重要であり、機能はユーザーにより理解され、了解を得られたもの

====アプリケーション境界(Application Boundary)====
*計測するシステムに存在する様々な機能を、アプリケーションというFP値算出単位でグループ化
*機能を分けることで、システムに対する変更時に、より正確にユーザー視点のFP計測を行うことができる
<blockquote>アプリケーションの内部で完結するものは、機能としてカウントしない。計測結果に影響を与えるため、境界の決定は慎重に行う必要がある。</blockquote>

====要素処理(elementary process)====
*アプリケーションの機能は要素処理として扱われる
<blockquote>ユーザーにとって意味のある最小のアクティビティであり、自己完結しており、計測するアプリケーションの業務を矛盾のない状態にするものである必要がある。</blockquote>

===データファンクション計測===
====ファイル分類、計測指標、複雑度====
*計測対象のアプリケーションがアクセスするファイル
=====ファイルの分類=====

{|class="wikitable"
!ファイル
!概要
|-
|内部論理ファイル(Internal Logical File: ILF)
|当該アプリケーションの操作対象
|-
|外部インターフェースファイル(External Interface File: EIF)
|当該アプリケーションにより参照(操作はできない)
|-
|}

=====ファイル計測指標=====
*ファイルに含まれる項目(フィールド)の数を以下の基準で数え上げ、複雑度を求める
{|class="wikitable"
!指標
!
|-
|データエレメントタイプ(Data Element Type: DET)
|ILFやEIFのユニークで繰り返しを含まないユーザーが識別可能なデータ項目
|-
|レコードエレメントタイプ(Record Element Type: RET)
|ILFやEIFに含まれるユーザー視点で見たデータのグループで、データ項目を構成する下位のデータグループ(サブグループ)
|-
|}

=====ファイルの複雑度=====
*DETとRETを求めることができると、複雑度を求めることができる。
*Low、Average、High の 3 段階評価。
{|class="wikitable"
!
!1 - 19 DET
!20 - 50 DET
!51以上 DET
|-
|1 RET
|Low
|Low
|Average
|-
|2 - 5 RET
|Low
|Average
|High
|-
|6以上 RET
|Average
|High
|High
|-
|}

=====FP値の計測=====
{|class="wikitable"
!
!Low
!Average
!High
|-
|ILF
|7
|10
|15
|-
|EIF
|5
|7
|10
|-
|}
====計測手順====
#アプリケーションがアクセスするファイルを抽出
#ファイルを ILF、EIF に区別
#データエレメントタイプ(DET)、レコードエレメントタイプ(RET)を算出
#複雑度を求める
#複雑度からFP値を求める

===トランザクショナルファンクション計測===
*アプリケーション境界ごとに要素処理の機能を計測
====要素処理の区分、データエレメントタイプとファイルタイプリファレンス====
=====要素処理の区分=====
{|class="wikitable"
!区分
!概要
|-
|EI(外部入力)
|アプリケーション境界の外部から入力されるデータや、制御情報の処理を行う。主目的は1つ以上のILFを維持管理するかシステムの動作変更を行うこと。
|-
|EO(外部出力)
|データの制御情報をアプリケーション境界外部へ出力。主目的は、制御情報を処理ロジックを通じてユーザーに提供する。処理ロジックは、算術式、計算、派生データ生成のいずれかを含む必要がある。
|-
|EQ(外部照会)
|データや制御情報をアプリケーション境界外部へ出力する。主目的は、データや制御情報をILFやEIFから検索しユーザーに提供すること。処理ロジックは、算術式、計算、派生データの生成のいずれも含んではいけない。ILFの維持管理や、システムの動作変更を行ってはいけない。
|-
|}
=====EI、EO、EQの違い=====

{|class="wikitable"
!処理
!EI
!EO
!EQ
|-
|データ入力受付
|必須
|あってもよい
|あってもよい
|-
|データ加工発生
|あってもよい
|いずれか必須
|存在不可
|-
|システムの動作変更
|いずれか必須
|いずれか必須
|存在不可
|-
|1つ以上のILFを維持管理
|いずれか必須
|いずれか必須
|存在不可
|-
|ユーザーに情報提供
|あってもよい
|必須
|必須
|-
|}

=====データエレメントタイプとファイルタイプリファレンス=====
*要素処理を計測するために指標として、データエレメントタイプ(Data Element Type: DET) と ファイルタイプリファレンス(File Type Reference: FTR)がある。
*この2つの指標の数を数え、複雑度を求め、FP値を求める。

{|class="wikitable"
!指標
!概要
|-
|データエレメントタイプ
|ユーザーが認識でき、繰り返しのないユニークなデータ項目
|-
|ファイルタイプリファレンス
|トランザクションファンクションにより読み込まれるか維持管理されるILF。または、トランザクションファンクションにより読み込まれるEIF
|-
|}
====ファイルの複雑度====
*Low、Average、Highの3段階評価
=====EI において、DET と FTR から複雑度を求める=====
{|class="wikitable"
!
!1 - 4 DET
!5 - 15 DET
! 16以上DET
|-
|0 - 1 FTR
|Low
|Low
|Average
|-
|2 FTR
|Low
|Average
|High
|-
|3以上FTR
|Average
|High
|High
|-
|}

=====EO、EQ において、DET と FTR から複雑度を求める=====
{|class="wikitable"
!
!1 - 5 DET
!6 - 19 DET
! 20以上DET
|-
|0 - 1 FTR
|Low
|Low
|Average
|-
|2 - 3 FTR
|Low
|Average
|High
|-
|4以上FTR
|Average
|High
|High
|-
|}

====複雑度から FP値を求める====
{|class="wikitable"
!
!Low
!Average
!High
|-
|EI
|3
|4
|6
|-
|EO
|4
|5
|7
|-
|EQ
|3
|4
|6
|-
|}
====計測手順====
#アプリケーションに存在する要素処理を抽出
#要素処理を EI、EO、EQ のいずれかに区分
#要素処理のデータエレメントタイプとファイルタイプリファレンスを数える
#要素処理の複雑度を求める

===未調整ファンクションポイントの計算===
*これまでで、アプリケーションごとにファイルのFP値と要素処理のFP値が算出された。
*これらすべてのFP値を合計した値を、未調整FP値と呼ぶ
*以下のような表にまとめると整理しやすい。
[[File:0009_funcpoint02.jpg]]

===調整係数の計算===
====調整係数(VAF: Value Adjustment Factor)====
*未調整FP値を調整するための係数を求める。
*システムに関するGSCという14項目の特徴を評価する。
*GSCの各項目は 0 - 5の範囲で評価し、この評価点をDI(Degree Of Influence)という。
*14項目のすべてのDIを合計したものを TDI(Total Degree Of Influence)という。
*TDIは 0 - 70の値を持ち、以下の式にて算出

VAF = (TDI * 0.01) + 0.65

*この式によって得られるVAFは、0.65 - 1.35の値を持ち、±35%の影響を未調整FP値に与える。

====14項目のGSC====
=====Data Communications(データ通信)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|バッチ処理のみ、またはスタンドアロン
|-
|1
|バッチ処理だが、リモートでのデータ入力またはリモートでの印刷
|-
|2
|バッチ処理だが、リモートのデータ入力およびリモートでの印刷両方
|-
|3
|オンラインでデータ収集するか、バッチ処理のためのTP(遠隔操作)フロントエンド
|-
|4
|フロントエンド以上の通信機能を持つが、1種類のTP通信プロトコルのみサポート
|-
|5
|フロントエンド以上の通信機能を持つが、複数種類のTP通信プロトコルをサポート
|-
|}

=====Distributed Data Processing(分散処理)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|システム構成要素間でのデータ転送、データ処理機能に関与しない
|-
|1
|PCの表計算やDBMSなどの構成要素でエンドユーザーコンピューティング(EUC)向けのデータを準備
|-
|2
|エンドユーザーコンピューティング(EUC)のためではなく、データが転送のために準備され、システムのほかの構成要素に転送、処理される
|-
|3
|一方向のみのオンラインでの分散処理とデータ転送あり
|-
|4
|双方向でのオンラインでの分散処理とデータ転送あり
|-
|5
|データ処理がシステムの最適な構成要素上で動的に実行
|-
|}
=====Performance (性能)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|性能に対する特別な要求はない
|-
|1
|性能条件と設計について要求が明言され、レビュー実施されるも、対応要求なし
|-
|2
|レスポンスタイムまたはスループットがピーク時に厳しい状況だが、CPU使用率に対する設計上の特別な配慮は不要。処理の期限は翌営業日
|-
|3
|レスポンスタイムまたはスループットが全業務時間中厳しい状況となるが、CPU使用に対する設計上の特別な配慮は不要。インターフェースをとっているシステムによって、処理の期限に制限あり
|-
|4
|3に加え、ユーザーの指定した性能要件が厳しいため、設計段階で性能分析が必要
|-
|5
|4に加え、ユーザーの指定した性能要件を満たすため、設計、開発、導入の段階で性能分析ツールを使用する必要がある
|-
|}

=====Heavily Used Configuration (高負荷構成)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|運用上の制約は明示されておらず、暗黙的にもない
|-
|1
|運用上の制約はあるが、通常よりも厳しくなく、特別の配慮は不要
|-
|2
|セキュリティまたはタイミング上の配慮が必要
|-
|3
|アプリケーションの特定部分に対して、特別なプロセッサ要件がある
|-
|4
|指定された運用上の制約によって、セントラルプロセッサまたは専用プロセッサに関して特別の制約が必要
|-
|5
|4に加えて、システムの分散構成要素に関してアプリケーションに特別な制約が必要
|-
|}
=====Transaction Rate (トランザクション量)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|トランザクションのピーク期間はないと予測
|-
|1
|トランザクションのピーク期間は、毎月、四半期、季節ごと、年に一回程度に予想
|-
|2
|毎週トランザクションのピークがあると予想
|-
|3
|毎日トランザクションのピークがあると予想
|-
|4
|アプリケーションに対するユーザー要求、サービス契約の面でユーザーから高いトランザクション処理率が要求されるため、設計段階で性能分析作業が必要
|-
|5
|4に加えて、設計、開発、導入の段階で性能分析ツールを使用する必要がある
|-
|}

=====Online Data Entry (オンライン入力)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|すべてのトランザクションがバッチモードで処理
|-
|1
|トランザクションの1~7%がオンライン画面経由で入力
|-
|2
|トランザクションの8~15%がオンライン画面経由で入力
|-
|3
|トランザクションの16~23%がオンライン画面経由で入力
|-
|4
|トランザクションの24~30%がオンライン画面経由で入力
|-
|5
|トランザクションの30%以上がオンライン画面経由で入力
|-
|}

=====End-User Efficiency (エンドユーザー効率)=====
*次のような機能
**メニュー、オンラインヘルプ、オンラインドキュメント、カーソル移動の自動化、スクロール、オンライントランザクションによる遠隔印刷、ファンクションキーの事前割当、オンライントランザクションからのバッチジョブ起動、画面上のデータのカーソルによる選択、反転表示、ハイライト表示、カラーアンダーライン表示およびその他の表示機能の多用、オンライントランザクションのユーザードキュメンテーションのハードコピー、マウスインターフェース、ポップアップウィンドウ、必要最小限の画面による業務機能の実現、二ヶ国語サポート(4項目としてカウント)、多言語サポート(6項目としてカウント)
{|class="wikitable"
!評価点
!説明
|-
|0
|機能のいずれも実現していない
|-
|1
|機能の1~3項目を実現
|-
|2
|機能の4~5項目を実現
|-
|3
|機能の6項目以上を実現。しかし操作効率についてユーザーからの要求は特にない
|-
|4
|機能の6項目以上を実現。さらに操作効率に対するユーザー要求が厳しいため、ヒューマンファクターに対する設計作業が必要である
|-
|5
|4に加えて専用のツールおよび処理を用いて目的が達成されたことを証明する必要がある
|-
|}

=====Online Update (オンライン更新)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|オンライン更新はない
|-
|1
|1~3のILFをオンラインで更新。更新量は少なく、回復は容易
|-
|2
|4以上のILFをオンラインで更新。更新量は少なく、回復は容易
|-
|3
|主要なILFをオンラインで更新
|-
|4
|3に加え、データ損失保護が必須、特別な設計、プログラムあり
|-
|5
|4に加え、更新量が多く、回復処理の費用面の考慮がなされている。オペレータの介在が最小となるような高度に自動化された回復手順が必要
|-
|}

=====Complex Processing (複雑な処理)=====
*要素
**きめ細かい制御、または特有のセキュリティ処理
**広範な論理的処理
**広範な演算処理
**再処理が必要となる不完全トランザクションが原因での多くの例外処理
**多様の入出力機能を扱う複雑な処理
{|class="wikitable"
!評価点
!説明
|-
|0
|要素のいずれにも該当せず
|-
|1
|要素のいずれか1項目に該当
|-
|2
|要素のいずれか2項目に該当
|-
|3
|要素のいずれか3項目に該当
|-
|4
|要素のいずれか4項目に該当
|-
|5
|要素の5項目すべてに該当
|-
|}

=====Reusability (再利用可能性)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|再利用できるコードはない
|-
|1
|再利用できるコードがアプリケーション内で使用されている
|-
|2
|アプリケーションの10%未満で複数のユーザーのニーズを考慮
|-
|3
|アプリケーションの10%以上で複数のユーザーのニーズを考慮
|-
|4
|アプリケーションは再利用し易くするために特別なパッケージ化および文書化がされている。またアプリケーションはソースコードレベルでユーザーによりカスタマイズされる
|-
|5
|アプリケーションは再利用し易くするために特別なパッケージ化および文書化がされていて、アプリケーションのカスタマイズはユーザーのパラメータ維持管理で可能
|-
|}

=====Installation Ease (インストール容易性)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|導入に対してユーザーの特別な指定、特別な設置作業も不要
|-
|1
|導入に対してユーザーの特別な指定はないが、特別なセットアップが必要
|-
|2
|移行および導入にユーザー指定があり、移行および導入ガイドを提供するとともにテストされている。プロジェクトに対する移行の影響は重大ではない
|-
|3
|移行および導入にユーザー指定があり、移行および導入ガイドを提供するとともにテストされている。プロジェクトに対する移行の影響は重大である
|-
|4
|2に加えて、自動移行および自動導入ツールを提供するとともにテストされている
|-
|5
|3に加えて、自動移行および自動導入ツールを提供するとともにテストされている
|-
|}

=====Operational Ease (運用性)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|通常のバックアップ手続き以外、ユーザーからの運用上の指定は特にない
|-
|1~4
|アプリケーションに適用される項目を以下から選択。各項目1度数としてカウント。1.効率的な始動、バックアップ、回復処理が提供されているが、オペレータの介入も必要。2.効率的な始動、バックアップ、回復処理が提供されており、オペレータの介入が不要(2度数としてカウント)。3.アプリケーションは、テープマウントの必要性が最小限になるようにしている。4.アプリケーションは用紙操作の必要性が最小限になるようにしている。
|-
|5
|アプリケーションは無人操作となるように設計されている。無人操作とは、アプリケーションの始動、シャットダウン以外はオペレーターがシステムを操作する必要がないことを意味する。自動エラー回復機能付アプリケーション。
|-
|}
=====Multiple Sites(複数サイト)=====
{|class="wikitable"
!評価点
!説明
|-
|0
|複数サイトへの導入の要求はない
|-
|1
|複数サイトへの必要性を考慮し、アプリケーションは同一のハードウェア、ソフトウェア環境だけで運用するように設計されている。
|-
|2
|複数サイトへの必要性を考慮し、アプリケーションは類似のハードウェア、ソフトウェア環境だけで運用するように設計されている。
|-
|3
|複数サイトへの必要性を考慮し、アプリケーションは異なるハードウェア、ソフトウェア環境だけで運用するように設計されている。
|-
|4
|複数サイトでアプリケーションを使用するためのドキュメントとサポート計画が提供され、テストされている。アプリケーションの状態は1と2の記述の通り。
|-
|5
|複数サイトでアプリケーションを使用するためのドキュメントとサポート計画が提供され、テストされている。アプリケーションの状態は3の記述の通り。
|-
|}

=====Facilitate Change (変更容易性)=====
*特性
**簡単な要求(eg-1つのILF)を処理するための柔軟な照会、レポート機能を提供
**平均的な要求(eg-複数のILF)を処理するための柔軟な照会、レポート機能を提供
**複雑な要求(eg-複数のILFに対する複数のロジック)を処理するための柔軟な照会、レポート機能を提供
**オンライン対話型処理によりユーザーが保守できるように、制御データが保持されるが、反映されるのは翌営業日
**オンライン対話型処理によりユーザーが保守できるように、制御データが保持され、直ちに反映される
{|class="wikitable"
!評価点
!説明
|-
|0
|特性のいずれにも該当しない
|-
|1
|特性のいずれか1項目に該当
|-
|2
|特性のいずれか2項目に該当
|-
|3
|特性のいずれか3項目に該当
|-
|4
|特性のいずれか4項目に該当
|-
|5
|特性のいずれか5項目に該当
|-
|}
===換算値===
*FP/人月
*http://synck.exblog.jp/172966/
====開発ソフト種別====
{|class="wikitable"
!種別
!換算値
|-
|軍需ソフトウエア
|1~5 FP/人月
|-
|エンドユーザーソフトウエア
|平均 35 FP/人月
|-
|経営情報システム
|10~20 FP/人月
|-
|アウトソーシング(委託開発)
|15~20 FP/人月
|-
|市販ソフトウエア
|4~10 FP/人月
|-
|システムソフトウエア
|3~6 FP/人月
|-
|}

====簡易Excel用マクロ====
{{ref functionPoint.bas}}

案内メニュー