トランザクショナルファンクションの算出

プロセスの抽出

トランザクショナルファンクション算定のためには「処理要素」が必要となる.処理要素とは「ユーザにとって意味のある最小のアクティビティ」を指す.ここでは,DFDの最下層のプロセスを処理要素として使用する.以下「プロセス」と「要素処理」は同じ意味で使用する.

まずは,アプリケーションルールの定義で作成したDFDからプロセスを抜き出す.対象となるのは最下層のプロセスのみである.プロセス「データの維持・管理」は最下層のプロセスとしては大きすぎる.サブプロセスに分割すべきであるが,紙面の関係で今回はそこまでは行わない.

プロセス一覧
プロセス
1 トップ画面表示
2 ログイン
3 ユーザ登録・解除・変更
4 検索
5 分類一覧
6 ダウンロードランキング
7 ダウンロード履歴確認
8 お勧め
9 ダウンロード
10 データの維持・管理
11 不要データ削除

EI/EO/EQの判別

抽出したプロセスをEI(外部入力)/EO(外部出力)/EQ(外部紹介)の三種類に分ける.それぞれの判別方法は以下の通りである.

EI
アプリケーション外部のデータ入力を受け,一つ以上のILFの追加・修正・削除,またはシステムの動きを変える.アプリケーション外部への副次的なデータ出力があっても良い.
EO
アプリケーション外部のデータ出力を行う.アプリケーション外部からの副次的なデータ入力があっても良い.一つ以上のILFの追加・修正・削除,またはシステムの動きを変える場合もある.後述するEQと異なり,データの加工(算術式・計算・派生データの生成)が必要である.
EQ
アプリケーション外部のデータ出力をを行う.アプリケーション外部からの副次的なデータ入力があっても良い.ILFの追加・修正・削除を行ってはならない.また,システムの動きへの影響もあってはならない.前述したEOと異なり,データの加工(算術式・計算・派生データの生成)があってはならない.

EIとEO/EQの違いはデータ入力を主機能とする(EI) or データ出力を主機能とする(EO/EQ)である.副次的にデータ出力・データ入力があってもかまわない.EOとEQの違いは,データの加工がある(EO) or ない(EQ)である.表にすると以下の通りである.

EI/EO/EQの違い
主機能 副機能 データの加工 ILFの追加・修正・削除 システムの動作変更
EI データ入力 データ出力 任意 最低でもどれか一つ必要
EO データ出力 データ入力 最低でもどれか一つ必要
EQ データ出力 データ入力 あってはならない

では,プロセスをEI/EO/EQに分けていこう.

プロセス一覧
プロセス EI/EO/EQ
1 トップ画面表示 後述
2 ログイン EI
3 ユーザ登録・解除・変更 EI
4 検索 EQ
5 分類一覧 EQ
6 ダウンロードランキング EQ
7 ダウンロード履歴確認 EQ
8 お勧め EO
9 ダウンロード EO
10 データの維持・管理 EI
11 不要データ削除 EO

プロセス「トップ画面表示」については,トランザクショナルファンクションの対象から外す.このプロセスは,アクセスに対して特定のファイルを表示するだけである.ILFやEIFへのアクセスも,システムの動作変更も発生していない.ILF/EIFへのアクセスが発生しない,かつシステムの動作変更も発生しない場合は,トランザクショナルファンクションの対象とはならない.

DETの算定

DET(Data Element Type)はデータファンクションの算出にも登場した言葉である.データファンクションでは「ILFやEIF上の繰返しを含まないユーザが識別可能なデータ項目」であったが,トランザクショナルファンクションでのDETの定義は以下の通りである.

DET
アプリケーションの外へ出入りする,繰返しを含まないユーザが識別可能なデータ項目.および,プロセスを起動するためのトリガ

DFDを元に説明するなら,以下の通りである.

DET
プロセスとデータの行き先・発生元との間を結ぶデータフローが含む項目の数.および,プロセスを起動するためのトリガ

例えば,プロセス「ログイン」を見てみよう.データの発生元「ユーザ」よりデータフロー「入力ユーザid・パスワード」を受取り,データの行き先「ユーザ」へ「登録ユーザ用トップ画面」を出力している.データフロー「入力ユーザid・パスワード」が含む項目は「ユーザid」と「パスワード」の二つ,データフロー「登録ユーザ用トップ画面」が含む項目は「ファイル名」の一つである.したがってプロセス「ログイン」のDETは“3”となる.

また,プロセスを起動するためのトリガとしてDETに1を加算する.具体的には,実行ボタンやエンターキーを押してプロセスを起動することである.同じことができるトリガが複数ある場合(ボタンを押しても,エンターキーを押しても,メニューから選んでも実行できる)は,合わせて1である.別々には計上しない.キャンセルボタンは「プロセスを起動するためのトリガ」には当てはまらないのでDETには計上しない.

全プロセスのDETを一覧にすると以下の通りである.

DET一覧
プロセス 入出力 データフロー データ項目(DET) データの発生源・行き先
1 トップ画面表示 トランザクショナルファンクションから除外
2 ログイン 入力 入力ユーザid・パスワード 1 ユーザid ユーザ
2 パスワード
3 トリガ
出力 登録ユーザ用トップ画面 4 ファイル名 ユーザ
3 ユーザ登録・解除・変更 入力 希望ユーザid・パスワード 1 ユーザid ユーザ
2 パスワード
3 トリガ
4 検索 入力 検索文字列 1 入力文字列 ユーザ
2 トリガ
出力 該当著作 3 著作id ユーザ
4 書名
5 著者id
6 著者名
7 フォーマット
5 分類一覧 入力 希望分類 1 希望分類 ユーザ
2 分類id
3 トリガ
出力 閲覧対象著作 4 分類名 ユーザ
5 分類id
6 書名
7 著作id
8 著者
9 著者id
10 フォーマット
6 ダウンロードランキング 入力 ランキング 1 ランキング種別(昨日/週間/月間/年間) ユーザ
2 表示ランキング数
3 トリガ
出力 ランキング内著作 4 順位 ユーザ
5 書名
6 著作id
7 著者
8 著者id
9 フォーマット
7 ダウンロード履歴確認 入力 履歴範囲 1 表示月数 ユーザ
2 トリガ
出力 ダウンロード履歴内著作 3 書名 ユーザ
4 著作id
5 著者
6 著者id
7 フォーマット
8 ダウンロード日付
8 お勧め 入力 お勧め要求 1 お勧め要求 ユーザ
2 トリガ
出力 お勧め著作 3 書名 ユーザ
4 著作id
5 著者
6 著者id
7 フォーマット
9 ダウンロード 入力 ダウンロード著作 1 ダウンロード著作名 ユーザ
2 ダウンロード著者名
3 ダウンロードフォーマット名
4 トリガ
出力 ダウンロードファイル 5 ダウンロードファイル ユーザ
10 データの維持・管理 入力 追加・修正・削除データ 1 著作id 運用担当者
2 書名
3 著者id
4 著者名
5 フォーマット
6 公開開始日付
7 公開終了日付
8 分類名
9 上位分類名
10 トリガ
11 不要データ削除 入力 起動時刻 1 トリガ スケジューラ

FTRの算定

FTR(File Type Reference)とは以下の二つの条件のどちらかに当てはまるものである.

FTR
トランザクショナルファンクションが追加・参照・更新・削除を行うILF
トランザクショナルファンクションが参照を行うEIF

DFDを元に説明するなら,以下の通りである.

FTR
プロセスが読み書きするデータの保管先・保管元

DFDのプロセスを見て,それとデータフローで繋がっているデータの保管先・保管元を数えればよい.DETと異なり,データフローの中の項目数は数えない.

例えば,プロセス「検索」を見てみよう.データの保管先・保管元「著作,著者,著作・著者,ファイル」からデータとして受取っている.したがってFTRは“4”となる.

全プロセスのFTRを一覧にすると以下の通りである.

FTR一覧
プロセス 入出力 データフロー データの保管先・保管元(FTR)
1 トップ画面表示 トランザクショナルファンクションから除外
2 ログイン 入力 登録済みユーザid・パスワード 1 ユーザ
3 ユーザ登録・解除・変更 出力 検証済みユーザid・パスワード 1 ユーザ
4 検索 入力 検索文字列に該当する著作 1 著者
入力 検索文字列に該当する著者 2 著作
入力 検索対象著作・著者 3 著者・著作
入力 著作に該当するフォーマット 4 ファイル
5 分類一覧 入力 分類 1 分類
入力 分類内著作 2 分類内著作
入力 分類内著作の詳細 3 著作
入力 分類内著作の著者 4 著者
入力 分類内著作・著者 5 著作・著者
入力 分類内著作のフォーマット 6 ファイル
6 ダウンロードランキング 入力 ダウンロードランキング 1 ダウンロードランキング
入力 ダウンロードランキング内著者 2 著者
入力 ダウンロードランキング内著作 3 著作
入力 ダウンロードランキング内著作・著者 4 著者・著作
入力 ランキングのフォーマット 5 ファイル
7 ダウンロード履歴確認 入力 ログインユーザ 1 ユーザ
入力 ダウンロード履歴 2 ダウンロード履歴
入力 ダウンロード履歴内著者 3 著者
入力 ダウンロード履歴内著作 4 著作
入力 ダウンロード履歴内著作・著者 5 著者・著作
入力 履歴内著作のフォーマット 6 ファイル
8 お勧め 入力 お勧め要求ユーザ 1 ユーザ
入力 過去の傾向 2 ダウンロード履歴
入力 お勧め著作の著者 3 著者
入力 お勧め著作の詳細 4 著作
入力 お勧め著作・著者 5 著者・著作
入力 お勧め著作のフォーマット 6 ファイル
9 ダウンロード 入力 ダウンロード可能著者 1 著者
入力 ダウンロード可能著作 2 著作
入力 ダウンロード可能ファイル 3 ファイル
入力 ダウンロード著作・著者 4 著者・著作
10 データの維持・管理 出力 追加・修正・削除著者 1 著者
出力 追加・修正・削除著作 2 著作
出力 追加・修正著作・著者 3 著者・著作
出力 追加・修正・削除ファイル 4 ファイル
出力 追加・修正・削除分類 5 分類
出力 追加・修正・削除分類内著作 6 分類内著作
出力 保管日数 7 保管日数設定ファイル
11 不要データ削除 入力 指定日数 1 保管日数設定ファイル
出力 不要ユーザ 2 ユーザ
出力 不要履歴 3 ダウンロード履歴
出力 不要ランキング 4 ダウンロードランキング
出力 削除結果 5 削除ログ

プロセスの複雑度とファンクションポイント

DET・FTRが決まったら,以下の算定表でファイルの複雑度を決定する.複雑度はlow(低い)・average(平均的)・high(高い)の3種類である.

EIの複雑度
1~19DET 20~50DET 51以上
0~1FTR low low average
2FTR low average high
3以上 average high high
EO/EQの複雑度
1~5DET 6~19DET 20以上
0~1FTR low low average
2~3FTR low average high
4以上 average high high

プロセスの複雑度が分かればEI/EO/EQとの対応でファンクションポイントを算定できる.

複雑度・EI/EO/EQの対応とファンクションポイント
low average high
EI 3 4 6
EO 4 5 7
EQ 3 4 6

トランザクショナルファンクションのファンクションポイント

トランザクショナルファンクションのファンクションポイントは以下の通りとなる.

トランザクショナルファンクションのファンクションポイント
プロセス EI/EO/EQ DET FTR 複雑度 FP
1 ログイン EI 4 1 low 3
2 ユーザ登録・解除・変更 EI 3 1 low 3
3 検索 EQ 7 4 high 6
4 分類一覧 EQ 10 6 high 6
5 ダウンロードランキング EQ 9 5 high 6
6 ダウンロード履歴確認 EQ 8 6 high 6
7 お勧め EO 7 6 high 7
8 ダウンロード EO 5 4 average 5
9 データの維持・管理 EI 10 7 high 6
10 不要データ削除 EO 1 5 average 5
トランザクショナルファンクション合計 53