第10章 ファンクション・ポイント

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

第39章 ISO 15504

再利用アセスメント 計画 実行及び制御 レビュー及び評価ソフトウェアの再利用を行う組織では 再利用施策管理者 という人が位置づけされることになっており このプロセスはその人が組織の中で再利用を実施するために行うべき作業を定義したものである 再利用資産管理プロセス の目的は 構想から廃止までの再利用資

第16部 ソフトウェア・プロセスの改善

第49章 プロジェクト管理のポイント

第4部 ソフトウェアについての計測

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

第7章 ソフトウェアの品質保証

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt


untitled

(Microsoft PowerPoint - JaSST 10 LT\(\203e\203X\203g\201E\203q\203X\203g\203\212\201[\) ppt)

第 1 部ファンクションポイントとは

C#の基本

と 測定を繰り返した時のばらつき の和が 全体のばらつき () に対して どれくらいの割合となるかがわかり 測定システムを評価することができる MSA 第 4 版スタディガイド ジャパン プレクサス (010)p.104 では % GRR の値が10% 未満であれば 一般に受容れられる測定システムと

PowerPoint プレゼンテーション

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

PowerPoint プレゼンテーション

ISO 9001:2015 改定セミナー (JIS Q 9001:2015 準拠 ) 第 4.2 版 株式会社 TBC ソリューションズ プログラム 年版改定の概要 年版の6 大重点ポイントと対策 年版と2008 年版の相違 年版への移行の実務

技術士総合監理部門.indd

Using VectorCAST/C++ with Test Driven Development

プロジェクトマネジメント知識体系ガイド (PMBOK ガイド ) 第 6 版 訂正表 - 第 3 刷り 注 : 次の正誤表は PMBOK ガイド第 6 版 の第 1 刷りと第 2 刷りに関するものです 本 ( または PDF) の印刷部数を確認するには 著作権ページ ( 通知ページおよび目次の前 )

はじめてのPFD

NEXCESS基礎コース01 組込みソフトウェア開発技術の基礎 ソフトウェア開発プロセス編

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

今日のお話 実装とは? 達成基準と達成方法 実装チェックリストとは? 実装チェックリストの作り方 作成のコツと注意点 まとめ

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

PowerPoint プレゼンテーション

IATF16949への移行審査

パラダイムシフトブック.indb

(Microsoft PowerPoint - WQ21JDEadapter\215\\\220\254\216\350\217\207\217\221_ ppt)

スクラムと監査についての一考 システム監査人協会近畿支部 近藤博則

JACi400のご紹介~RPGとHTMLで簡単Web化~

目次 1. 会社紹介 2. 小規模ソフトウェア開発のプロセス改善 3. 改善後の開発現場に現れてきた気になる傾向 4. 小集団改善活動 5. 当社が考える小規模開発 1/20

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

どのような便益があり得るか? より重要な ( ハイリスクの ) プロセス及びそれらのアウトプットに焦点が当たる 相互に依存するプロセスについての理解 定義及び統合が改善される プロセス及びマネジメントシステム全体の計画策定 実施 確認及び改善の体系的なマネジメント 資源の有効利用及び説明責任の強化

クライアントソフトの導入方法 (macos 版 ) 日本医師会 ORCA 管理機構株式会社

変更要求管理テンプレート仕様書

目次 取組み概要 取組みの背景 取組みの成果物 適用事例の特徴 適用分析の特徴 適用事例の分析結果から見えたこと JISAによる調査結果 どうやって 実践のヒント をみつけるか 書籍発行について紹介 今後に向けて 2

Keysight Software Manager (KSM)でのライセンス発行手続きについて

横浜市環境科学研究所

表 3 厚生労働省新旧ガイドライン目次比較 は新ガイドラインで追加された項目 コンピュータ使用医薬品等製造所適正管理ガイドライン 第 1 目的 1. 総則 1.1 目的 第 2 適用の範囲 2. 適用の範囲 第 3 開発業務 1. 開発検討段階 (1) 開発段階の責任体制の確立 (2) 開発マニュア

16年度第一回JACB品質技術委員会

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

15288解説_D.pptx

RMS(Root Mean Square value 実効値 ) 実効値は AC の電圧と電流両方の値を規定する 最も一般的で便利な値です AC 波形の実効値はその波形から得られる パワーのレベルを示すものであり AC 信号の最も重要な属性となります 実効値の計算は AC の電流波形と それによって

PowerPoint プレゼンテーション

ISO 9001:2015 から ISO 9001:2008 の相関表 JIS Q 9001:2015 JIS Q 9001: 適用範囲 1 適用範囲 1.1 一般 4 組織の状況 4 品質マネジメントシステム 4.1 組織及びその状況の理解 4 品質マネジメントシステム 5.6 マネジ

1 BCM BCM BCM BCM BCM BCMS

過去問セミナーTM

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

5. 文書類に関する要求事項はどのように変わりましたか? 文書化された手順に関する特定の記述はなくなりました プロセスの運用を支援するための文書化した情報を維持し これらのプロセスが計画通りに実行されたと確信するために必要な文書化した情報を保持することは 組織の責任です 必要な文書類の程度は 事業の

情報分野のアクセシビリティ標準について

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Copyright Compita Japan ISO33k シリーズとは? これまで使用されてきたプロセスアセスメント標準 (ISO/IEC 本稿では以降 ISO15504 と略称する ) は 2006 年に基本セットが完成し 既に 8 年以上が経過しています ISO

ANOVA

一般社団法人ビジネス機械・情報システム産業協会

FSMS ISO FSMS FSMS 18

Microsoft Word - mm1305-pg(プロマネ).docx

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Webシステムの見積手法

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft PowerPoint - IAF フォーラム2015講演資料_PLCopenJapan_A02.pptx

プログラミング入門1

Transcription:

第 10 章ファンクション ポイント 私個人の失敗からファンクション ポイントの話は 私個人の失敗談から始めたい 1980 年頃 当時私が勤めていた日興證券が 債券投資情報システム と呼ぶ情報システムを開発することにした 私はその情報システムの規模を 100 万ステップと見積もった その情報システムの開発を受託することになる某 SI 企業の技術者は その規模を 200 万ステップと見積もった 100 万ステップか 200 万ステップかで 私とその企業の営業担当者の間でしばらく激しい論争をして 最終的に私が勝って 100 万ステップでその SI 企業と契約し 開発作業に入った 2 年後にその情報システムが完成し結果をチェックすると 開発したステップ数 ( ステートメント数 ) はおおよそ 200 万だった つまり SI 企業の技術者の見積もりが正しかったことが証明された 別の言い方をすれば 私の見積もりは大外れだった その SI 企業はこの開発で 大赤字を出した 私はそれまで 情報システムの規模の見積もりにそれなりに自信を持っていた しかしこの結果を受けて私は完全に自信を喪失し それ以降私は情報システムの規模の見積もりを一切行わないことにした 当時 日興證券の子会社の日興システムセンター ( 企業名はいずれも当時のもの ) は 情報システムの開発にプログラム言語として PL/1 を使っていた したがって私の見積もりは PL/1 でその情報システムを開発する前提に立っていた 一方その SI 企業は もっぱら COBOL を使用していた したがってその企業の技術者の見積もりは COBOL ベースのものだった そして実際の開発も COBOL を使ってなされた つまり後になって分かったことだが 規模の数字の違いは使用するプログラム言語の表現力の違いに起因したものだった 1980 年頃には 私の耳にファンクション ポイントの話はまだ届いていなかった したがって同じ情報システムの開発で 使用するプログラム言語が変わることによって開発する量が大きく変わることを 私は知らなかった その後ケーパース ジョーンズ (Capers Jones) の本 1 でファンクション ポイントを知り 結果として私の見積もりもそう外れていた訳ではないことを知った 私はそれなりに自信を取り戻したけれど 時はすでに遅かった 長い間情報システムの規模の見積もりを避け続けていたため 自信は取り戻したけれど以前の能力が戻った訳ではなかった これが 私の失敗談である プログラムのステップ数今でもまだ情報システムの開発で 規模の見積もりにプログラムのステップ数が使用されることがある しかしソフトウェアの規模の単位にステップ数を使用することは 以下の理由で望ましくない JON08 使用するプログラム言語によって 数値に大きな差が出る ステップ数の数え方にいくつかの方法があって 統一されたルールがない そのためステップ数を使って表現されたプロジェクトの生産性や品質のデータは 同じ言語を使用したものだけの間でも比較が難しい 1 参考文献で挙げたケーパース ジョ - ンズの今の本 JONES08 は第 3 版だが その初版の翻訳本は 1993 年に発行されている 私は その直後にその本を読んだ 95

最近は複数の言語を使用するプロジェクトがあったり Visual Basic のようにプルダウンメニュー方式などでプログラミングする言語が使われたりで ステップ数の概念が希薄になってきている プログラムのステップ数は プロジェクトの中頃のプログラム構築の作業が終わらなければ確定できない アセンブラのような低水準言語を使用することで Java などの高水準言語と比較して高い生産性を達成したような結果を出す ( この詳細な話は 後述する ) 利用者や開発を委託した立場の人には プログラムのステップ数は意味の無いものである 要件定義書や各種設計書 利用者用の文書などはプログラムのステップ数とは直接関係しない ここで記述したようなことから生じる問題を避けるため プログラムのステップ数に代えてファンクション ポイントを使用することが好ましい ファンクション ポイントとは何かそれでは ファンクション ポイントとは 何だろうか ISO と IEC IEEE が合同で作成した用語集には ファンクション ポイントの説明として以下の 2 つが挙げられている [ISO10a] 1. アプリケーション 又はプロジェクトのサイズを表す単位 2. アプリケーション ソフトウェアの機能的なサイズを表す量 後述するように 今はファンクション ポイントに多くの種類がある しかし当初は 1 つの種類しかなく それはビジネス アプリケーションの機能の大きさを表すものだった つまりこれまで述べてきたステップ数による計測の弊害を避けるために 1979 年に 当時 IBM に勤めていた A.J. アルブレヒト (A. J. Albrecht) がファンクション ポイントの構想を発表した 2 アルブレヒトは ビジネス アプリケーションの機能の大きさは次の 5 つで表すことができるとした 入力 出力 照会 内部論理ファイル 外部インタフェースファイルそしてこのそれぞれが 3 段階の複雑さを持ち それによって機能の大きさが変わるとした その複雑さによる機能の大きさの変化について 今の IFPUG 法の数値を図表 10-1 に示す つまりあるプログラムに注目すると そのプログラムの前記 5 種類の要素のそれぞれの数とその複雑度を決定し 図表 10-1 で示す数値を合計することで そのプログラムの機能量が求まる これを 未調整ファンクション ポイント という 2 アルブレヒトは 1979 年の秋に開かれた IBM ユーザー団体である GUIDE と SHARE の合同シンポジウムで ファンクション ポイントについて発表した 96

未調整 という言葉が付いていることからも分かるように ここで求めた数値を調整する方法がある 同じトランザクションの処理といっても 例えばオンラインの処理とバッチ方式での処理では難しさが異なることがある 集中処理方式の場合と分散処理の場合でも やはり難しさは異なる したがって図表 10-2 に示す 14 項目を調整のための項目として それぞれについて今ファンクション ポイントを求めようとしている情報システムについて 0 から 5 までの 6 段階で評価し まずその評価点の合計値を出す そしてその合計値を使って ファンクション ポイントの数値を補正するという段階で調整を行う 3 図表 10-1 複雑さの変動による機能の大きさの変化 [UZAWA13] 複雑度 低 中 高 入力 3 4 6 出力 4 6 7 照会 3 4 6 論理ファイル 7 10 15 外部インタフェースファイル 5 7 10 図表 10-2 調整のための項目 [UZAWA13] 1 データ通信 2 分散データ処理 3 性能 4 高負荷構成 5 トランザクション率 6 オンラインデータ入力 7 利用者効率 8 オンライン更新 9 複雑な処理 10 再利用可能性 11 導入容易性 12 運用性 13 複数サイト 14 変更容易性 この調整係数の合計値 (TDI) を次式に代入して 調整係数 (VAF) を求める VAF = (TDI * 0.01)+ 0.65 つまりこの方式で調整した場合 調整後のファンクション ポイントは未調整ファンクション ポイントの 65% から 130% の範囲になる 4 3 未修正ファンクション ポイントを求める時の複雑度の判定は さほど難しくはない しかし調整項目の評価は かなり難しい これに的確に対応しようとすると 後述する JFPUG から CPM(Counting Practice Manual) を入手し 併せて教育を受ける などが必要である 4 ここで述べているファンクション ポイントの計測方法は IFPUG が発行している CPM に基づいているため IFPUG 法と呼ばれている 97

なおこの計算方式を用いると 要件定義が明確になった時点でファンクション ポイントの 数値を求めることができる しかし一般に ファンクション ポイントの計測は容易ではない 5 ファンクション ポイントに関わる団体アルブレヒトの発表後すぐに この計測法を広める団体が活動を始めた この団体を International Function Point Users Group(IFPUG) と呼ぶ この団体は会員制の非営利の組織で ファンクション ポイント法の計測ルールを決めたり その計測のための訓練を実施したり ソフトウェア計測技術の普及や支援を行っている [JIS10a] 日本にはその日本支部があり 日本ファンクションポイントユーザー会 (Japan Function Point Users Group:JFPUG) 6 という JFPUG は米国の IFPUG が決めた計測のルールを記載したマニュアル (Counting Practice Manual:CPM) を翻訳して販売したり 計測方法の講習や訓練を実施したりしている ファンクション ポイントとステップ数 ケーパース ジョ - ンズはその著書の中で いくつかのプログラム言語についてファンクシ ョン ポイント当たりのステップ数を提示している その一部を図表 10-3 に示す 図表 10-3 1 ファンクション ポイント当たりのステップ数 [JON08] 世代 1 2 3 言語 ステップ数 /FP 低中央値高 Basic Aemebly 200 320 450 Macro Asembly 150 213 300 C 60 128 170 Basic 70 128 165 Fortran 75 107 160 ALGOL 68 107 165 COBOL 65 107 150 PASCAL 50 91 125 PL/1 65 80 95 Ada83 60 71 80 Lisp 25 64 80 C++ 30 53 125 Ada9x 28 29 110 Visual Basic 20 32 37 APL 10 32 45 SMALLTALK 15 21 40 SQL 7 12 15 Spread Sheet 3 6 9 IFPUG 法以外にいくつかのファンクション ポイントの計測法がある その中に逆算法と いうものがあり 実際に記述したプログラムのステップ数から図表 10-3 のような表を使用し 5 この調整は必ずしも容易ではないので 今でも未調整のままでの数値がよく用いられる 6 JFPUG のホームページの URL は http://www.jfpug.gr.jp/ である 98

てファンクション ポイントに変換するもので ある意味で簡便にファンクション ポイントの数値を求めることができる しかしケーパース ジョ-ンズ (Capers Jones) は この方法は誤差が大きいので注意するようにと書いている [JON08] 確かに COBOL を例にとると 1 ファンクション ポイント当たりのステップ数は最低で 65 最高で 150 と この間に 2 倍以上に開きがある 図表 10-4 主なファンクション ポイント計測法 ([JON08] [UZAWA13]) 計測法 概要 ISO 規格 JIS 規格 IFPUG 法 Alan J. Albrechtの手法を引き継いでいる 米 ISO/IEC 20926: JIS X 0142: 国や日本など 広く整怪獣に普及している 2009 2010 COSMIC 法 ソフトウェアの計測に関する国際的な研究グ ISO/IEC 19761: JIS X 0143: ループCOSMICが考案した手法 2011 2013 Mark-Ⅱ 法 1983 年に英国のソフトウェア研究家 Charles ISO/IEC 20968: Symonsが発表した手法 2002 NESMA 法 オランダのソフトウェア協会 NESMAが考案した ISO/IEC 24570: 手法 2005 SPR 法 1985 年に米国のSPR 社が発表した手法 ファンクションポ David Consulting GroupのDavid Herronが開 イントライト 発したもの フルファンクショ 1997 年頃に ケベック大学のAlain Abranが開 ンポイント 発した手法 ファンクション ポイントの数値が分かっているパターン マッチ既存の情報システムなどと比較することで ング簡便に数値を求める ストーリー ポイント アジャイル方式の開発で ユーザー要求を展開した ストーリー で機能の規模を表現する オブジェクトポイ FPの概念をオブジェクト指向の概念と混合し ント たもの 未調整ファンクションポイント IFPUG 法で 調整作業を行わないもの ユースケースポ IFPUG 法の基本要素をベースに オブジェクト イント 指向のいくつかの要素を付加したもの WEBオブジェクトポイント Webベースのアプリケーション向けの機能規模測定法 逆算法 ソースプログラムのステップ数からファンクション ポイントを逆算する方法 その他のファンクション ポイント計測法 IFPUG 法については 計測法の概要を示した この方法は今ではそれに限定されている訳ではないが ビジネス アプリケーションの計測からスタートしたのでそれに向いたものを計測法のパラメータで使用している しかし世の中のソフトウェアは 今やビジネス アプリケーションだけとは限らない 組込みソフトがあり 制御系のソフトもある 日本はゲームソフトの分野で たいへん健闘している 開発方法にも構造化技法やデータ中心アプローチの他に オブジェクト指向技法もある 7 これらを受けて ファンクション ポイントの計測法も今は IFPUG 法に加えて いくつかの 7 各種の開発方法論については 第 6 部で記述する 99

ものが存在している その中には ISO が計測法を国際標準にしているものもある 図表 10-4 で IFPUG 法を含めて 主なファンクション ポイント計測法をまとめた ステップ数を使用することで生じる矛盾の例ケーパース ジョ -ンズの著書に アセンブラのような低水準言語を用いると生産性が高く Java のような高水準言語を用いると生産性が低く出るという矛盾が発生することについての詳細は説明がある [JON08] ここで それを紹介したい 仮に ファンクション ポイントによる全体の規模が 35 である情報システムを アセンブラと Java を使って開発するとする アセンブラには 7,500 ステップが必要であり Java は 2,500 ステップですむ この概要を 図表 10-5 に示す 要件定義や設計 テスト ユーザー用の資料の作成などは使用する言語に関係なく一定 (3 人月 ) である コーディングはアセンブラでは 3 人月 Java では 1 人月とすると 合計の工数はアセンブラの場合 6 人月 Java の場合 4 人月になる これでそれぞれの場合のステップ数 ( アセンブラは 7,500 Java は 2,500) を割ると 人月当たりのコード行数はアセンブラの場合 1.250 ステップ / 人月 Java の場合 625 ステップ / 人月となり アセンブラを使用した方が生産性が高いような数値が出る 図表 10-5 ステップ数が不適切な例 [JON08] アセンブラ Java 情報システムのコード行数 7,500 2,500 コーティング以外の工数 ( 人月 ) 3 3 コーディング工数 ( 人月 ) 3 1 総プロジェクト工数 ( 人月 ) 6 4 人月当たりのコード行数 1,250 625 これを ファンクション ポイントを使って計算すると 当然 Java の方の生産性が高いと いう結果になる ( 図表 10-6 参照 ) 図表 10-6 ファンクション ポイントの場合 [JON08] アセンブラ Java 情報システムのファンクション ポイント 35 35 コーティング以外の工数 ( 人月 ) 3 3 コーディング工数 ( 人月 ) 3 1 総プロジェクト工数 ( 人月 ) 6 4 人月当たりのファンクション ポイント 5.83 8.75 固定費の大きな製造プロセスでは 生産数量が減少すると単位当たりのコストは上昇する これは 産業革命直後から分かっていたことである [JON08] これが 情報システム開発で現れた例である これも ファンクション ポイントを使う方がステップ数を使うより好ましいことの 1 つの例である 100

キィワード ファンクション ポイント ステップ数 未調整ファンクション ポイント IFPUG IFPUG 法 JFPUG CPM 略語 IFPUG:International Function Point Users Group JFPUG:Japan Function Point Users Group CPM:Counting Practice Manual 人名 ケーパース ジョーンズ (Capers Jones) A.J. アルブレヒト (A. J. Albrecht) 規格 IFPUG CPM 参考文献とリンク先 [ISO10a] ISO/IEC/IEEE, System and software engineering Vocabulary-ISO/IEC/IEEE 24765:2010(E), ISO/IEC, 2010-12-15. [JIS10a] 日本工業標準調査会審議 ソフトウェア技術 - 機能規模測定 -IFPUG 機能規模測定法 (IFPUG4.1 版未調整ファンクションポイント ) 計測マニュアル 日本規格協会 平成 22 年. [JON08] Capers Jones 著 富野壽 小坂恭一監訳 ソフトウェア開発の定量化手法生産性と品質の向上を目指して第 3 版 構造計画研究所 2010 年. この本の原書は 以下の通りである Capers Jones, Applied Software Measurement: Global Analysis of Productivity and Quality Third Edition, McGraw-Hill, 2008. [UZAWA13] 鵜澤仁著 実践! 実例で学ぶファンクションポイント法 ( 財 ) 経済調査会 平成 25 年. (2014 年 ( 平成 26 年 )5 月 2 日新規作成 ) 101

102 第 10 章ファンクション ポイント