&size(24){&color(darkgreen){''Function Point Practices''};}; #navi(Management) ~''CONTENTS'' #contents ---- ~''REFERENCES'' -http://www.jfpug.gr.jp/ -http://www.pref-lib.niigata.niigata.jp/ ---- **はじめに [#wafa7d50] -FP法の解説本 -県立図書館に蔵書・・[資料検索]して「タイトル」に"ファンクションポイント"と入力 **第1章 システム開発の現状 [#y1514f7d] ***1.3 システム開発プロジェクトにおける各種見積もり方法 [#g026b0b3] -類似プロジェクトによる見積もり -タスク/プロセス分解による見積もり -数値モデルによる見積もり --ソフトウエアの規模を算出する手法 --ソフトウエアの開発工数を算出する手法 ***1.4 各種見積もり手法の動向 [#v21a54f4] -FP法は、1979年にA.J.Albrechtによって開発された -以前はLOC (Lines of Code)が主流だった -2002年にISO化の予定・・・今年は2005年。認定されたのかな? -導入を容易にした、MK�競侫.鵐�ションポイント法、COSMIC-FFPなどがある。 ***1.5 FP法について [#x5128996] -システムやソフトウエアの入出力と参照する機能数をポイント化して数える -IFPUGで標準化してるため、会社による差が無い -標準化した計測手法をCPM (Counting Practice Manual)として文書化 -CPMに則って計測する手法をIFPUG法と呼ぶ・・・業界標準 -システムをアプリケーションに切り分ける・・・FP値算出の単位となる -アプリケーションごとに、ファンクションを切り分ける --2タイプのファイル(内部論理ファイル、外部インターフェースファイル) --3タイプのトランザクション(外部入力、外部出力、外部参照) -それぞれのポイント数を集約する -FP法は、あくまでもシステムの規模(FP値)を計測する手法。工数、期間、品質を見積もるには --工数見積もり・・・生産性値(FP値/人日) --期間見積もり・・・開発スピード(FP値/カレンダー日) --品質見積もり・・・単位当りバグ数(バグ数/FP値) -実績値の収集と整理が重要・・・手間をかけないように収集する **第2章 ファンクションポイント計測法 [#o2eac9d5] ***2.1 ユーザの視点 [#g92fd6db] -ユーザの視点 (「ユーザが認識する」ソフトウエアの機能に着目する) -仕様化の流れ ++初期ユーザ要求仕様(かなり曖昧) ++初期技術的要求仕様(技術的検討) ++最終機能要求仕様 -最終機能要求仕様に求められること --ユーザと開発者の用語の統一 --ユーザ要求が全て記載されていること --FP法で規模の計測ができること --各プロセスやデータがユーザによって認識されていること --ソフトウエアの採算性と利便性が開発者により認識されていること ***2.2 計測の流れ [#p060988a] -FP計測タイプの決定 --新規開発計測・・・・・・新規開発、データ移行作業を含む --機能拡張計測・・・・・・機能追加、データ変換作業を含む --アプリケーション計測・・機能追加、データ変換を含まない -計測範囲の決定、アプリケーション境界の決定 --FP計測する範囲を決める --アプリケーションは外部との入出力を元に決定する --要素処理への落とし込み ---ユーザにとって意味のある最小単位のアクティビティ ---自己完結していなければならず、計測するアプリケーションの業務を矛盾のない状態にするもの -データファンクションの計測 --ILF (Internal Logical File)・・・追加、更新、削除を行うファイル --EIF (External Interface File)・・・参照のみするファイル -トランザクショナルファンクションの計測 --EI (External Input)・・・データ入力してILFの更新をする --EO (External Output)・・・ILFやEIFのデータを加工して出力 --EQ (External inQuiry)・・・ILFやEIFのデータを無加工で出力 -未調整ファンクションポイントの計算 --データファンクション計測とトランザクショナルファンクション計測の合計 --システムの特徴は考慮されていない --UFP -調整係数の計算 -調整済みファンクションポイントの計算 ***2.4 計測範囲の決定、アプリケーション境界の決定 [#rdabc085] -業務による切り分け -データによる切り分け -ユーザによる切り分け -総合的な判断 ***2.5 データファンクションの計測 [#r19aff0c] -アプリケーションからアクセスするファイルを抽出 -出されたファイルがILFかEIFかを区別 -ファイルのDETとRETを算出 --DET (Data Element Type) 重複しないフィールド --RET (Record Element Type) サブグループ -ファイルの複雑度を求める |~RET-DET|~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値を求める |~FP|~Low|~Average|~High| |~ILF|7|10|15| |~EIF|5|7|10| ***2.6 トランザクショナルファンクションの計測 [#x2d782e2] -アプリケーションに存在する要素処理を抽出する -要素処理をEI, EO, EQに区別 --EI データ入力 --EO データを処理して出力 --EQ データを処理しないで出力 -要素処理のデータエレメントタイプとファイルタイプリファレンスを数える --DETはデータファンクションと同じ(重複しないフィールド) --FTR (File Type Reference) 処理するファイル -要素処理の複雑度を求める --EI用の複雑度 |~FTR-DET|~1-4 DET|~5-15DET|~16- DET| |~0-1 FTR|Low|Low|Average| |~2 FTR|Low|Average|High| |~3- FTR|Average|High|High| --EO, EQ用の複雑度 |~FTR-DET|~1-5 DET|~6-19DET|~20- DET| |~0-1 FTR|Low|Low|Average| |~2-3 FTR|Low|Average|High| |~4- FTR|Average|High|High| -複雑度から要素処理のFP値を求める |~FP|~Low|~Average|~High| |~EI|3|4|6| |~EO|4|5|7| |~EQ|3|4|6| ***2.7 未調整ファンクションポイントの計算 [#h38e4f4c] |~システム名|>|>|>|>|| |~アプリケーション名|>|>|>|>|| |~ファイル名&br;処理名|~ILF, EIF&br;EI, EO, EQ|~DET|~RET&br;FTR|~複雑度|~FP| |1. | | | | | | |2. | | | | | | |3. | | | | | | |4. | | | | | | |5. | | | | | | |~合計 (未調整FP値) |>|>|>||| ***2.8 調整係数の計算 [#g605660c] -VAF (Value Adjustment Factor) -GSCの14項目の特徴を評価 -VAF = (TDI * 0.01) + 0.65 -データ通信 (Data Communications) |~評価点|~評価点の説明| |0|バッチ処理のみ。スタンドアロンPC| |1|バッチ処理だがリモートデータ入力、印刷のどちらかを持つ| |2|バッチ処理だがリモートデータ入力、印刷の両方を持つ| |3|オンラインデータ収集だが、パッチ処理のフロントエンド、または、照会システム| |4|フロントエンド以上の通信機能だが、1種類の通信プロトコルをサポート| |5|フロントエンド以上の通信機能で、複数の通信プロトコルをサポート| -分散処理 (Distributed Data Processing) |~評価点|~評価点の説明| |0|構成要素間のデータ転送、データ処理に関与しない| |1|表計算やDBMSを使い、データ入出力のみを実現する| |2|データが他の構成要素に転送、処理される| |3|一方向オンラインの分散処理とデータ転送| |4|双方向オンラインの分散処理とデータ転送| |5|データ処理が動的に実行| -性能 (Performance) |~評価点|~評価点の説明| |0|要求なし| |1|要求はあるが、特別な対応の要求はない| |2|ピーク時に厳しいが、特別な配慮は不要。処理の期限は翌営業日| |3|業務時間中厳しいが、特別な配慮は不要。処理の期限に制限がある| |4|設計段階で性能分析が必要| |5|設計、開発、導入の段階で性能分析ツールが必要| -高負荷構成 (Heavily Used Configuration) |~評価点|~評価点の説明| |0|制約なし| |1|厳しくない。特別な配慮は不要| |2|セキュリティ、または、タイミング上の配慮が必要| |3|特別なプロセッサ要件がある| |4|特別な制約が必要| |5|システムの分散構成要素に関して制約が必要| -トランザクション量 (Transaction Rate) |~評価点|~評価点の説明| |0|ピーク期間なし| |1|毎月、年に1回程度| |2|毎週| |3|毎日| |4|設計段階で性能分析作業が必要| |5|設計、開発、導入段階で性能分析ツールが必要| -オンライン入力 (Online Data Entry) |~評価点|~評価点の説明| |0|すべてバッチモード| |1|1〜7%がオンライン入力| |2|8〜15%がオンライン入力| |3|16〜23%がオンライン入力| |4|24〜30%がオンライン入力| |5|30%以上がオンライン入力| -エンドユーザ効率 (End-User Efficiency) --操作支援(ファンクションキー、ジャンプ、プルダウンメニュー) --メニュー --オンラインヘルプ --カーソル移動の自由化 --スクロール --オンライントランザクションによる遠隔印刷 --ファンクションキーの事前割当 --オンライントランザクションからのバッチジョブの起動 --画面上のデータのカーソルによる選択 --反転表示など表示機能の多用 --オンライントランザクションのユーザドキュメンテーションのハードコピー --マウスインタフェース --ポップアップウインドウ --必要最小限の画面による業務機能の実現 --2ヶ国語サポート(4項目としてカウント) --3ヶ国語以上のサポート(6項目としてカウント) |~評価点|~評価点の説明| |0|いずれの機能も無し| |1|1〜3項目を実現| |2|4〜5項目を実現| |3|6項目以上を実現。ただし、ユーザ要求はない| |4|6項目以上を実現。設計作業が必要| |5|専用ツールを用いて証明が必要| -オンライン更新 (Online Update) |~評価点|~評価点の説明| |0|ILFのオンライン更新無し| |1|1〜3のILFをオンライン更新。更新量は少なく、回復は容易| |2|4以上のILFをオンライン更新。更新量は少なく、回復は容易| |3|主要なILFをオンラインで更新| |4|データ損失保護が必須| |5|更新量が多く、回復処理の費用が考慮されている| -複雑な処理 (Complex Processing) --きめ細かい制御(特別な監査処理)またはセキュリティ処理 --広範な論理的処理 --広範な演算処理 --不完全トランザクションが原因の例外処理 --多様の入出力機能を扱う複雑な処理 |~評価点|~評価点の説明| |0|いずれにも該当しない| |1|いずれか1項目に該当| |2|いずれか2項目に該当| |3|いずれか3項目に該当| |4|いずれか4項目に該当| |5|5項目すべてに該当| -再利用可能性 (Reusability) |~評価点|~評価点の説明| |0|再利用できるコードはない| |1|再利用できるコードがアプリケーション内で使用されている| |2|アプリケーションの10%未満で複数ユーザのニーズを考慮する| |3|アプリケーションの10%以上で複数ユーザのニーズを考慮する| |4|再利用のため特別なパッケージ化。ソースレベルでユーザがカスタマイズする。| |5|再利用のため特別なパッケージ化。パラメータでユーザがカスタマイズする。| -インストール容易性 (Installation Ease) |~評価点|~評価点の説明| |0|指定無し。設置作業不要| |1|指定無し。特別なセットアップが必要| |2|導入ガイドの提供がある。移行の影響は重大でない| |3|導入ガイドの提供がある。移行の影響が重大| |4|2に加えて、自動導入ツールを提供| |5|3に加えて、自動導入ツールを提供| -運用性 (Operation Ease) --オペレータの介入が必要 --オペレータの介入が不要(2項目としてカウント) --テープマウントの必要性が最小限 --用紙操作が最小限 |~評価点|~評価点の説明| |0|指定無し| |1|各項目を1度数としてカウント| |2|~| |3|~| |4|~| |5|無人操作| -複数サイト (Multiple Sites) |~評価点|~評価点の説明| |0|複数サイトへの導入の要求はない| |1|同一のハード、ソフト環境でのみ運用| |2|類似のハード、ソフト環境で運用| |3|異なるハード、ソフト環境で運用| |4|同一、類似のハード、ソフトでのサポート計画が提供、テストされている| |5|異なるハード、ソフトでのサポート計画が提供、テストされている| -変更容易性 (Facilitate Change) --簡単な要求を処理するための柔軟な照会、レポート機能が提供されている。 --平均的な複雑度の要求を処理するための柔軟な照会、レポート機能が提供されている。 --複雑な要求を処理するための柔軟な照会、レポート機能が提供されている。 --オンライン対話型処理によりユーザが保守できる。変更が有効になるのは翌営業日。 --オンライン対話型処理によりユーザが保守できる。変更は直ちに有効となる。 |~評価点|~評価点の説明| |0|いずれにも該当しない| |1|1項目に該当する| |2|2項目に該当する| |3|3項目に該当する| |4|4項目に該当する| |5|5項目に該当する| -調整係数計算書 |~GSC|~DI| |1. Data Communications|| |2. Distributed Data Processing|| |3. Performance|| |4. Heavy Used Configuration|| |5. Transaction Rate|| |6. Online Data Entry|| |7. End-User Efficiency|| |8. Online Update|| |9. Complex Processing|| |10. Reusability|| |11. Installation Ease|| |12. Operational Ease|| |13. Multiple Sites|| |14. Facilitate Change|| |TDI = || |VAF = (TDI * 0.01) + 0.65 = || ***2.9 調整済みファンクションポイントの計算 [#u62b09f1] -新規開発 DFP = (UFP + CFP) * VAF DFP : 新規開発FP計測のFP値 UFP : 未調整FP値 CFP : データ移行機能のFP値 VAF : 調整係数 -機能拡張 EFP = ((ADD + CHGA + CFP) * VAFA) + (DEL * VAFB) EFP : 機能拡張FP計測のFP値 ADD : 追加導入される機能のFP値 CHGA: 変更される機能の変更後のFP値 DEL : 削除される機能のFP値 CFP : データ移行機能のFP値 VAFA: 機能拡張FP計測前の調整係数 VAFB: 機能拡張FP計測後の調整係数 -アプリケーション --初期アプリケーションFP計測 AFP = ADD * VAF AFP : アプリケーションFP計測のFP値 ADD : 未調整FP値 VAF : 調整係数 --更新アプリケーションFP計測 AFP = ((UFPB + ADD + CHGA) - (CHGB + DEL)) * VAFA AFP : アプリケーションFP計測のFP値 UFPB: 機能拡張FP計測前の未調整FP値 ADD : 追加導入される機能のFP値 CHGA: 変更される機能の変更後のFP値 CHGB: 変更される機能の変更前のFP値 DEL : 削除される機能のFP値 CFP : データ移行機能のFP値 VAFA: 機能拡張FP計測後の調整係数 **第3章 ファンクションポイント計測演習 [#z266b8bb] |~カッコ|~意味| |[]|ファイル名| |{}|画面名| |【】|アプリケーション名| |「」|要素処理名| ***3.1 クライアントサーバシステム(教材管理) [#l1ad021b] -単一アプリケーション -メニューのように、データの入出力を伴わないものは要素処理としない ***3.2 Webシステム(商品注文管理) [#t5689ead] -複数アプリケーション -クッキーは計測対象としない(一時的に利用するものだから) -"取消しフラグ"はユーザから認識されないので、DETとして計上しない ***3.3 ホストシステム(資材管理) [#c99857b9] ***3.4 リアルタイムシステム(交通管理) [#idc669c5] -リアルタイム系のシステムでは、一時ファイルもデータとして扱う可能性がある。