1. ユーザーの視点
    1. 定義と役割
      1. ビジネス機能を記述
      2. ユーザーにより認識
      3. FP値を計測するために利用
      4. 物理表現は多様(要求仕様、詳細仕様)
    2. ポイント
      1. ユーザーが認識するソフトウェアの機能に着目する。
      2. ソフトウェアがもつ機能(Function)をベースに計測
    3. 要求仕様の3フェーズ
      1. 初期ユーザー要求仕様
      2. 初期技術的要求仕様
      3. 最終機能要求仕様
        1. FP計測においてもっとも大切
  2. 計測の流れ
    1. 全体的な流れ
      1. FP計測タイプの決定
        1. 計測方法
          1. 新規開発
          2. 機能追加/削除/修正
        2. FP計測タイプ
          1. 新規開発計測
          2. 機能拡張計測
          3. アプリケーション計測
      2. 計測範囲の決定、アプリケーション境界の決定
        1. 計測対象を明確にし、各機能をアプリケーション単位でグループ化する
      3. データファンクションの計測
        1. ILF(InternalLogicalFile)
          1. 当該アプリケーションにより追加・更新・削除などの操作対象となる
        2. EIF(ExternalInterfaceFile)
          1. 当該アプリケーションにより参照のみ行われる
      4. トランザクショナルファンクションの計測
        1. EI
          1. データを受け取る処理
        2. EO
          1. データを出力する処理(加工あり)
        3. EQ
          1. データを出力する処理(加工せず)
      5. 未調整ファンクションポイント(UFP)の計算
        1. データファンクション、トランザクショナルファンクションのFP値を合計
        2. システムの特徴は考慮しない
      6. 調整係数(VAF ValueAdjustmentFactor)の計算
        1. 未調整ファンクションポイントにシステム特有の難易度をつける
      7. 調整済みファンクションポイント(AFP AdjustedFunctionPoint)の計算
        1. 新規開発、機能拡張、アプリケーションそれぞれの計測タイプによって定まる特別な計算式により求める
  3. 計測タイプの決定
    1. 3つの計測タイプ
      1. 新規開発FP計測(Development Project Function Point Counting)
        1. 計測対象
          1. ソフトウェア機能(functionality)
          2. データ移行の機能(conversion functionality)
      2. 機能拡張FP計測(Enhancement Project Function Point Counting)
        1. 計測対象
          1. 新規開発と同様、データ移行も対象
      3. アプリケーションFP計測(Application Function Point Counting)
        1. 計測対象
          1. 導入済みソフトウェアの規模計測
          2. データ移行は計測しない
    2. 一般的なフェーズ
  4. 計測範囲の決定
    1. 計測範囲(Counting Scope)
      1. 計測するシステムにどのような機能があるか見極め
    2. アプリケーション境界(Application Boundary)
      1. 境界の決定
        1. 計測するシステムに存在する機能をFP値算出単位(アプリケーション)でグループ化
        2. 計測結果に影響を与えるため、境界の決定は慎重に行う
        3. アプリケーションに含まれる機能は必ず外部とデータのやり取りを行う
      2. 要素処理への落とし込み
        1. 要素処理(elementary process)
          1. ユーザーにとって意味のある最小単位のアクティビティ
          2. 自己完結していなければならず、業務を矛盾のない状態にするもの
          3. 主な目的
          4. 境界外からのデータ
          5. ファイルにデータ追加
          6. ファイルのデータ変更
          7. ファイルからデータを削除
          8. 処理内容を変化
          9. ファイルを参照し得られたデータ、データを加工したもの
          10. 特定の形式で各装置に送る
          11. 特定の形式で別のアプリケーションに送る
  5. データファンクションの計測
    1. 調査対象
      1. アプリケーションがアクセスするファイル
    2. 手順
      1. アプリケーションがアクセスするファイルを抽出
        1. 要素処理がファイルに対して追加、変更、削除を行うこと
        2. ファイル
          1. ファイルとはデータを蓄積し管理する機能をもつものでユーザーが認識している
          2. テンポラリファイル、ワークファイル、ソートファイル、バックアップファイルなどは対象外
      2. ファイルをILF、EIFに区別
        1. 内部論理ファイル(ILF:Internal Logical File)
          1. アプリケーション境界の中で維持管理される
          2. ユーザー視点でみた論理的に関連のある1グループのデータか制御情報
          3. 制御情報とは要素処理の動作を変更させるためのデータ
          4. 要素処理で維持管理されるデータを保持
          5. 維持管理とは要素処理がファイルに対して追加、更新、削除を行うこと
        2. 外部インターフェースファイル(EIF:External Interface File)
          1. ユーザー視点でみた論理的に関連のある1グループのデータか制御情報
          2. アプリケーションはこれを参照するだけ
          3. 維持管理は他のアプリケーション内部で実施
          4. 要素処理によって参照されるデータを保持
          5. あるアプリケーションで計測したEIFは他のアプリケーションのILF
      3. ファイルのデータエレメントタイプ(DET)とレコードエレメントタイプ(RET)を算出
        1. データエレメントタイプ(DET:Data Element Type)
          1. ILFやEIF上のユニークで繰り返しを含まないユーザーが識別可能なデータ項目(フィールド)
          2. 主キーや外部キーは計上する
          3. アプリケーションからアクセスするフィールドのみカウント
        2. レコードエレメントタイプ(RET:Record Element Type)
          1. ILFやEIFに含まれるユーザー視点でみたデータのグループで、データ項目をさらに構成する下位のデータグループ(サブグループ)
          2. グループとは一部のフィールドをグループ化したもので任意と必須がある
          3. 任意でも必須でもない場合には、全フィールドを1つのサブグループと考え、RETを1とする
          4. 2種類のサブグループ
          5. 任意サブグループ
          6. データ項目に値を記録したり追加したりする要素処理
          7. 使用/不使用がユーザにゆだねられている
          8. 必須サブグループ
          9. 少なくともそのうち1つはユーザーが使用しなければならない
      4. ファイルの複雑度を求める
        1. Low、Average、Highの3段階評価
      5. 複雑度からファイルのFP値を求める
        1. ファイルの種類と複雑度から求める