SlideShare a Scribd company logo
1 of 19
見積勉強会
 FP 編
2008 年 3 月 28 日




   Copyrights 2008   1
アジェンダ
•   FP ってなに?
•   FP のメリットとデメリット
•   試しに FP を出してみよう
•   FP から工数への変換




              Copyrights 2008   2
FP ってなに?
• FP のコンセプト
  従来のライン数に代わりソフトウェアの規模を表すものです。
  ユーザの側から見た論理的な視点でソフトウェアの規模をとらえます。
  開発環境,プログラム言語,開発ツール,DBMSなどの仕様はFPに
   影響を与えません。
  一般的には、 International Function Point Users Groupが策定した
   IFPUG 法 を指します。(今回も IFPUG 法について説明)
  算出方法には、「アプリケーションFP」、「新規開発プロジェクトF
   P」、「機能改良プロジェクトFP」があります。




                       Copyrights 2008                    3
FP のメリットとデメリット
• メリット
  FP は世界共有です。なので、一般的な根拠として提示できます。
  環境、言語に依存せず、システムの規模を計れます。
  方法さえ覚えれば簡単に算出できます。お手軽マクロもあります。

• デメリット
  「機能改良プロジェクトFP」算出方法もありますが、面倒で機能改良
   プロジェクトには不向きです。
  工数を算出するものではないので、工数に変換するには、実績から算出
   した変換係数が必要です。




               Copyrights 2008        4
FP の要素
• FP には、
  機能を測定したトランザクションファンクション
  データを測定したデータファンクション

• があります。




              Copyrights 2008   5
トランザクションファンクションの計測
•   ファンクションタイプ
     3つのファンクションタイプがあります。
         外部入力( EI: External Input )
            DB もしくはファイルへの書き出し処理
         外部出力( EO: External Output )
            外部ファイルからの取得方法(例えば媒体から取得)でデータを取得
             する処理
         外部照会( EQ: External Inquiry )
            単純な DB 検索でデータを取得する処理
•   関連ファイル数( FTR: File Type Referenced )
       対象とするテーブル数もしくはファイル数を把握します。
•   データ項目 ( DET: Data Element Type )
     対象とする項目数を把握します。




                         Copyrights 2008       6
トランザクションファンクションの計測(続
      き)
• FP 箇所
     例えば、登録⇒登録確認という画面遷移があったとします。


     登録画面        登録確認画面
     同一テーブル
     入力項目 5 件
                                     DB
            登録              確認



•   登録画面の FP
     ここでは入力項目があるにせよ DB 更新を行なわないので、 FP は発生し
      ません。
•   登録確認画面の FP
     ここで DB 更新処理が発生します。登録画面の入力数を DB に登録します
      ので、ファンクションタイプは EI 、同一テーブルなので、関連ファイル
      数は1テーブルとなります。データ項目数は、 5 となります。また、

                   Copyrights 2008            7
トランザクションファンクションの計測(続
    き)
• FP 算出
   FP計測シート(入力補助付き) .xls に値を入れてみましょう。




• 結果
   この2画面の機能が有する FP は 3FP となりました。




                    Copyrights 2008     8
データファンクションの計測
      データファンクション
•   データファンクションタイプ
     内部論理ファイル( ILF: Internal Logical File )
         通常、 DB のテーブルです。
     外部インタフェースファイル( EIF: External Interface File )
         通常、 CSV 読み込みなどの外部ファイルです。
•   レコード種類 (RET; Record Element Type)
     通常、 RDB は正規化しているので 1 となります。混在している場合は、正規化さ
      れていない場合は、その要素カテゴリ数(分かれるテーブル数)となります。
•   データ項目数 (DET; Data Element Type)
     通常、テーブルが持つカラム数となります。
     ただし、楽観的排他の為のバージョン番号カラムや、 CREATOR 、 UPDATER など
      は、含めません。(あくまで業務機能のためのカラムをカウントします。)




                            Copyrights 2008           9
データファンクションの計測(続き)
  データファンクション
• FP 箇所
  1 テーブル 5 カラムの場合
  RET は1、 DET は 5 となる。
     テーブル
         ID
        名前
        年齢
        性別          DET 対象
        住所
       E-Mail
    VERSION_NO
     CREATOR
   CREATE_DATE
     UPDATER
   UPDATE_DATE

                  Copyrights 2008   10
データファンクションの計測(続き)
   データファンクション

• FP 算出
   FP計測シート(入力補助付き) .xls に値を入れてみましょう。




• 結果
   このデータが有する FP は 7FP となりました。
  ※ 通常はここで調整係数を掛けますが、本回では割愛します。




                   Copyrights 2008      11
試しに FP を出してみよう
• 課題
  検索⇒一覧⇒新規登録、編集、削除、詳細のいわゆるマスタメンテ系機
   能の見積をします。


• 手順
  FP計測シート(入力補助付き) .xls に以下を登録して FP を算出
    トランザクションファンクションの計測
    データファンクションの計測




                 Copyrights 2008          12
試しに FP を出してみよう
• 画面遷移
   検索、削除




             新規登録                  登録   新規登録
     一覧画面           新規登録画面
                                        確認画面



            編集                     登録    編集
                     編集画面
                                        確認画面




                     Copyrights 2008           13
試しに FP を出してみよう
• 画面構成
        一覧画面


氏名                     性別    男性    女性

                                                          ポップアップで表示
年齢                     住所


                                  検索                      本当に削除しますか?

                                                             削除        キャンセル
氏名     年齢        性別     住所

田中一郎        25   男性     福岡        編集    削除   詳細
                        市・・・・・・
鈴木次郎        25   男性     福岡        編集    削除   詳細
                        市・・・・・・
山田花子        29   女性     福岡        編集    削除   詳細
                        市・・・・・・
ジョン         31   男性     福岡        編集    削除   詳細
                        市・・・・・・

                      新規登録




                                        Copyrights 2008                        14
試しに FP を出してみよう
• 画面構成
  新規登録画面

         氏名               性別       男性   女性

         年齢               住所



                 戻る                登録




  新規登録確認画面

         氏名   田中一郎        性別       男性   女性

         年齢          25   住所       福岡市・・・・・

                キャンセル              確認



                 Copyrights 2008              15
試しに FP を出してみよう
• 画面構成
  編集画面

          氏名   田中一郎        性別       男性   女性

          年齢          25   住所       福岡市・・・・

                  戻る                登録




  編集確認画面

          氏名   田中一郎        性別       男性   女性

          年齢          25   住所       福岡市・・・・・

                 キャンセル              確認



                  Copyrights 2008              16
試しに FP を出してみよう
• テーブル構成


      会員      住所1                住所2
       氏名     住所1 CD             住所1 CD
       年齢     住所1名               住所2 CD
      性別 CD                      住所2名
     住所1 CD
     住所2 CD
      住所3




               Copyrights 2008            17
FP から工数への変換
• 変換係数
  過去の実績から変換係数は、 8FP/ 人月としています。
  算出された工数には、基本設計からシステムテストまでの工数を含みます。
  算出された工数には、 PM 工数、 SE 工数、 DBA 工数、移行工数など、直接機能に
   関わらないもしくは間接人員の工数も含みます。

  なお、詳細から単体テストというようなスコープの場合はスコープの工数を乗じて
   工数とします。(なので、この場合は、 0.6 を乗じる)

  さて、何人月になりましたか?


                                            フェーズ   比率
                                                   [%]
                                     基本設計
                                                    20%
                                     詳細設計
                                                    30%
                                     実装・単体テスト
                                                    30%
                                     サブ内結合テスト
                                                     8%
                                     サブ外結合テスト
                                                     6%
                                     外部結合テスト
                                                     6%


                   Copyrights 2008                        18
最後に
• もっと詳しく知りたい人へ
  FP 測定ガイドというマニュアルを用意しています。
  是非、読んで理解を深めて下さい。




                 Copyrights 2008   19

More Related Content

What's hot

バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018ak_shio_555
 
スマートフォンゲームのチート事情
スマートフォンゲームのチート事情スマートフォンゲームのチート事情
スマートフォンゲームのチート事情直生 亀山
 
StoryboardでUIを使いまわす
StoryboardでUIを使いまわすStoryboardでUIを使いまわす
StoryboardでUIを使いまわすMasaki Fuke
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
Spring bootでweb バリデート編
Spring bootでweb バリデート編Spring bootでweb バリデート編
Spring bootでweb バリデート編なべ
 
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftTomohiro Kumagai
 
Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編Microsoft Azure Japan
 
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋Yahoo!デベロッパーネットワーク
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)Youichiro Miyake
 
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Masato Fujitake
 
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdftaisa831
 
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークSQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークke-m kamekoopa
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考えるtomo_masakura
 
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化健一 辰濱
 
ゲームAI入門(後半)
ゲームAI入門(後半)ゲームAI入門(後半)
ゲームAI入門(後半)Youichiro Miyake
 
CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」鈴木 セシル
 

What's hot (20)

バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
 
スマートフォンゲームのチート事情
スマートフォンゲームのチート事情スマートフォンゲームのチート事情
スマートフォンゲームのチート事情
 
StoryboardでUIを使いまわす
StoryboardでUIを使いまわすStoryboardでUIを使いまわす
StoryboardでUIを使いまわす
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
Spring bootでweb バリデート編
Spring bootでweb バリデート編Spring bootでweb バリデート編
Spring bootでweb バリデート編
 
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
 
Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編Smart storeを実現するAzureサービス IoT編
Smart storeを実現するAzureサービス IoT編
 
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋
新卒1年目が語る「ヤフーに入ってどう?」 #ヤフー名古屋
 
アジャイルRCA
アジャイルRCAアジャイルRCA
アジャイルRCA
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
 
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
 
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
 
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークSQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考える
 
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
 
ゲームAI入門(後半)
ゲームAI入門(後半)ゲームAI入門(後半)
ゲームAI入門(後半)
 
CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」
 
DVCSとGitの基礎
DVCSとGitの基礎DVCSとGitの基礎
DVCSとGitの基礎
 

見積勉強会(Fp編)

  • 1. 見積勉強会 FP 編 2008 年 3 月 28 日 Copyrights 2008 1
  • 2. アジェンダ • FP ってなに? • FP のメリットとデメリット • 試しに FP を出してみよう • FP から工数への変換 Copyrights 2008 2
  • 3. FP ってなに? • FP のコンセプト  従来のライン数に代わりソフトウェアの規模を表すものです。  ユーザの側から見た論理的な視点でソフトウェアの規模をとらえます。  開発環境,プログラム言語,開発ツール,DBMSなどの仕様はFPに 影響を与えません。  一般的には、 International Function Point Users Groupが策定した IFPUG 法 を指します。(今回も IFPUG 法について説明)  算出方法には、「アプリケーションFP」、「新規開発プロジェクトF P」、「機能改良プロジェクトFP」があります。 Copyrights 2008 3
  • 4. FP のメリットとデメリット • メリット  FP は世界共有です。なので、一般的な根拠として提示できます。  環境、言語に依存せず、システムの規模を計れます。  方法さえ覚えれば簡単に算出できます。お手軽マクロもあります。 • デメリット  「機能改良プロジェクトFP」算出方法もありますが、面倒で機能改良 プロジェクトには不向きです。  工数を算出するものではないので、工数に変換するには、実績から算出 した変換係数が必要です。 Copyrights 2008 4
  • 5. FP の要素 • FP には、  機能を測定したトランザクションファンクション  データを測定したデータファンクション • があります。 Copyrights 2008 5
  • 6. トランザクションファンクションの計測 • ファンクションタイプ  3つのファンクションタイプがあります。  外部入力( EI: External Input )  DB もしくはファイルへの書き出し処理  外部出力( EO: External Output )  外部ファイルからの取得方法(例えば媒体から取得)でデータを取得 する処理  外部照会( EQ: External Inquiry )  単純な DB 検索でデータを取得する処理 • 関連ファイル数( FTR: File Type Referenced )  対象とするテーブル数もしくはファイル数を把握します。 • データ項目 ( DET: Data Element Type )  対象とする項目数を把握します。 Copyrights 2008 6
  • 7. トランザクションファンクションの計測(続 き) • FP 箇所  例えば、登録⇒登録確認という画面遷移があったとします。 登録画面 登録確認画面 同一テーブル 入力項目 5 件 DB 登録 確認 • 登録画面の FP  ここでは入力項目があるにせよ DB 更新を行なわないので、 FP は発生し ません。 • 登録確認画面の FP  ここで DB 更新処理が発生します。登録画面の入力数を DB に登録します ので、ファンクションタイプは EI 、同一テーブルなので、関連ファイル 数は1テーブルとなります。データ項目数は、 5 となります。また、 Copyrights 2008 7
  • 8. トランザクションファンクションの計測(続 き) • FP 算出  FP計測シート(入力補助付き) .xls に値を入れてみましょう。 • 結果  この2画面の機能が有する FP は 3FP となりました。 Copyrights 2008 8
  • 9. データファンクションの計測 データファンクション • データファンクションタイプ  内部論理ファイル( ILF: Internal Logical File )  通常、 DB のテーブルです。  外部インタフェースファイル( EIF: External Interface File )  通常、 CSV 読み込みなどの外部ファイルです。 • レコード種類 (RET; Record Element Type)  通常、 RDB は正規化しているので 1 となります。混在している場合は、正規化さ れていない場合は、その要素カテゴリ数(分かれるテーブル数)となります。 • データ項目数 (DET; Data Element Type)  通常、テーブルが持つカラム数となります。  ただし、楽観的排他の為のバージョン番号カラムや、 CREATOR 、 UPDATER など は、含めません。(あくまで業務機能のためのカラムをカウントします。) Copyrights 2008 9
  • 10. データファンクションの計測(続き) データファンクション • FP 箇所  1 テーブル 5 カラムの場合  RET は1、 DET は 5 となる。 テーブル ID 名前 年齢 性別 DET 対象 住所 E-Mail VERSION_NO CREATOR CREATE_DATE UPDATER UPDATE_DATE Copyrights 2008 10
  • 11. データファンクションの計測(続き) データファンクション • FP 算出  FP計測シート(入力補助付き) .xls に値を入れてみましょう。 • 結果  このデータが有する FP は 7FP となりました。 ※ 通常はここで調整係数を掛けますが、本回では割愛します。 Copyrights 2008 11
  • 12. 試しに FP を出してみよう • 課題  検索⇒一覧⇒新規登録、編集、削除、詳細のいわゆるマスタメンテ系機 能の見積をします。 • 手順  FP計測シート(入力補助付き) .xls に以下を登録して FP を算出  トランザクションファンクションの計測  データファンクションの計測 Copyrights 2008 12
  • 13. 試しに FP を出してみよう • 画面遷移 検索、削除 新規登録 登録 新規登録 一覧画面 新規登録画面 確認画面 編集 登録 編集 編集画面 確認画面 Copyrights 2008 13
  • 14. 試しに FP を出してみよう • 画面構成  一覧画面 氏名 性別 男性 女性 ポップアップで表示 年齢 住所 検索 本当に削除しますか? 削除 キャンセル 氏名 年齢 性別 住所 田中一郎 25 男性 福岡 編集 削除 詳細 市・・・・・・ 鈴木次郎 25 男性 福岡 編集 削除 詳細 市・・・・・・ 山田花子 29 女性 福岡 編集 削除 詳細 市・・・・・・ ジョン 31 男性 福岡 編集 削除 詳細 市・・・・・・ 新規登録 Copyrights 2008 14
  • 15. 試しに FP を出してみよう • 画面構成  新規登録画面 氏名 性別 男性 女性 年齢 住所 戻る 登録  新規登録確認画面 氏名 田中一郎 性別 男性 女性 年齢 25 住所 福岡市・・・・・ キャンセル 確認 Copyrights 2008 15
  • 16. 試しに FP を出してみよう • 画面構成  編集画面 氏名 田中一郎 性別 男性 女性 年齢 25 住所 福岡市・・・・ 戻る 登録  編集確認画面 氏名 田中一郎 性別 男性 女性 年齢 25 住所 福岡市・・・・・ キャンセル 確認 Copyrights 2008 16
  • 17. 試しに FP を出してみよう • テーブル構成 会員 住所1 住所2 氏名 住所1 CD 住所1 CD 年齢 住所1名 住所2 CD 性別 CD 住所2名 住所1 CD 住所2 CD 住所3 Copyrights 2008 17
  • 18. FP から工数への変換 • 変換係数  過去の実績から変換係数は、 8FP/ 人月としています。  算出された工数には、基本設計からシステムテストまでの工数を含みます。  算出された工数には、 PM 工数、 SE 工数、 DBA 工数、移行工数など、直接機能に 関わらないもしくは間接人員の工数も含みます。  なお、詳細から単体テストというようなスコープの場合はスコープの工数を乗じて 工数とします。(なので、この場合は、 0.6 を乗じる)  さて、何人月になりましたか? フェーズ 比率 [%] 基本設計 20% 詳細設計 30% 実装・単体テスト 30% サブ内結合テスト 8% サブ外結合テスト 6% 外部結合テスト 6% Copyrights 2008 18
  • 19. 最後に • もっと詳しく知りたい人へ  FP 測定ガイドというマニュアルを用意しています。  是非、読んで理解を深めて下さい。 Copyrights 2008 19