• 検索結果がありません。

ファンクションポイント法

N/A
N/A
Protected

Academic year: 2021

シェア "ファンクションポイント法"

Copied!
40
0
0

読み込み中.... (全文を見る)

全文

(1)

ファンクションポイント法

-ソフトウェア機能に基づく規模尺度-

奈良先端科学技術大学院大学 講義資料

(2)

出典

„ Capers Jones, Applied Software Measurement -Assuring

Productivity and Quality, 2nd edition, McGraw-Hill (1997).

„ D. Garmus and D. Herron, Measuring the Software

Process: A Practical Guide to Function Measurements,

Prentice Hall (1996). 阪田勇夫(訳),ソフトウェア機能性の 計測:ファンク ショ ンポイント技法の実践的入門,トッパン (1999).

„ 大筆 豊,“ソフトウェアのコスト見積り技術”,情報処理,Vol.33, No.8,pp.906-911 (Aug. 1992).

(3)

ファンクションポイント(FP)法

„ IBMのA.J.Albrechtが1970年代半ばに考案. „ アプリケーションにおける,入力,出力,照会,論理ファイル (ユーザデータ)の加重和によってその機能的規模を表す方法. „ ソフトウェアを製品,あるいは,サービスとして経済学的に表す ための単位を提供

(4)

アプリケーションモデルとFPパラメータ

外部ユーザ 入力型 出力型 照会型 内部ユーザ データ 入力型 出力型 照会型 アプリケーション領域 他のアプリケーション 外部ユーザ データ

(5)

経済的生産性

„ 「単位工数,あるいは,単位費用当りに生産された製品,ある いは,サービス」 – ユーザが直接関心を持っていない文書量やプログラム行 数に基づいて,ソフトウェアを製品やサービスとして評価す ることは出来ない.

(6)

FPに基づく経済的評価

„ 開発者サイド – 1人月当りのFP – FP当りの作業時間,開発,保守コスト – FP当りのテストケース数,バグ数 „ 利用者サイド – 企業が所有するFP – エンドユーザが必要とするFP – 開発,リース,購入の判断 – プロジェクトの価値分析

(7)

業界基準曲線(1):FPと工数

3500 3000 2500 2000 1500 1000 500 0 0 100 200 300 400 500 FP 人月 600

(8)

業界基準曲線(2):FPと開発期間

3500 3000 2500 2000 1500 1000 500 0 0 10 20 30 40 FP 月

(9)

業界基準曲線(3):FPと生産性

3500 3000 2500 2000 1500 1000 500 0 0 5 10 15 20 25 FP FP/人月

(10)

業界基準曲線(4):FPと欠陥

3500 3000 2500 2000 1500 1000 500 0 0 500 1000 1500 2000 2500 FP バグ数

(11)

開発言語による生産性の差

基本アセンブラ マクロアセンブラ C Fortran/COBOL Ada ジェネレータ言語/照会言語 オブジェクト指向言語 ビジュアル言語/再利用 10 20 30 FP/人月

(12)

企業は所有するFP

企業分野 所有FP 小規模地方銀行 中堅商業銀行 大規模国際銀行 中規模生命保険会社 大規模生命保険会社 大規模電話会社 大規模電話メーカー 中規模メーカー 大規模メーカー 大規模コンピュータメーカー 125,000 350,000 450,000 400,000 550,000 450,000 600,000 200,000 375,000 1,650,00

(13)

職種別の利用FP

職種 利用FP 航空予約担当者 旅行業者 企業の会計監査役 銀行の貸付担当役 保険クレーム審査官 航空技術者 電気技術者 通信技術者 ソフトウェア技術者 機械技術者 ソフトウェアプロジェクト管理者 30,000 35,000 20,000 15,000 5,000 25,000 25,000 20,000 15,000 12,500 3,500

(14)

代表的な計算法

„ IBM法(1979) „ IBM法改訂版(1984) „ SPR法,SPR逆算法(1985) „ フィーチャポイント法(1986) „ Mark IIファンクションポイント法(1988)

(15)

IBM法(1979)

„ FP法のオリジナルバージョン.次の5つの目的を果たす尺度 として考案された. – ソフトウェアの外部機能を扱う. – ユーザにとって重要な機能を扱う. – 開発初期から適用できる. – 経済的生産性と結び付けることが出来る. – プログラムや言語から独立である.

(16)

IBM法(1979)におけるパラメータ

外部ユーザ 入力 出力 照会 マスター ファイル 入力 出力 照会 アプリケーション領域 他のアプリケーション

(17)

計算方法

入力数 出力数 照会数 マスタファイル数 × 4 = × 5 = × 4 = ×10 = 重要なパラメータ 重み 補正前の合計 複雑さの補正(±25%) 補正後のファンクションポイント

(18)

問題点

„ 複雑さ(による補正値)を全くの主観で決めなければならない. „ 現実のプロジェクトの観察結果からすると,複雑さの影響によ

(19)

IBM法改訂版(1984)

„ 新たなパラメータとして「外部インタフェースファイル」を追加し た. „ パラメータ毎に複雑さのランク(「単純」,「平均」,「複雑」)を設 け,重み係数もランク毎に設定した. „ 14個の要因(主要補正要因)に基づいて,複雑さ(による補正 値)を決定する.

(20)

IBM法改訂版(1984)におけるパラメータ

外部ユーザ 外部入力 外部出力 外部照会 内部論理 ファイル 外部入力 外部出力 外部照会 アプリケーション領域 他のアプリケーション 外部 インタフェース ファイル

(21)

パラメータ:外部入力

„ アプリケーションのユーザ,または,他のプログラムが,新たな データを投入したり,既存のデータを更新するために用いる画 面,または,様式 „ 入力画面が大きすぎて通常の1画面に入りきらない場合でも 入力数は1とする.

(22)

パラメータ:外部出力

„ ユーザ,または,他のプログラムのために,アプリケーションが 生成する画面,または,レポート.

„ 一つの目的のために複数の画面やレポートが生成される場合 でも出力数は1とする.

(23)

パラメータ:照会

„ ユーザがアプリケーションに質問したり,助力や情報を求めた りすることが出来るHELP画面のような画面.

„ ユーザによる入力に呼応して比較的短時間に出力が生成さ れる(返される)ような場合が該当する.

(24)

パラメータ:内部論理ファイル

„ アプリケーション内に存在し,アプリケーションが管理する論理 レコードの集合. „ 1つのフラットファイル,階層データベースの1つのノード,関係 データベースの1つのテーブル,ネットワークデータベースの1 つのパスなどが1つのデータファイルである.

(25)

パラメータ:外部インタフェースファイル

„ 他のアプリケーション内に存在し,他のアプリケーションが管 理する論理レコードの集合. „ 入出力テープファイル,共有データベースといった,他のアプ リケーションと共有するファイルが該当する. „ 最小単位はデータファイルと同じ.

(26)

計算方法

外部入力 外部出力 内部論理ファイル 外部インタフェースファイル 照会(問合せ処理) 重要なパラメータ 重み 補正前の合計 単純 × 3 = 平均 × 4 = 複雑 × 6 = 単純 × 4 = 平均 × 5 = 複雑 × 7 = 単純 × 7 = 平均 ×10 = 複雑 ×15 = 単純 × 5 = 平均 × 7 = 複雑 ×10 = 単純 × 3 = 平均 × 4 = 複雑 × 6 =

(27)

計算方法(つづき)

主要補正要因 DI値 データ通信 分散機能 性能 運用負荷(利用制約) トランザクション密度 オンラインデータエントリ エンドユーザ能力 オンライン更新 複雑処理 再利用性 設置容易性 運用容易性 複数サイト 設置変更 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 0~5 (DI合計値)×0.01+0.65= 処理複雑度調整値 補正前の合計 処理複雑度調整値 補正後のFP × =

(28)

主要補正要因の例

C1データ通信 0 バッチアプリケーション 1 遠隔からの印刷あるいはデータエントリ 2 遠隔からの印刷とデータエントリ 3 アプリケーションへの遠隔処理フロントエンド 4 遠隔処理を頻繁に行うアプリケーション 5 遠隔処理中心のアプリケーション

(29)

計算例

外部入力 外部出力 内部論理ファイル 外部インタフェースファイル 照会(問合せ処理) 重要なパラメータ 重み 補正前の合計 10 × 4 = 40 10 × 5 = 50 1 ×10 = 10 1 × 7 = 7 10 × 4 = 40 147 (パラメータの複雑度は全て平均的であるとする)

(30)

計算例(つづき)

主要補正要因 DI値 データ通信 分散機能 性能 運用負荷(利用制約) トランザクション密度 オンラインデータエントリ エンドユーザ能力 オンライン更新 複雑処理 再利用性 設置容易性 運用容易性 複数サイト 設置変更 0 0 4 3 3 4 4 2 3 0 4 4 5 4 40(DI合計値)×0.01+0.65=1.05 147 処理複雑度調整値 1.05 154 補正前の合計 処理複雑度調整値 補正後のFP × =

(31)

SPR法,SPR逆算法(1985)

„ 複雑さの取り扱いを単純にし,FP計算の工数を削減した. „ IBM法の5つの目的に加えて次の3つの目的を持つ. – FPを容易に,かつ,ソフトウェア開発のより早い段階で算 出可能とする. – ソースプログラムの規模を予測することが出来る. – 既存ソフトウェアのFPを逆算することが出来る.

(32)

複雑さの計算

„ 複雑さの主要因を次の3つのみとし,簡単な評価基準によって それぞれの複雑さを求める. – 解決すべき問題,または,アルゴリズムの複雑さ – プログラムの複雑さ – データの複雑さ

(33)

問題の複雑さの評価基準

1 単純なアルゴリズムと計算である. 2 ほとんどが単純なアルゴリズムと計算である. 3 平均的な複雑さのアルゴリズムと計算である. 4 かなり難しいか複雑なアルゴリズムと計算である. 5 非常に難しいアルゴリズムと複雑な計算である.

(34)

プログラムの複雑さの評価基準

1 自動生成等により得られたもの. 2 再利用可能モジュールを用いたきれいな構造を持っている. 3 小さなモジュールと単純なパスのみで構成されている. 4 多少複雑なモジュールとパスを含んでいる. 5 大きなモジュールと複雑なパスで構成されている.

(35)

データの複雑さの評価基準

1 変数がほとんどなく,複雑さも低い単純なデータである. 2 変数の数は多いが単純なデータ構造である. 3 多数のファイル,フィールドとデータを含む. 4 複雑なファイル構造とデータを含む. 5 非常に複雑なファイル構造とデータを含む.

(36)

計算方法

外部入力 外部出力 論理内部ファイル インタフェースファイル 照会(問合せ処理) 重要なパラメータ 重み × 4 = × 5 = ×10 = × 7 = × 4 = 補正前の合計 (問題の複雑さ+データの複雑さ)×0.1+0.4 補正後のファンクションポイント

(37)

ソースプログラムの規模予測

„ FP当りのプログラム行数を調べた統計データに基づいて行う.

ANSI COBOL 74 105 LOC

C 128 LOC

(38)

既存ソフトウェアのFP算出

„ FP当りのプログラム行数を調べた統計データに基づいて行う. „ 複雑さの3要因の合計値で補正する.

(39)

逆算の例

対象:COBOLで10,500行のプログラム 複雑さの3要因の合計値 6

(40)

まとめ

„ ファンクションポイント法は,ソフトウェアの目に見える機能,特 に,ユーザによって意味のある機能を数え挙げることが出来る. „ 経済的生産性を測定することが出来る. „ ソフトウェア開発の初期にも適用可能である. „ ソースプログラムから独立である. „ 測定には訓練が必要であり,一貫性を保つためには注意深さ が必要である.

参照

関連したドキュメント

10例中2例(症例7,8)に内胸動脈のstringsignを 認めた.症例7は47歳男性,LMTの75%狭窄に対し

実行時の安全を保証するための例外機構は一方で速度低下の原因となるため,部分冗長性除去(Par- tial Redundancy

2011年 9月 Cornell Univ., 4th Cornell Conference on Analysis, Probability, and Mathematical Physics on Fractals : 熊谷 隆. 2011年 9月 Beijing, The Fifth Sino-Japanese

[r]

人為事象 選定基準 評価要否 備考. 1 航空機落下 A 不要 落下確率は 10

入学願書✔票に記載のある金融機関の本・支店から振り込む場合は手数料は不要です。その他の金融機

○経済学部志願者は、TOEIC Ⓡ Listening & Reading Test、英検、TOEFL のいずれかの スコアを提出してください。(TOEIC Ⓡ Listening & Reading Test

[*]留意種(選定理由①~⑥は P.11 参照) [ ○ ]ランク外 [-]データ無し [・]非分布. 区部