Estimation-techniques-quick-guide

提供:Dev Guides
移動先:案内検索

推定手法-概要

  • 推定値*は、推定値または近似値を見つけるプロセスです。これは、入力データが不完全、不確実、または不安定な場合でも、何らかの目的に使用できる値です。

見積もりにより、特定のシステムまたは製品を構築するのにどれだけのお金、労力、リソース、時間がかかるかが決まります。 推定はに基づいています-

  • 過去のデータ/過去の経験
  • 利用可能なドキュメント/知識
  • 仮定
  • 特定されたリスク

ソフトウェアプロジェクトの推定の4つの基本的な手順は次のとおりです-

  • 開発製品のサイズを見積もります。
  • 労力を人月または人時間で見積もります。
  • 暦月でスケジュールを見積もります。
  • 合意された通貨でプロジェクトの費用を見積もります。

推定に関する観察

  • 見積もりは、プロジェクトで一度だけのタスクである必要はありません。 それは中に行うことができます-
  • プロジェクトの取得。
  • プロジェクトの計画。
  • 必要に応じたプロジェクトの実行。
  • 見積もりプロセスを開始する前に、プロジェクトの範囲を理解する必要があります。 過去のプロジェクトデータがあると便利です。
  • プロジェクトメトリックは、定量的な推定値を生成するための履歴的な視点と貴重な情報を提供できます。
  • 計画では、責任と説明責任につながるため、技術マネージャーとソフトウェアチームが最初のコミットメントを行う必要があります。
  • 過去の経験は大いに役立ちます。
  • 少なくとも2つの推定手法を使用して、推定値に到達し、結果の値を調整します。 推定値の調整については、次のセクションの分解手法を参照してください。
  • 計画は反復的であり、時間の経過や詳細がわかったときに調整できるようにする必要があります。

一般的なプロジェクト推定アプローチ

広く使用されているプロジェクト推定アプローチは、*分解手法*です。 分解技術は、分割して征服するアプローチを取ります。 プロジェクトを主要な機能または関連するソフトウェアエンジニアリングアクティビティに分解することにより、サイズ、工数、およびコストの見積もりが段階的に実行されます。

  • ステップ1 *-ビルドするソフトウェアの範囲を理解します。
  • ステップ2 *-ソフトウェアサイズの推定値を生成します。
  • スコープのステートメントから始めます。
  • ソフトウェアを、それぞれ個別に推定できる関数に分解します。
  • 各関数のサイズを計算します。
  • ベースラインの生産性指標にサイズ値を適用することにより、労力とコストの見積もりを導き出します。
  • 関数の推定値を組み合わせて、プロジェクト全体の全体的な推定値を作成します。
  • ステップ3 *-労力とコストの見積もりを生成します。 プロジェクトを関連するソフトウェアエンジニアリングアクティビティに分解することで、労力とコストの見積もりに到達できます。
  • プロジェクトを完了するために実行する必要のある一連のアクティビティを特定します。
  • アクティビティを測定可能なタスクに分割します。
  • 各タスクを完了するのに必要な労力(時間/日単位)を見積もります。
  • アクティビティのタスクのエフォート推定値を組み合わせて、アクティビティの推定値を作成します。
  • データベースから各アクティビティのコストユニット(つまり、コスト/ユニットエフォート)を取得します。
  • 各アクティビティの総作業量とコストを計算します。
  • 各アクティビティの労力とコストの見積もりを組み合わせて、プロジェクト全体の全体的な労力とコストの見積もりを作成します。
  • ステップ4 *-推定値の調整:ステップ3で得られた値とステップ2で得られた値を比較します。 両方の推定セットが一致する場合、数値の信頼性は高くなります。 それ以外の場合、大きく異なる推定値が発生した場合は、さらに調査を実施します-
  • プロジェクトの範囲が十分に理解されていないか、誤解されています。
  • 機能やアクティビティの内訳は正確ではありません。
  • 推定手法に使用される履歴データは、アプリケーションにとって不適切であるか、廃止されているか、誤って適用されています。
  • ステップ5 *-発散の原因を特定し、推定値を調整します。

推定精度

精度は、何かが現実にどれだけ近いかを示します。 推定値を生成するたびに、誰もが数値が現実にどれだけ近いかを知りたいと思うでしょう。 生成時に得たデータを考慮して、すべての見積もりをできるだけ正確にする必要があります。 そしてもちろん、数字に誤った自信を抱かせるような方法で見積もりを提示したくはありません。

推定の精度に影響を与える重要な要因は-

  • すべての推定値の入力データの精度。
  • 推定計算の精度。
  • モデルのキャリブレーションに使用される履歴データまたは業界データが、推定しているプロジェクトとどの程度一致しているか。
  • 組織のソフトウェア開発プロセスの予測可能性。
  • 製品要件とソフトウェアエンジニアリングの取り組みをサポートする環境の両方の安定性。
  • 実際のプロジェクトが慎重に計画、監視、および制御されたかどうか、予期しない遅延を引き起こす大きな驚きは発生しなかったかどうか。

以下は、信頼できる推定値を達成するためのガイドラインです-

  • 既に完了している同様のプロジェクトに基づいて見積もりを行います。
  • 比較的単純な分解手法を使用して、プロジェクトのコストと労力の見積もりを生成します。
  • ソフトウェアのコストと労力の見積もりには、1つ以上の経験的見積もりモデルを使用します。

この章の推定ガイドラインのセクションを参照してください。

正確性を確保するために、少なくとも2つの手法を使用して推定し、結果を比較することを常にお勧めします。

推定の問題

多くの場合、プロジェクトマネージャーは、スケジュールの見積もりに頼ってサイズを見積もります。 これは、トップマネジメントまたはマーケティングチームによって設定されたタイムラインが原因である可能性があります。 ただし、理由が何であれ、これが行われた場合、後の段階で、スコープの変更に対応するためのスケジュールを見積もることは困難です。

推定中に、特定の仮定が行われる場合があります。 推定シートに前提条件をまだ記載していないものもあるため、これらの前提条件をすべて見積シートに記載することが重要です。

優れた推定値にも固有の仮定、リスク、不確実性がありますが、多くの場合、それらは正確であるかのように扱われます。

見積もりを表現する最良の方法は、例えば、プロジェクトが特定の日付に完了するか、固定番号で完了すると述べるのではなく、プロジェクトが5〜7か月かかると言うことによる、可能な結果の範囲です。 月の。 特定の日付にコミットするのと同等であるため、狭すぎる範囲にコミットすることに注意してください。

  • 付随する確率値として不確実性を含めることもできます。 たとえば、プロジェクトが一定の日付またはそれ以前に完了する確率は90%です。
  • 組織は正確なプロジェクトデータを収集しません。 推定の精度は履歴データに依存するため、問題になります。
  • どのプロジェクトでも、必要な機能を組み込み、高品質の出力を生成できる最短のスケジュールがあります。 管理者やクライアントによってスケジュールの制約がある場合、配信する範囲と機能について交渉することができます。
  • スケジュールのオーバーランを避けるために、クリープの処理についてクライアントに同意します。
  • 最終的な見積もりで不測事態への対応に失敗すると、問題が発生します。 例:ミーティング、組織イベント。
  • リソース使用率は80%未満と見なされる必要があります。 これは、リソースの生産性が時間の80%だけになるためです。 80%を超える使用率でリソースを割り当てると、スリッページが発生します。

推定ガイドライン

プロジェクトを見積もる際には、次のガイドラインに留意する必要があります-

  • 推定中に、他の人の経験を聞いてください。 また、タスクであなた自身の経験を置きます。
  • リソースの生産性は時間の80パーセントに過ぎないと想定します。 したがって、推定中にリソース使用率を80%未満としてください。
  • 複数のプロジェクトで作業するリソースは、プロジェクト間の切り替えに時間がかかるため、タスクの完了に時間がかかります。
  • 見積もりに管理時間を含めます。
  • 問題解決、会議、その他の予期しないイベントに備えて、常に不測の事態に備えてください。
  • 適切なプロジェクト見積もりを行うのに十分な時間を確保してください。 急ぎの見積もりは、不正確でリスクの高い見積もりです。 大規模な開発プロジェクトの場合、推定ステップは実際にはミニプロジェクトと見なされる必要があります。
  • 可能であれば、組織の同様の過去のプロジェクトから文書化されたデータを使用します。 その結果、最も正確な推定値が得られます。 組織が履歴データを保持していない場合は、今から収集を開始する良い機会です。
  • 開発者ベースの見積もりを使用してください。作業を行う人以外の人が作成した見積もりの​​精度が低下するためです。
  • 複数の異なる人を使用して、複数の異なる推定手法を推定および使用します。
  • 見積もりを調整します。 推定値間の収束または広がりを観察します。 収束とは、適切な推定値を得たことを意味します。 Wideband-Delphi手法を使用して、正確で公平な推定値を生成することを目的として、人々のグループを使用して推定値を収集し、議論することができます。
  • ライフサイクルを通じてプロジェクトを数回再見積もりします。

推定手法-関数ポイント

ファンクションポイント(FP)は、情報システム(製品として)がユーザーに提供するビジネス機能の量を表す測定単位です。 FPはソフトウェアサイズを測定します。 機能サイジングの業界標準として広く受け入れられています。

FPに基づいてソフトウェアのサイズを決定するために、いくつかの認められた標準や公的な仕様が存在します。 2013年現在、これらは-

ISO規格

  • COSMIC -ISO/IEC 19761:2011ソフトウェアエンジニアリング。 機能的なサイズの測定方法。
  • FiSMA -ISO/IEC 29881:2008情報技術-ソフトウェアおよびシステムエンジニアリング-FiSMA 1.1機能サイズ測定方法。
  • IFPUG -ISO/IEC 20926:2009ソフトウェアおよびシステムエンジニアリング-ソフトウェア測定-IFPUG機能サイズ測定方法。
  • Mark-II -ISO/IEC 20968:2002ソフトウェアエンジニアリング-Ml IIファンクションポイント分析-カウントプラクティスマニュアル。
  • NESMA -ISO/IEC 24570:2005ソフトウェアエンジニアリング-NESMA機能サイズ測定方法バージョン2.1-機能点分析の適用に関する定義とカウントのガイドライン。

自動機能ポイントのオブジェクト管理グループ仕様

オープンメンバーシップで非営利のコンピューター業界標準コンソーシアムであるObject Management Group(OMG)は、ITソフトウェア品質コンソーシアムが主導する自動機能ポイント(AFP)仕様を採用しています。 International Function Point User Group(IFPUG)のガイドラインに従ってFPカウントを自動化するための標準を提供します。

  • Function Point Analysis(FPA)テクニック*は、ソフトウェアユーザーにとって意味のある用語でソフトウェアに含まれる機能を定量化します。 FPは、要件仕様に基づいて開発中の機能の数を考慮します。
  • ファンクションポイント(FP)カウント*は、International Function Point Users Group(IFPUG)で定義されているルール、プロセス、ガイドラインの標準セットによって管理されています。 これらは、Counting Practices Manual(CPM)で公開されています。

ファンクションポイント分析の歴史

ファンクションポイントの概念は、1979年にIBMのAlan Albrechtによって導入されました。 1984年、アルブレヒトはこの方法を改良しました。 最初の機能ポイントガイドラインは1984年に公開されました。 International Function Point Users Group(IFPUG)は、米国を拠点とする世界的なFunction Point Analysisメトリックソフトウェアユーザーの組織です。 * International Function Point Users Group(IFPUG)*は、1986年に設立された非営利のメンバー管理組織です。 IFPUGは、ISO標準20296:2009で定義されているように、IFPUGの機能サイズ測定(FSM)メソッドを適用するための定義、ルール、および手順を指定するFunction Point Analysis(FPA)を所有しています。 IFPUGは、Function Point Counting Practices Manual(CPM)を維持しています。 CPM 2.0は1987年にリリースされて以来、何度か反復されています。 CPMリリース4.3は2010年でした。

ISO編集改訂が組み込まれたCPMリリース4.3.1は2010年でした。 ISO標準(IFPUG FSM)-CPM 4.3.1の一部である機能サイズ測定は、提供する機能に関してソフトウェアを測定するための手法です。 CPMは、ISO/IEC 14143-1情報技術-ソフトウェア測定の下で国際的に承認された標準です。

基本プロセス(EP)

基本プロセスは、機能的なユーザー要件の最小単位です-

  • ユーザーにとって意味があります。
  • 完全なトランザクションを構成します。
  • 自己完結型であり、カウントされるアプリケーションのビジネスを一貫した状態のままにします。

関数

機能には2種類あります-

  • データ関数
  • トランザクション関数

データ関数

データ関数の2種類があります-

  • 内部論理ファイル
  • 外部インターフェイスファイル

データ関数は、システムに影響を与える内部および外部リソースで構成されています。

内部論理ファイル

内部論理ファイル(ILF)は、アプリケーションの境界内に完全に存在する、ユーザーが識別可能な論理的に関連するデータまたは制御情報のグループです。 ILFの主な目的は、カウントされるアプリケーションの1つ以上の基本プロセスを通じて維持されるデータを保持することです。 ILFには、内部的に維持され、論理構造があり、ファイルに格納されるという固有の意味があります。 (図1を参照)

外部インターフェイスファイル

外部インターフェイスファイル(EIF)は、参照用にのみアプリケーションによって使用される、論理的に関連するデータまたは制御情報のユーザー識別可能なグループです。 データは完全にアプリケーションの境界外にあり、別のアプリケーションによってILFに保持されます。 EIFには外部的に維持されるという固有の意味があり、ファイルからデータを取得するためにインターフェースを開発する必要があります。 (図1を参照)

関数

トランザクション関数

トランザクション関数には3つのタイプがあります。

  • 外部入力
  • 外部出力
  • 外部からの問い合わせ

トランザクション機能は、ユーザー、外部アプリケーション、および測定対象のアプリケーション間で交換されるプロセスで構成されています。

外部入力

外部入力(EI)は、データが境界の外側から内側にアプリケーションに「入力」されるトランザクション関数です。 このデータはアプリケーションの外部に送られます。

  • データは、データ入力画面または別のアプリケーションから取得される場合があります。
  • EIは、アプリケーションが情報を取得する方法です。
  • データは、制御情報またはビジネス情報のいずれかです。
  • データを使用して、1つ以上の内部論理ファイルを維持できます。
  • データが制御情報である場合、内部論理ファイルを更新する必要はありません。 (図1を参照)

外部出力

外部出力(EO)は、データがシステムから「出力」されるトランザクション関数です。 さらに、EOはILFを更新する場合があります。 データは、他のアプリケーションに送信されるレポートまたは出力ファイルを作成します。 (図1を参照)

外部からの問い合わせ

外部照会(EQ)は、データ取得につながる入力コンポーネントと出力コンポーネントの両方を備えたトランザクション関数です。 (図1を参照)

RET、DET、FTRの定義

レコード要素タイプ

レコード要素タイプ(RET)は、ILFまたはEIF内のユーザーの識別可能な要素の最大のサブグループです。 データを識別するために、データの論理的なグループ分けを確認するのが最善です。

データ要素タイプ

データ要素タイプ(DET)は、FTR内のデータサブグループです。 これらは一意であり、ユーザーを識別できます。

参照されるファイルの種類

参照されるファイルタイプ(FTR)は、参照されるEI、EO、またはEQ内のユーザーを識別可能な最大のサブグループです。

トランザクション関数EI、EO、EQは、以下のカウントルールを含むFTRおよびDETをカウントすることで測定されます。 同様に、データ関数ILFおよびEIFは、次のカウントルールに含まれるDETおよびRETをカウントすることで測定されます。 トランザクション関数とデータ関数の測定値は、FPカウントで使用され、結果として機能サイズまたは機能ポイントになります。

推定手法-FPカウントプロセス

FPカウントプロセスには次の手順が含まれます-

  • *ステップ1 *-カウントのタイプを決定します。
  • *ステップ2 *-カウントの境界を決定します。
  • *ステップ3 *-ユーザーが必要とする各Elementary Process(EP)を特定します。
  • *ステップ4 *-一意のEPを決定します。
  • *ステップ5 *-データ関数を測定します。
  • *ステップ6 *-トランザクション関数を測定します。
  • *ステップ7 *-機能サイズ(未調整の機能ポイントカウント)を計算します。
  • *ステップ8 *-値調整係数(VAF)を決定します。
  • *ステップ9 *-調整された機能ポイント数を計算します。

-一般システム特性(GSC)は、CPM 4.3.1でオプションになり、付録に移動しました。 したがって、ステップ8とステップ9はスキップできます。

ステップ1:カウントのタイプを決定する

関数ポイントカウントには3種類あります-

  • 開発機能ポイント数
  • アプリケーション機能ポイント数
  • 拡張機能ポイント数

開発機能ポイント数

機能ポイントは、要件から実装段階までの開発プロジェクトのすべての段階でカウントできます。 このタイプのカウントは、新しい開発作業に関連付けられており、変換作業をサポートする一時的なソリューションとして必要になる可能性のあるプロトタイプが含まれる場合があります。 このタイプのカウントは、ベースライン関数ポイントカウントと呼ばれます。

アプリケーション機能ポイント数

アプリケーションカウントは、提供される機能ポイントとして計算され、変換作業(プロトタイプまたは一時的な解決策)および既存の既存の機能を除外します。

拡張機能ポイント数

生産後にソフトウェアに変更が加えられると、それらは機能強化と見なされます。 このような拡張プロジェクトのサイズを決定するために、アプリケーションで関数ポイント数が追加、変更、または削除されます。

ステップ2:カウントの境界を決定する

境界は、測定対象のアプリケーションと外部アプリケーションまたはユーザードメインとの境界を示します。 (図1を参照)

境界を決定するには、理解する-

  • 機能ポイント数の目的
  • 測定対象のアプリケーションの範囲
  • どのアプリケーションがどのデータを保持するか
  • アプリケーションをサポートするビジネスエリア

ステップ3:ユーザーが必要とする各基本プロセスを特定する

機能的なユーザー要件をアクティビティの最小単位に構成および/または分解し、次のすべての基準を満たします-

  • ユーザーにとって意味があります。
  • 完全なトランザクションを構成します。
  • 自己完結型です。
  • カウントされるアプリケーションのビジネスを一貫した状態のままにします。

たとえば、機能ユーザー要件-「従業員情報の維持」は、従業員の追加、従業員の変更、従業員の削除、従業員の照会などの小さなアクティビティに分解できます。

このようにして特定された活動の各単位は、基本プロセス(EP)です。

ステップ4:一意の基本プロセスを決定する

既に特定された2つのEPを比較し、それらが1つのEP(同じEP)としてカウントされる場合-

  • 同じDETセットが必要です。
  • 同じFTRセットが必要です。
  • EPを完了するには、同じ処理ロジックのセットが必要です。

複数の形式の処理ロジックを持つEPを複数のEpに分割しないでください。

たとえば、「従業員の追加」をEPとして特定した場合、従業員が扶養家族を持っているかどうかにかかわらず、それを2つのEPに分割しないでください。 EPは依然として「従業員の追加」であり、扶養家族を説明するための処理ロジックとDETにはバリエーションがあります。

ステップ5:データ関数の測定

各データ関数をILFまたはEIFとして分類します。

データ関数は次のように分類されます-

  • 内部論理ファイル(ILF)(測定対象のアプリケーションによって維持されている場合)。
  • 外部インターフェイスファイル(EIF)が参照されているが、測定対象のアプリケーションによって維持されていない場合。

ILFおよびEIFには、ビジネスデータ、制御データ、およびルールベースのデータを含めることができます。 たとえば、電話交換は、ビジネスデータ、ルールデータ、制御データの3つのタイプすべてで構成されています。 ビジネスデータは実際の呼び出しです。 ルールデータはコールがネットワークを介してルーティングされる方法であり、制御データはスイッチが相互に通信する方法です。

ILFとEIFのカウントについては、次のドキュメントを考慮してください-

  • 提案されたシステムの目的と制約。
  • そのようなシステムが存在する場合、現在のシステムに関するドキュメント。
  • ユーザーが認識している目標、問題、ニーズの文書化。
  • データモデル。

ステップ5.1:各データ関数のDETをカウントする

次のルールを適用して、ILF/EIFのDETをカウントします-

  • EPの実行を通じてILFまたはEIFで維持または取得された、一意のユーザーを識別可能な繰り返しのないフィールドごとにDETをカウントします。
  • 2つ以上のアプリケーションが同じデータ関数を維持および/または参照するときに測定されるアプリケーションで使用されているDETのみをカウントします。
  • ユーザーが別のILFまたはEIFとの関係を確立するために必要な各属性のDETをカウントします。
  • 関連する属性を確認して、グループ化されて単一のDETとしてカウントされるか、複数のDETとしてカウントされるかを判断します。 グループ化は、EPがアプリケーション内の属性をどのように使用するかに依存します。

ステップ5.2:各データ関数のRETをカウントする

次のルールを適用して、ILF/EIFのRETをカウントします-

  • データ関数ごとに1つのRETをカウントします。
  • DETの次の追加の論理サブグループごとに、追加のRETを1つカウントします。
  • 非キー属性を持つ関連エンティティ。
  • サブタイプ(最初のサブタイプ以外)。
  • 必須の1:1以外の関係にある属性エンティティ。

ステップ5.3:各データ関数の機能の複雑さを決定する

RETS

データ要素タイプ(DET)

*1-19*
*20-50*
  • > 50 *

1

L

L

A

2から5

L

A

H

>5

A

H

H

機能の複雑さ: L =低; A =平均; H =高

ステップ5.4:各データ関数の機能サイズを測定する

Functional Complexity FP Count for ILF FP Count for EIF
Low 7 5
Average 10 7
High 15 10

ステップ6:トランザクション関数を測定する

トランザクション機能を測定するには、次の手順が必要です-

ステップ6.1:各トランザクション関数を分類する

トランザクション機能は、外部入力、外部出力、または外部照会として分類する必要があります。

外部入力

外部入力(EI)は、境界外からのデータまたは制御情報を処理する基本プロセスです。 EIの主な目的は、1つ以上のILFを維持すること、および/またはシステムの動作を変更することです。

次のすべてのルールを適用する必要があります-

  • データまたは制御情報は、アプリケーション境界外から受信されます。
  • 境界に入るデータがシステムの動作を変更する制御情報でない場合、少なくとも1つのILFが維持されます。
  • 特定されたEPについては、3つのステートメントのいずれかを適用する必要があります-
  • 処理ロジックは、アプリケーションの他のEIによって実行される処理ロジックとは異なります。
  • 識別されたデータ要素のセットは、アプリケーション内の他のEIに対して識別されたセットとは異なります。
  • 参照されるILFまたはEIFは、アプリケーション内の他のEIによって参照されるファイルとは異なります。

外部出力

外部出力(EO)は、アプリケーションの境界外にデータまたは制御情報を送信する基本プロセスです。 EOには、外部照会の処理を超える追加処理が含まれます。

EOの主な目的は、データまたは制御情報の取得以外の、またはそれに加えた処理ロジックを通じて、ユーザーに情報を提示することです。

処理ロジックは-

  • 少なくとも1つの数式または計算が含まれています。
  • 派生データを作成します。
  • 1つ以上のILFを維持します。
  • システムの動作を変更します。

次のすべてのルールを適用する必要があります-

  • アプリケーションの境界の外部にデータまたは制御情報を送信します。
  • 特定されたEPについては、3つのステートメントのいずれかを適用する必要があります-
  • 処理ロジックは、アプリケーションの他のEOによって実行される処理ロジックとは異なります。
  • 識別されたデータ要素のセットは、アプリケーション内の他のEOとは異なります。
  • 参照されるILFまたはEIFは、アプリケーション内の他のEOによって参照されるファイルとは異なります。

さらに、次のルールのいずれかを適用する必要があります-

  • 処理ロジックには、少なくとも1つの数式または計算が含まれます。
  • 処理ロジックは、少なくとも1つのILFを維持します。
  • 処理ロジックは、システムの動作を変更します。

外部からの問い合わせ

外部照会(EQ)は、境界の外側にデータまたは制御情報を送信する基本プロセスです。 EQの主な目的は、データまたは制御情報の取得を通じてユーザーに情報を提示することです。

処理ロジックには数式や計算は含まれず、派生データは作成されません。 処理中にILFは維持されず、システムの動作も変更されません。

次のすべてのルールを適用する必要があります-

  • アプリケーションの境界の外部にデータまたは制御情報を送信します。
  • 特定されたEPについては、3つのステートメントのいずれかを適用する必要があります-
  • 処理ロジックは、アプリケーションの他のEQによって実行される処理ロジックとは異なります。
  • 識別されたデータ要素のセットは、アプリケーションの他のEQとは異なります。
  • 参照されるILFまたはEIFは、アプリケーションの他のEQによって参照されるファイルとは異なります。

さらに、次のすべてのルールを適用する必要があります-

  • 処理ロジックは、ILFまたはEIFからデータまたは制御情報を取得します。
  • 処理ロジックには、数式や計算は含まれていません。
  • 処理ロジックは、システムの動作を変更しません。
  • 処理ロジックはILFを維持しません。

ステップ6.2:各トランザクション関数のDETをカウントする

次のルールを適用して、EIのDETをカウントします-

  • 境界を越える(出入りする)すべてを確認します。
  • トランザクション機能の処理中に境界を越える(出入りする)一意のユーザー識別可能な繰り返しのない属性ごとに1つのDETをカウントします。
  • 複数のメッセージがある場合でも、アプリケーション応答メッセージを送信するために、トランザクション関数ごとに1つのDETのみをカウントします。
  • アクションを開始する機能が複数ある場合でも、トランザクション機能ごとに1つのDETのみをカウントします。
  • 次の項目をDETとしてカウントしないでください-
  • トランザクション関数によって境界内で生成され、境界を出ることなくILFに保存される属性。
  • レポートのタイトル、画面またはパネルの識別子、列見出し、属性タイトルなどのリテラル。
  • 日付および時刻属性などのアプリケーション生成スタンプ。
  • 「行37〜54の211」などのページング変数、ページ番号、位置情報。
  • 「前へ」、「次へ」、「最初」、「最後」、およびそれらに相当するグラフィックを使用してリスト内をナビゲートする機能などのナビゲーション支援。

次のルールを適用して、EO/EQのDETをカウントします-

  • 境界を越える(出入りする)すべてを確認します。
  • トランザクション機能の処理中に境界を越える(出入りする)一意のユーザー識別可能な繰り返しのない属性ごとに1つのDETをカウントします。
  • 複数のメッセージがある場合でも、アプリケーション応答メッセージを送信するために、トランザクション関数ごとに1つのDETのみをカウントします。
  • アクションを開始する機能が複数ある場合でも、トランザクション機能ごとに1つのDETのみをカウントします。
  • 次の項目をDETとしてカウントしないでください-
  • 境界を越えずに境界内で生成された属性。
  • レポートのタイトル、画面またはパネルの識別子、列見出し、属性タイトルなどのリテラル。
  • 日付および時刻属性などのアプリケーション生成スタンプ。
  • 「行37〜54の211」などのページング変数、ページ番号、位置情報。
  • 「前へ」、「次へ」、「最初」、「最後」、およびそれらに相当するグラフィックを使用してリスト内をナビゲートする機能などのナビゲーション支援。

ステップ6.3:各トランザクション関数のFTRをカウントする

次のルールを適用して、EIのFTRをカウントします-

  • 維持されている各ILFのFTRをカウントします。
  • EIの処理中に読み取られた各ILFまたはEIFのFTRをカウントします。
  • 保守および読み取りの両方が行われているILFごとに1つのFTRのみをカウントします。

次のルールを適用して、EO/EQのFTRをカウントします-

  • EPの処理中に読み取られた各ILFまたはEIFのFTRをカウントします。

さらに、以下のルールを適用して、EOのFTRをカウントします-

  • EPの処理中に維持される各ILFのFTRをカウントします。
  • EPによって維持され、読み取られるILFごとに1つのFTRのみをカウントします。

ステップ6.4:各トランザクション関数の機能の複雑さを決定する

FTRs

データ要素タイプ(DET)

*1-4*
*5-15*
  • > = 16 *

0-1

L

L

A

2

L

A

H

>=3

A

H

H

機能の複雑さ: L =低; A =平均; H =高

EQには最低1 FTRが必要であることを除いて、各EO/EQの機能の複雑さを決定します-

EQには最低1つのFTRが必要です

FTRs

データ要素タイプ(DET)

1-4

5-15

>=16

0-1

L

L

A

2

L

A

H

>=3

A

H

H

機能の複雑さ: L =低; A =平均; H =高

ステップ6.5:各トランザクション関数の機能サイズを測定する

機能の複雑さから各EIの機能サイズを測定します。

Complexity FP Count
Low 3
Average 4
High 6

機能の複雑さから各EO/EQの機能サイズを測定します。

Complexity FP Count for EO FP Count for EQ
Low 4 3
Average 5 4
High 6 6

ステップ7:機能サイズの計算(未調整の機能ポイント数)

機能サイズを計算するには、以下の手順に従う必要があります-

ステップ7.1

ステップ1で見つけたものを思い出してください。 カウントのタイプを決定します。

ステップ7.2

タイプに基づいて機能サイズまたは機能ポイント数を計算します。

  • 開発機能のポイント数については、ステップ7.3に進みます。
  • アプリケーション機能のポイント数については、ステップ7.4に進みます。
  • 拡張機能のポイントカウントについては、ステップ7.5に進みます。

ステップ7.3

開発機能ポイントカウントは、機能の2つのコンポーネントで構成されています-

  • プロジェクトのユーザー要件に含まれるアプリケーション機能。

  • プロジェクトのユーザー要件に含まれる変換機能。 変換機能は、インストール時にのみ提供される機能で構成され、データを変換したり、特別な変換レポートなどの他のユーザー指定の変換要件を提供したりします。 例えば 既存のアプリケーションを新しいシステムに置き換えることができます。

    *DFP = ADD+ CFP*

どこで、

*DFP* =開発機能ポイント数
*ADD* =開発プロジェクトによってユーザーに提供される機能のサイズ
*CFP* =変換機能のサイズ
*ADD* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)
*CFP* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)

ステップ7.4

アプリケーション関数のポイントカウントを計算する

*AFP = ADD*

どこで、

*AFP* =アプリケーション機能ポイント数
*ADD* =開発プロジェクトによってユーザーに提供される機能のサイズ(変換機能のサイズを除く)、またはアプリケーションがカウントされるたびに存在する機能。
*ADD* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)

ステップ7.5

拡張機能ポイント数は、機能の次の4つのコンポーネントを考慮します-

  • アプリケーションに追加される機能。

  • アプリケーションで変更される機能。

  • 変換機能。

  • アプリケーションから削除される機能。

    *EFP = ADD+ CHGA+ CFP+ DEL*

どこで、

*EFP* =拡張機能ポイント数
*ADD* =拡張プロジェクトによって追加される機能のサイズ
*CHGA* =拡張プロジェクトによって変更される機能のサイズ
*CFP* =変換機能のサイズ
*DEL* =拡張プロジェクトによって削除される機能のサイズ
*ADD* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)
*CHGA* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)
*CFP* = FPカウント(ILF)+ FPカウント(EIF)+ FPカウント(EI)+ FPカウント(EO)+ FPカウント(EQ)
*DEL* = FPカウント(ILF)+ FPカウント(EIF)+ FP COUNT(EI)+ FPカウント(EO)+ FPカウント(EQ)

ステップ8:値調整係数を決定する

GSCはCPM 4.3.1でオプションになり、付録に移動しました。 したがって、ステップ8とステップ9はスキップできます。

値調整係数(VAF)は、カウントされるアプリケーションの一般的な機能を評価する14のGSCに基づいています。 GSCは、テクノロジーに依存しないユーザービジネスの制約です。 各特性には、影響の程度を判断するための説明が関連付けられています。

General System Characteristic Brief Description
Data Communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system?
Distributed Data Processing How are distributed data and processing functions handled?
Performance Did the user require response time or throughput?
Heavily Used Configuration How heavily used is the current hardware platform where the application will be executed?
Transaction Rate How frequently are transactions executed daily, weekly, monthly, etc.?
On-Line Data Entry What percentage of the information is entered online?
End-user Efficiency Was the application designed for end-user efficiency?
Online Update How many ILFs are updated by online transaction?
Complex Processing Does the application have extensive logical or mathematical processing?
Reusability Was the application developed to meet one or many user’s needs?
Installation Ease How difficult is conversion and installation?
Operational Ease How effective and/or automated are start-up, back-up, and recovery procedures?
Multiple Sites Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations?
Facilitate Change Was the application specifically designed, developed, and supported to facilitate change?

影響範囲の範囲は、影響なしから強い影響まで、0〜5のスケールです。

Rating Degree of Influence
0 Not present, or no influence
1 Incidental influence
2 Moderate influence
3 Average influence
4 Significant influence
5 Strong influence throughout

14個のGSCのそれぞれの影響度を決定します。

このようにして得られた14個のGSCの値の合計は、影響度合計(TDI)と呼ばれます。

  • TDI = ∑ ^ 14 ^影響度*

次に、値調整係数(VAF)を次のように計算します

*VAF =(TDI×0.01)+ 0.65*

各GSCは0から5まで、TDIは(0×14)から(5×14)まで変化できます。 0(すべてのGSCが低い場合)から70(すべてのGSCが高い場合)、すなわち 0≤TDI≤70。 したがって、VAFは0.65(すべてのGSCが低い場合)から1.35(すべてのGSCが高い場合)の範囲で変化します。つまり、0.65≤VAF≤1.35です。

ステップ9:調整済み関数ポイントカウントの計算

VAF(V4.3.1より前のCPMバージョン)を使用するFPAアプローチにより、これは、

  • 調整済みFPカウント=未調整FPカウント×VAF *

ここで、未調整のFPカウントは、ステップ7で計算した機能サイズです。

VAFは0.65から1.35まで変化する可能性があるため、VAFは最終調整FPカウントに±35%の影響を及ぼします。

ファンクションポイントの利点

機能点は便利です-

  • 問題のサイズの代わりにソリューションのサイズを測定する。
  • 機能ポイントが必要なのは要件だけであるためです。
  • テクノロジーに依存しないため。
  • プログラミング言語に依存しないため。
  • テストプロジェクトの見積もり。
  • プロジェクト全体のコスト、スケジュール、および労力を見積もる際。
  • 契約交渉では、ビジネスグループとのコミュニケーションを容易にする方法を提供します。
  • ソフトウェアの機能の実際の使用、インターフェース、および目的に値を定量化し割り当てます。
  • 時間、コスト、人員、期間、その他のアプリケーションメトリックなど、他のメトリックとの比率を作成する場合。

FPリポジトリ

ISBSG(International Software Benchmarking Standards Group)は、ITデータ用の2つのリポジトリを拡大および維持しています。

  • 開発および強化プロジェクト
  • メンテナンスおよびサポートアプリケーション

Development and Enhancement Projectsリポジトリには6,000以上のプロジェクトがあります。

データはMicrosoft Excel形式で配信されるため、必要な分析を簡単に行うことができます。また、データを他の目的に使用することもできます。

ISBSGリポジトリライセンスは、http://www.isbsg.com/から購入できます。

ISBSGは、割引コード「IFPUGMembers」を使用すると、オンライン購入でIFPUGメンバーに10%の割引を提供します。

ISBSGソフトウェアプロジェクトデータリリースの更新は、http://www.ifpug.org/isbsg/にあります。

COSMICとIFPUGは協力して、ソフトウェアの非機能要件とプロジェクト要件に関する用語集を作成しました。 以下からダウンロードできます-http://cosmic-sizing.org/publications/glossary-of-terms-for-nf-and-project-requirements/[cosmic-sizing.org]

推定手法-ユースケースポイント

  • ユースケース*は、ユーザーとシステムの間の一連の関連する対話であり、ユーザーが目標を達成できるようにします。

ユースケースは、システムの機能要件をキャプチャする方法です。 システムのユーザーは「アクター」と呼ばれます。 ユースケースは基本的にテキスト形式です。

ユースケースポイント-定義

  • ユースケースポイント(UCP)*は、ユースケースでソフトウェアサイズを測定するために使用されるソフトウェア推定手法です。 UCPの概念はFPに似ています。

プロジェクト内のUCPの数は次のことに基づいています-

  • システム内のユースケースの数と複雑さ。
  • システム上のアクターの数と複雑さ。
  • ユースケースとして書かれていないさまざまな非機能要件(移植性、パフォーマンス、保守性など)。
  • プロジェクトが開発される環境(言語、チームの動機など)

UCPを使用した推定では、すべてのユースケースを目標を定めてほぼ同じレベルで記述し、同じ量の詳細を提供する必要があります。 したがって、見積りの前に、プロジェクトチームは、定義済みの目標を使用して詳細レベルでユースケースを作成したことを確認する必要があります。 通常、ユースケースは1つのセッション内で完了し、目標が達成された後、ユーザーは他のアクティビティに進むことができます。

ユースケースポイントの歴史

ユースケースポイントの推定方法は、1993年にグスタフカーナーによって導入されました。 この作業は後にIBMに統合されたRational Softwareによってライセンスされました。

ユースケースポイントのカウントプロセス

ユースケースポイントのカウントプロセスには、次の手順があります-

  • 未調整のUCPを計算する
  • 技術的な複雑さを調整する
  • 環境の複雑さを調整する
  • 調整されたUCPを計算する

ステップ1:未調整のユースケースポイントを計算します。

あなたは、次の手順により、未調整のユースケースポイントを最初に計算します-

  • 未調整のユースケース重量の決定
  • 未調整のアクターの重みを決定する
  • 未調整のユースケースポイントの計算
  • ステップ1.1 *-未調整のユースケース重量を決定します。
  • ステップ1.1.1 *-各ユースケースのトランザクション数を見つけます。

ユースケースがユーザー目標レベルで記述されている場合、トランザクションはユースケースのステップに相当します。 ユースケースのステップをカウントして、トランザクションの数を見つけます。

  • ステップ1.1.2 *-ユースケース内のトランザクションの数に基づいて、各ユースケースを単純、平均、または複雑に分類します。 また、次の表に示すようにユースケースの重みを割り当てます-
Use-Case Complexity Number of Transactions Use-Case Weight
Simple ≤3 5
Average 4 to 7 10
Complex >7 15
  • ステップ1.1.3 *-ユースケースごとに繰り返し、すべてのユースケースの重みを取得します。 未調整のユースケース重量(UUCW)は、すべてのユースケース重量の合計です。
  • ステップ1.1.4 *-次の表を使用して未調整のユースケース重量(UUCW)を検索します-

ユースケースの複雑さ

ユースケース重量

ユースケースの数

製品

単純な

5

NSUC

5×NSUC

平均

10

NAUC

10×NAUC

複雑な

15

NCUC

15×NCUC

未調整のユースケース重量(UUCW)

5×NSUC+ 10×NAUC+ 15×NCUC

どこで、

NSUCはノーです。 単純なユースケースの。

NAUCはNoです 平均使用ケースの。

NCUCはNoです 複雑なユースケースの。

  • ステップ1.2 *-未調整のアクターの重みを決定します。

ユースケースのアクターは、人、別のプログラムなどです。 定義されたAPIを備えたシステムなどの一部のアクターは、ニーズが非常に単純であり、ユースケースの複雑さを少しだけ増加させます。

プロトコルを介して相互作用するシステムなどの一部のアクターには、より多くのニーズがあり、ユースケースの複雑さがある程度増加します。

GUIを介して対話するユーザーなどの他のアクターは、ユースケースの複雑さに大きな影響を与えます。 これらの違いに基づいて、アクターを単純、平均、および複雑に分類できます。

  • ステップ1.2.1 *-アクターを単純、平均、および複雑に分類し、次の表に示すようにアクターの重みを割り当てます-
Actor Complexity Example Actor Weight
Simple A System with defined API 1
Average A System interacting through a Protocol 2
Complex A User interacting through GUI 3
  • ステップ1.2.2 *-各アクターについて繰り返し、すべてのアクターの重みを取得します。 未調整のアクターウェイト(UAW)は、すべてのアクターウェイトの合計です。
  • ステップ1.2.3 *-次の表を使用して未調整のアクターウェイト(UAW)を検索します-

俳優の複雑さ

俳優の体重

俳優の数

製品

単純な

1

NSA

1×NSA

平均

2

NAA

2×NAA

複雑な

3

NCA

3×NCA

未調整のアクター重量(UAW)

1×NSA+ 2×NAA+ 3×NCA

どこで、

NSAはノーです。 単純なアクターの。

NAAはノーです。 平均的な俳優の。

NCAはノーです。 複雑な俳優の。

  • ステップ1.3 *-未調整のユースケースポイントを計算します。

未調整のユースケースの重み(UUCW)と未調整のアクターの重み(UAW)を合わせると、未調整のユースケースポイントと呼ばれるシステムの未調整のサイズが得られます。

  • 未調整のユースケースポイント(UUCP)= UUCW+ UAW *

次の手順では、技術的複雑さおよび環境的複雑さに対して未調整のユースケースポイント(UUCP)を調整します。

ステップ2:技術的な複雑さを調整する

  • ステップ2.1 *-次の表に示すように、ユースケースポイントとそれに対応する重みに対するプロジェクトの技術的な複雑さの影響に寄与する13の要因を検討します-
Factor Description Weight
T1 Distributed System 2.0
T2 Response time or throughput performance objectives 1.0
T3 End user efficiency 1.0
T4 Complex internal processing 1.0
T5 Code must be reusable 1.0
T6 Easy to install .5
T7 Easy to use .5
T8 Portable 2.0
T9 Easy to change 1.0
T10 Concurrent 1.0
T11 Includes special security objectives 1.0
T12 Provides direct access for third parties 1.0
T13 Special user training facilities are required 1.0

これらの要因の多くは、プロジェクトの非機能要件を表しています。

  • ステップ2.2 *-13の各要因について、0(無関係)から5(非常に重要)までのプロジェクトとレートを評価します。
  • ステップ2.3 *-要因の影響の重みとプロジェクトの定格値から要因の影響を計算します

因子の影響=衝撃重量×定格値

ステップ(2.4)-すべての要因の影響の合計を計算します。 これは、以下の表に示すように、総技術的要因(TFactor)を提供します-

因子

説明

重さ(W)

定格値(0〜5)(RV)

影響(I = W×RV)

T1

分散システム

2.0

T2

応答時間またはスループットのパフォーマンス目標

1.0

T3

エンドユーザーの効率

1.0

T4

複雑な内部処理

1.0

T5

コードは再利用可能でなければなりません

1.0

T6

インストールが簡単

5.

T7

使いやすい

5.

T8

ポータブル

2.0

T9

変更が簡単

1.0

T10

同時

1.0

T11

特別なセキュリティ対策方針を含む

1.0

T12

サードパーティに直接アクセスを提供します

1.0

T13

特別なユーザートレーニング施設が必要です

1.0

合計テクニカルファクター(TFactor)

  • ステップ2.5 *-技術的複雑度係数(TCF)を次のように計算します-
  • TCF = 0.6+ (0.01×TFactor)*

ステップ3:環境の複雑さを調整する

  • ステップ3.1 *-プロジェクトの実行に影響を与える可能性のある8つの環境要因と、次の表に示す対応する重みを考慮してください-
Factor Description Weight
F1 Familiar with the project model that is used 1.5
F2 Application experience .5
F3 Object-oriented experience 1.0
F4 Lead analyst capability .5
F5 Motivation 1.0
F6 Stable requirements 2.0
F7 Part-time staff -1.0
F8 Difficult programming language -1.0
  • ステップ3.2 *-8つの要因のそれぞれについて、プロジェクトとレートを0(無関係)から5(非常に重要)まで評価します。
  • ステップ3.3 *-要因の影響の重みとプロジェクトの評価値から要因の影響を計算します

因子の影響=衝撃重量×定格値

  • ステップ3.4 *-すべての要因の影響の合計を計算します。 これは、次の表に示すように、総環境因子(EFactor)を与えます-

因子

説明

重さ(W)

定格値(0〜5)(RV)

影響(I = W×RV)

F1

使用されるプロジェクトモデルに精通している

1.5

F2

アプリケーションの経験

5.

F3

オブジェクト指向の経験

1.0

F4

リードアナリストの能力

5.

F5

動機

1.0

F6

安定した要件

2.0

F7

非常勤スタッフ

-1.0

F8

難しいプログラミング言語

-1.0

総環境因子(EFactor)

  • ステップ3.5 *-環境因子(EF)を次のように計算します-
  • 1.4+ (-0.03×EFactor)*

ステップ4:調整済みユースケースポイント(UCP)を計算する

調整済みユースケースポイント(UCP)を次のように計算します-

*UCP = UUCP×TCF×EF*

ユースケースポイントの長所と短所

ユースケースポイントの利点

  • UCPはユースケースに基づいており、プロジェクトのライフサイクルの非常に早い段階で測定できます。
  • UCP(サイズの見積もり)は、プロジェクトを実装するチームのサイズ、スキル、および経験に依存しません。
  • UCPベースの推定は、経験のある人が推定を行うと、実際に近いことがわかります。
  • UCPは使いやすく、追加の分析を必要としません。
  • ユースケースは、要件を記述するための選択方法として広く使用されています。 このような場合、UCPは最適な推定手法です。

ユースケースポイントの欠点

  • UCPは、要件がユースケースの形式で記述されている場合にのみ使用できます。
  • 目標指向の、よく書かれたユースケースに依存します。 ユースケースが適切にまたは均一に構成されていない場合、結果のUCPは正確ではない可能性があります。
  • 技術的および環境的要因は、UCPに大きな影響を与えます。 技術的および環境的要因に値を割り当てる際には注意が必要です。
  • UCPは、プロジェクト全体の規模の初期推定には役立ちますが、チームの反復から反復までの作業を推進する上ではあまり役に立ちません。

推定手法-広帯域デルファイ

*Delphi Method* は、構造化された通信技術であり、元々は専門家のパネルに依存する体系的でインタラクティブな予測方法として開発されました。 専門家は、2回以上のラウンドでアンケートに回答します。 各ラウンドの後、ファシリテーターは、前のラウンドからの専門家の予測の匿名の要約と彼らの判断の理由を提供します。 その後、専門家は、パネルの他のメンバーの回答を考慮して、以前の回答を修正することをお勧めします。

このプロセス中に回答の範囲が減少し、グループが「正しい」回答に向かって収束すると考えられています。 最後に、事前に定義された停止基準(例: ラウンドの数、コンセンサスの達成、および結果の安定性)と最終ラウンドの平均または中央値スコアが結果を決定します。

Delphi Methodは、1950〜1960年代にRAND Corporationで開発されました。

広帯域デルファイ技術

1970年代、バリー・ベームとジョン・A。 Farquharは、DelphiメソッドのWideband Variantを生み出しました。 「ワイドバンド」という用語が使用されているのは、Delphiメソッドと比較して、ワイドバンドDelphiテクニックは参加者間のより大きな相互作用とより多くのコミュニケーションを必要としたためです。

Wideband Delphi Techniqueでは、推定チームはプロジェクトマネージャー、モデレーター、専門家、開発チームの代表者で構成され、3〜7人のメンバーチームを構成します。 2つの会議があります-

  • キックオフミーティング
  • 見積もり会議

ワイドバンドDelphiテクニック–手順

  • ステップ1 *-見積もりチームとモデレーターを選択します。
  • ステップ2 *-モデレーターはキックオフミーティングを実施します。このミーティングでは、チームに問題の仕様と高レベルのタスクリスト、前提条件、またはプロジェクトの制約が提示されます。 チームは、問題および推定の問題(ある場合)について議論します。 また、推定の単位も決定します。 モデレーターは、ディスカッション全体をガイドし、時間を監視し、キックオフミーティングの後、問題の仕様、高レベルのタスクリスト、仮定、および決定された推定単位を含む構造化文書を準備します。 その後、次のステップのためにこの文書のコピーを転送します。
  • ステップ3 *-次に、各推定チームメンバーが個別に詳細なWBSを生成し、WBSの各タスクを推定し、行われた仮定を文書化します。

Wideband Delphi Technique Sheet

  • ステップ4 *-モデレーターは、推定会議のために推定チームを呼び出します。 見積りの準備ができていないと見積りチームのメンバーのいずれかが応答した場合、モデレーターはより多くの時間を与え、会議招集を再送信します。
  • ステップ5 *-推定チーム全体が推定会議のために集まります。
  • ステップ5.1 *-推定会議の開始時に、モデレーターは各チームメンバーから初期推定値を収集します。
  • ステップ5.2 *-次に、彼はホワイトボードにチャートをプロットします。 彼は、各メンバーのプロジェクト全体の見積もりを、対応する名前を開示せずに、ラウンド1行にXとしてプロットします。 見積りチームは、見積りの範囲を把握しますが、当初は大きい可能性があります。

Wideband Delphi Technique

  • ステップ5.3 *-各チームメンバーは、作成した詳細なタスクリストを声に出して読み、仮定を特定し、質問や問題を提起します。 タスクの見積もりは公開されていません。

個々の詳細なタスクリストは、組み合わせるとより完全なタスクリストになります。

  • ステップ5.4 *-次に、チームは、到達したタスク、仮定、推定の問題について疑問や問題がある場合はそれについて話し合います。
  • ステップ5.5 *-次に、各チームメンバーは自分のタスクリストと仮定を再検討し、必要に応じて変更を加えます。 タスクの見積もりには、議論に基づいた調整が必要になる場合があり、+ N Hrsとして示されます。 より多くの努力と–N Hrs。 少ない労力で。

チームメンバーは、タスクの見積もりの​​変更を組み合わせて、プロジェクトの合計見積もりに到達します。

Wideband Delphi Technique sheet 1

  • ステップ5.6 *-モデレーターは、すべてのチームメンバーから変更された推定値を収集し、それらをラウンド2ラインにプロットします。

このラウンドでは、コンセンサスに基づいているため、範囲は以前のものよりも狭くなります。

Wideband Delphi Technique Range

  • ステップ5.7 *-チームはその後、彼らが行ったタスクの修正と仮定について議論します。
  • ステップ5.8 *-次に、各チームメンバーは自分のタスクリストと仮定を再検討し、必要に応じて変更を加えます。 タスクの見積もりには、議論に基づいた調整が必要な場合もあります。

チームメンバーは、タスクの見積もりの​​変更を再度組み合わせて、プロジェクトの合計見積もりに到達します。

  • ステップ5.9 *-モデレーターは、すべてのメンバーから変更された推定値を再度収集し、ラウンド3ラインにプロットします。

繰り返しますが、このラウンドでは、範囲は以前の範囲と比較して狭くなります。

  • ステップ5.10 *-次の基準のいずれかが満たされるまで、ステップ5.7、5.8、5.9を繰り返します-
  • 結果は許容可能な狭い範囲に収束します。
  • すべてのチームメンバーは、最新の見積もりを変更することを嫌います。
  • 割り当てられた推定会議時間は終了しました。

広帯域デルファイ技術推定

  • ステップ6 *-プロジェクトマネージャーは、推定会議の結果を収集します。
  • ステップ6.1 *-個々のタスクリストと対応する推定値を1つのマスタータスクリストにまとめます。
  • ステップ6.2 *-彼はまた、仮定の個々のリストを組み合わせます。
  • ステップ6.3 *-次に、彼は推定チームと最終タスクリストを確認します。

Wideband Delphiテクニックの長所と短所

利点

  • Wideband Delphi Techniqueは、労力を推定するためのコンセンサスベースの推定手法です。
  • タスクを実行する時間を見積もるときに役立ちます。
  • 経験豊富な人々が参加し、彼らが個々に推定すると、信頼できる結果が得られます。
  • 作業を行う人は見積もりを行っているため、有効な見積もりを行っています。
  • 匿名性が維持されるため、全員が自信を持って結果を表現できます。
  • 非常にシンプルなテクニック。
  • 仮定は文書化され、議論され、同意されます。

デメリット

  • 管理サポートが必要です。
  • 推定結果は、経営陣が聞きたいものとは異なる場合があります。

推定手法-3つのポイント

3点推定は、3つの値を見ます-

  • 最も楽観的な推定値(O)、
  • 最も可能性の高い推定値(M)、および
  • 悲観的な推定値(最も可能性の低い推定値(L))。

業界では、3点推定とPERTに関して多少の混乱がありました。 ただし、テクニックは異なります。 2つのテクニックを学習すると、違いがわかります。 また、PERT手法の最後に、違いが照合されて表示されます。 最初にそれらを見たい場合は、できます。

3点推定(E)は単純な平均に基づいており、三角分布に従います。

*E =(O+ M+ L)/3*

3点推定

標準偏差

三角分布では、

平均=(O+ M+ L)/3

標準偏差=√[((O − E)^ 2 ^+(M − E)^ 2 ^+(L − E)^ 2 ^)/2]

3点推定ステップ

  • ステップ1 *-WBSに到着します。
  • ステップ2 *-各タスクについて、最も楽観的な推定値(O)、最も可能性の高い推定値(M)、および悲観的な推定値(L)の3つの値を見つけます。
  • ステップ3 *-3つの値の平均を計算します。
  • 平均=(O+ M+ L)/3 *
  • ステップ4 *-タスクの3点推定値を計算します。 三点推定は平均です。 したがって、
*E =平均=(O+ M+ L)/3*
  • ステップ5 *-タスクの標準偏差を計算します。
  • 標準偏差(SD)=√[((O − E)^ 2 ^+(M − E)^ 2 +(L-E) 2 ^)/2] *
  • ステップ6 *-WBSのすべてのタスクについて、ステップ2、3、4を繰り返します。
  • ステップ7 *-プロジェクトの3点推定値を計算します。
  • E(プロジェクト)= ∑ E(タスク)*
  • ステップ8 *-プロジェクトの標準偏差を計算します。
  • SD(プロジェクト)=√(∑SD(タスク)^ 2 ^)*

プロジェクトの見積もりを信頼水準に変換する

このように計算された3点推定値(E)と標準偏差(SD)は、プロジェクトの推定値を「信頼水準」に変換するために使用されます。

変換は次のように基づいています-

  • E +/– SDの信頼レベルは約68%です。
  • E値の信頼レベル+/– 1.645×SDは約90%です。
  • E値の信頼レベル+/– 2×SDは約95%です。
  • E値の信頼レベル+/– 3×SDは約99.7%です。

一般的に、95%の信頼レベル、つまりE値+ 2×SD。すべてのプロジェクトおよびタスクの見積もりに使用されます。

推定手法-PERT

プロジェクト評価およびレビュー手法(PERT)の推定では、3つの値を考慮します。最も楽観的な推定(O)、最も可能性の高い推定(M)、および悲観的な推定(最も可能性の低い推定(L))です。 業界では、3点推定とPERTに関して多少の混乱がありました。 ただし、テクニックは異なります。 2つのテクニックを学習すると、違いがわかります。 また、この章の最後で、違いを照合して表示します。

PERTは3つの値に基づいています-最も楽観的な推定(O)、最も可能性の高い推定(M)、および悲観的な推定(最も可能性の低い推定(L))。 最も可能性の高い推定値は、他の2つの推定値(楽観的および悲観的)の4倍の重みが付けられます。

PERT推定(E)は加重平均に基づいており、ベータ分布に従います。

*E =(O+ 4×M+ L)/6*

プロジェクトの評価とレビューのテクニック

PERTは、クリティカルパスメソッド(CPM)とともに頻繁に使用されます。 CPMは、プロジェクトで重要なタスクについて通知します。 これらのタスクに遅延がある場合、プロジェクトは遅延します。

標準偏差

標準偏差(SD)は、推定値のばらつきまたは不確実性を測定します。

ベータ版では、

平均=(O+ 4×M+ L)/6

標準偏差(SD)=(L − O)/6

PERT推定手順

ステップ(1)-WBSに到着します。

ステップ(2)-各タスクについて、最も楽観的な推定値(O)、最も可能性の高い推定値(M)、および悲観的な推定値(L)の3つの値を見つけます。

ステップ(3)-PERT平均=(O+ 4×M+ L)/6

PERT平均=(O+ 4×M+ L)/3

ステップ(4)-タスクの標準偏差を計算します。

標準偏差(SD)=(L − O)/6

ステップ(6)-WBSのすべてのタスクについて、ステップ2、3、4を繰り返します。

ステップ(7)-プロジェクトのPERT推定値を計算します。

E(プロジェクト)= ∑ E(タスク)

ステップ(8)-プロジェクトの標準偏差を計算します。

SD(プロジェクト)=√(ΣSD(タスク)^ 2 ^)

プロジェクトの見積もりを信頼水準に変換する

このように計算されたPERT推定値(E)および標準偏差(SD)は、プロジェクト推定値を信頼水準に変換するために使用されます。

変換は次のように基づいています

  • E +/– SDの信頼レベルは約68%です。
  • E値の信頼レベル+/– 1.645×SDは約90%です。
  • E値の信頼レベル+/– 2×SDは約95%です。
  • E値の信頼レベル+/– 3×SDは約99.7%です。

一般的に、95%の信頼レベル、つまりE値+ 2×SDは、すべてのプロジェクトおよびタスクの見積もりに使用されます。

3点推定とPERTの違い

3点推定とPERTの違いは次のとおりです-

Three-Point Estimation PERT
Simple average Weighted average
Follows triangular Distribution Follows beta Distribution
Used for small repetitive projects Used for large non-repetitive projects, usually R&D projects. Used along with Critical Path Method (CPM)

E = Mean = (O PLUS M PLUS L)/3

これは単純な平均です

a

E =平均=(O+ 4×M+ L)/6

これは加重平均です

SD = √ [((O − E)2 PLUS (M − E)2 PLUS (L − E)2)/2] SD = (L − O)/6

推定手法-類似

*Analogous Evaluation* は、同様の過去のプロジェクト情報を使用して、現在のプロジェクトの期間またはコスト、つまり「analogy」という単語を推定します。 現在のプロジェクトに関する情報が限られている場合、類似の推定を使用できます。

エグゼクティブがプロジェクトに価値があるかどうかを判断するための意思決定データが必要なため、新しいプロジェクトのコストと期間の見積もりをプロジェクトマネージャーに求められることがよくあります。 通常、プロジェクトマネージャーも組織内の誰も新しいプロジェクトのようなプロジェクトを行ったことはありませんが、経営陣は正確なコストと期間の見積もりを求めています。

このような場合、類似の推定が最適なソリューションです。 完全ではないかもしれませんが、過去のデータに基づいているため正確です。 アナログ推定は、実装が簡単な手法です。 プロジェクトの成功率は、最初の見積もりと比較して最大60%になる可能性があります。

類似推定–定義

類似推定は、履歴データからのパラメータの値を、将来のアクティビティの同様のパラメータを推定するための基礎として使用する手法です。 パラメーターの例:スコープ、コスト、および期間。 尺度の尺度の例-サイズ、重量、複雑さ。

プロジェクトマネージャーの、場合によってはチームの経験と判断が推定プロセスに適用されるため、履歴情報と専門家の判断の組み合わせと見なされます。

類似の推定要件

類似の推定のために、以下が要件です-

  • 以前および進行中のプロジェクトからのデータ
  • 各チームメンバーの週あたりの労働時間
  • プロジェクトを完了するために必要な費用
  • 現在のプロジェクトに近いプロジェクト
  • 現在のプロジェクトが新しく、過去のプロジェクトが類似していない場合
  • 現在のプロジェクトのモジュールに似ている過去のプロジェクトのモジュール
  • 現在のプロジェクトのアクティビティに類似した過去のプロジェクトのアクティビティ
  • これらの選択されたものからのデータ
  • プロジェクトマネージャーと見積もりチームの参加により、見積もりに関する経験豊富な判断を確保します。

類似の推定手順

プロジェクトマネージャーとチームは、同様の見積もりをまとめて行う必要があります。

  • *ステップ1 *-現在のプロジェクトのドメインを特定します。
  • *ステップ2 *-現在のプロジェクトの技術を特定します。
  • *ステップ3 *-同様のプロジェクトデータが利用可能な場合、組織データベースを調べます。 可能な場合は、ステップ(4)に進みます。 それ以外の場合は、手順(6)に進みます。
  • *ステップ4 *-現在のプロジェクトを特定された過去のプロジェクトデータと比較します。
  • *ステップ5 *-現在のプロジェクトの期間とコストの見積もりで到着します。 これにより、プロジェクトの類似の推定が終了します。
  • *ステップ6 *-過去のプロジェクトに現在のプロジェクトと同様のモジュールがある場合は、組織データベースを調べます。
  • *ステップ7 *-過去のプロジェクトに現在のプロジェクトと同様のアクティビティがある場合は、組織のデータベースを調べます。
  • *ステップ8 *-それらをすべて収集し、専門家の判断を使用して、現在のプロジェクトの期間とコストの見積もりに到達します。

アナログ推定の利点

  • アナログ推定は、詳細がほとんどわかっていないプロジェクトの初期段階での推定のより良い方法です。
  • この手法は単純であり、推定にかかる時間は非常に短くなります。
  • この手法は組織の過去のプロジェクトデータに基づいているため、組織の成功率は高いと予想されます。
  • 同様の推定を使用して、個々のタスクの労力と期間も推定できます。 したがって、WBSでタスクを見積もるときに、類推を使用できます。

推定手法-WBS

プロジェクト管理およびシステムエンジニアリングのWBS(Work Breakdown Structure)は、プロジェクトをより小さなコンポーネントに分割して成果物を指向したものです。 WBSは、チームの作業を管理可能なセクションに編成する主要なプロジェクト成果物です。 プロジェクト管理知識体系(PMBOK)は、WBSを「プロジェクトチームが実行する作業の成果物指向の階層的分解」と定義しています。

WBS要素は、製品、データ、サービス、またはそれらの任意の組み合わせです。 WBSは、スケジュールの開発と管理のためのガイダンスを提供するとともに、詳細なコストの見積もりと管理に必要なフレームワークも提供します。

WBSの表現

WBSは、プロジェクトの作業活動の階層リストとして表されます。 WBSの2つの形式があります-

  • アウトラインビュー(インデント形式)
  • ツリー構造ビュー(組織図)

最初に、アウトラインビューを使用してWBSを準備する方法について説明します。

外形図

アウトラインビューは、非常に使いやすいレイアウトです。 プロジェクト全体の良好なビューを提供し、簡単に変更することもできます。 プロジェクトのさまざまな段階を記録するために番号を使用します。 それは次のように多少似ています-

ソフトウェア開発

  • 範囲
  • プロジェクト範囲を決定する
  • 安全なプロジェクトスポンサーシップ
  • 予備リソースを定義する
  • 安全なコアリソース
  • スコープ完了
  • 分析/ソフトウェア要件
  • ニーズ分析の実施
  • 予備ソフトウェア仕様のドラフト
  • 予備予算を作成する
  • チームでソフトウェアの仕様/予算を確認する
  • ソフトウェア仕様に関するフィードバックを組み込む
  • 配達スケジュールを作成する
  • 続行するための承認を取得します(概念、タイムライン、予算)
  • 必要なリソースを確保する
  • 分析完了
  • 設計
  • 予備のソフトウェア仕様を確認する
  • 機能仕様を作成する
  • 承認を取得して続行します
  • 設計完了
  • 開発
  • 機能仕様を確認する
  • モジュラー/階層化設計パラメーターを特定
  • コードを開発する
  • 開発者テスト(一次デバッグ)
  • 開発完了
  • テスト
  • 製品仕様を使用して単体テスト計画を作成する
  • 製品仕様を使用して統合テスト計画を作成する
  • トレーニング
  • エンドユーザー向けのトレーニング仕様を開発する
  • トレーニング実施方法(オンライン、教室など)を特定する
  • トレーニング資料を作成する
  • トレーニング資料を完成させる
  • トレーニング配信メカニズムを開発する
  • トレーニング資料一式
  • 展開
  • 最終的な展開戦略を決定する
  • 展開方法を開発する
  • 安全な展開リソース
  • 訓練支援スタッフ
  • ソフトウェアを展開する
  • 展開完了

次に、ツリー構造ビューを見てみましょう。

ツリー構造ビュー

ツリー構造ビューは、プロジェクト全体の非常にわかりやすいビューを提供します。 次の図は、ツリー構造ビューがどのように見えるかを示しています。 このタイプの組織図構造は、MS-Wordで利用可能な機能を使用して簡単に描画できます。

WBSの概要表現

WBSの種類

WBSの2種類があります-

  • *機能的なWBS *-機能的なWBSでは、開発するアプリケーションの機能に基づいてシステムが壊れます。 これは、システムのサイズを見積もるのに役立ちます。
  • *アクティビティWBS *-アクティビティWBSでは、システム内のアクティビティに基づいてシステムが中断されます。 アクティビティはさらにタスクに分割されます。 これは、システムの労力とスケジュールを推定するのに役立ちます。

見積もりサイズ

  • ステップ1 *-機能的なWBSから始めます。
  • ステップ2 *-リーフノードを検討します。
  • ステップ3 *-AnalogyまたはWideband Delphiを使用して、サイズの見積もりに到達します。

推定工数

  • ステップ1 *-Wideband Delphi Techniqueを使用してWBSを構築します。 タスクは8時間を超えないようにすることをお勧めします。 タスクの期間が長い場合は、分割します。
  • ステップ2 *-ワイドバンドDelphiテクニックまたは3ポイント推定を使用して、タスクのエフォート推定に到達します。

スケジューリング

WBSの準備が完了し、サイズと作業の見積もりがわかったら、タスクをスケジュールする準備が整います。

タスクをスケジュールしている間、特定のことを考慮に入れる必要があります-

  • 優先度-他のタスクが他のタスクより優先される前に発生しなければならないタスク。
  • 並行性-並行タスクとは、同時に(並行して)発生するタスクです。
  • クリティカルパス-プロジェクトの完了日が依存する一連のタスクの特定のセット。
  • すべてのプロジェクトにはクリティカルパスがあります。
  • 重要ではないタスクを加速しても、スケジュールは直接短縮されません。

クリティカルパス法

クリティカルパスメソッド(CPM)は、クリティカルパスを決定および最適化するプロセスです。 非クリティカルパスタスクは、完了日に影響を与えることなく、早めに開始したり、後で開始したりできます。

現在のパスを短くすると、クリティカルパスが別のパスに変更される可能性があることに注意してください。 たとえば、前の図のWBSの場合、クリティカルパスは次のようになります-

クリティカルパスメソッド

プロジェクトの完了日は一連の一連のタスクに基づいているため、これらのタスクはクリティカルタスクと呼ばれます。

プロジェクトの完了日は、トレーニング、ドキュメント、および展開に基づいていません。 このようなタスクは、重要ではないタスクと呼ばれます。

タスク依存関係

スケジュール中に、タスクの依存関係を考慮する必要がある場合があります。 重要なタスク依存関係は次のとおりです-

  • 開始から終了まで(FS)
  • 仕上げ(FF)

開始から終了まで(FS)

Finish-to-Start(FS)タスク依存関係では、タスクBはタスクAが完了するまで開始できません。

開始から終了

仕上げ(FF)

Finish-to-Finish(FF)タスク依存関係では、タスクAが完了するまでタスクBは終了できません。

Finish-to-Finish

ガントチャート

ガントチャートは棒グラフの一種で、1896年にカロルアダミエツキによって、1910年代にヘンリーガントによって独立して採用され、プロジェクトのスケジュールを示しています。 ガントチャートは、プロジェクトのターミナル要素とサマリー要素の開始日と終了日を示します。

図2のアウトライン形式をMicrosoft Projectに取り込み、ガントチャートビューを取得できます。

ガントチャート

マイルストーン

マイルストーンは、スケジュールの重要な段階です。 期間はゼロで、特定のタスクセットが完了したことを示すために使用されます。 マイルストーンは通常、ダイヤモンドとして表示されます。

たとえば、上記のガントチャートでは、設計完了と開発完了がマイルストーンとして表示され、菱形で表されています。

マイルストーンは契約条件に関連付けることができます。

WBSを使用した推定の利点

WBSは、プロジェクト見積もりの​​プロセスを大幅に簡素化します。 他の推定手法に比べて次の利点があります-

  • WBSでは、プロジェクトによって実行される作業全体が識別されます。 したがって、プロジェクトの利害関係者とWBSをレビューすることにより、目的のプロジェクト成果物を提供するために必要な作業を省略する可能性が低くなります。
  • WBSにより、コストとスケジュールの見積もりがより正確になります。
  • プロジェクトマネージャーはチームの参加を得て、WBSを完成させます。 チームのこの関与は、プロジェクトに熱意と責任をもたらします。
  • WBSは、タスク割り当ての基礎を提供します。 正確なタスクは、その成果に対して責任を負う特定のチームメンバーに割り当てられます。
  • WBSは、タスクレベルでの監視と制御を可能にします。 これにより、進捗を測定し、プロジェクトが予定どおりに配信されることを確認できます。

推定テクニック-プランニングポーカー

ポーカーの見積もりを計画する

プランニングポーカーはコンセンサスに基づいた推定手法で、主にスクラムのユーザーストーリーの労力または相対的なサイズを推定するために使用されます。

Planning Pokerは、Wideband Delphi Technique、Analogous Estimation、WBSを使用した推定という3つの推定手法を組み合わせています。

プランニングポーカーは、2002年にジェームズグレニングによって最初に定義され名前が付けられ、後にマイクコーンが著書「アジャイルエスティメイティングアンドプランニング」で人気を博しました。

プランニングポーカーの推定手法

Planning Poker推定テクニックでは、プランニングポーカーをプレイしてユーザーストーリーの推定値を導き出します。 スクラムチーム全体が関与しているため、迅速で信頼性の高い見積もりが得られます。

  • プランニングポーカーは1組のカードでプレイされます。 フィボナッチ数列が使用されるため、カードには1、2、3、5、8、13、21、34などの番号が付けられます。 これらの数字は「ストーリーポイント」を表します。 各推定量にはカードのデッキがあります。 カードの番号は、チームメンバーの1人がカードを保持しているときに、すべてのチームメンバーが見えるように十分大きくする必要があります。
  • チームメンバーの1人がモデレーターとして選択されます。 モデレーターは、推定が行われているユーザーストーリーの説明を読みます。 見積者に質問がある場合は、製品所有者が回答します。
  • 各見積もり者は、自分の見積もりを表すカードを個人的に選択します。 すべての見積もりが選択されるまで、カードは表示されません。 その時点で、すべてのカードが同時にめくり上げられ、すべてのチームメンバーが各見積もりを見ることができます。
  • 最初のラウンドでは、推定値が異なる可能性が非常に高くなります。 高評価者と低評価者は、推定の理由を説明します。 すべての議論は理解のみを目的としており、個人的に行われるものではないことに注意してください。 モデレーターは同じことを確認する必要があります。
  • チームは、さらに数分間、ストーリーとその見積もりについて話し合うことができます。
  • モデレーターは、特定のストーリーが作成されるときに役立つディスカッションのメモを取ることができます。 話し合いの後、各見積もり者はカードを再度選択して再見積もりを行います。 カードは、誰もが推測するまで再び秘密にされ、その時点でカードは同時に裏返されます。

推定がストーリーに使用できる単一の推定に収束するまで、プロセスを繰り返します。 推定のラウンド数は、ユーザーストーリーごとに異なる場合があります。

ポーカーの見積もりを計画する利点

計画ポーカーは推定の3つの方法を組み合わせます-

専門家の意見-専門家の意見に基づいた推定アプローチでは、専門家は何か時間がかかるか、それがどれくらい大きくなるか尋ねられます。 専門家は、自分の経験、直感、または直感に基づいて推定値を提供します。 専門家の意見の推定は通常、多くの時間を必要とせず、いくつかの分析手法と比較してより正確です。

アナロジー-アナロジー推定では、ユーザーストーリーの比較を使用します。 推定中のユーザーストーリーは、以前に実装された同様のユーザーストーリーと比較され、推定は実証済みのデータに基づいているため、正確な結果が得られます。

分解-分解の推定は、ユーザーストーリーをより小さく、推定しやすいユーザーストーリーに分割することによって行われます。 スプリントに含まれるユーザーストーリーは、通常2〜5日で開発できます。 したがって、おそらくより長い時間がかかるユーザーストーリーは、より小さなユースケースに分割する必要があります。 また、このアプローチは、比較可能な多くのストーリーがあることを保証します。

推定手法-テスト

テストの取り組みは、決定的な時間枠に基づいていません。 テストの完了に関係なく、事前に決められたタイムラインが設定されるまで努力が続けられます。

これは主に、従来、*テスト努力の見積もり*が*開発の見積もり*の一部であるという事実によるものです。 Wideband Delphi、3点推定、PERT、WBSなど、WBSを使用する推定手法の場合にのみ、テストアクティビティの推定値を取得できます。

推定値を関数ポイント(FP)として取得した場合、Caper Jonesに従って、

  • テストケースの数=(ファンクションポイントの数)×1.2 *

テストケースの数を取得したら、組織のデータベースから生産性データを取得し、テストに必要な作業に到達できます。

開発努力方法の割合

必要なテスト作業は、開発作業の直接的な割合または割合です。 開発作業は、コード行(LOC)またはファンクションポイント(FP)を使用して推定できます。 次に、テストの労力の割合が組織データベースから取得されます。 そのようにして得られたパーセンテージは、テストの労力の見積もりに到達するために使用されます。

テストプロジェクトの見積もり

現在、いくつかの組織が独立した検証および検証サービスをクライアントに提供しています。これは、プロジェクト活動が完全にテスト活動であることを意味します。

テストプロジェクトの見積もりには、ソフトウェアテストライフサイクルのさまざまなプロジェクトの経験が必要です。 あなたがテストプロジェクトを推定しているとき、考慮してください-

  • チームスキル
  • 領域知識
  • アプリケーションの複雑さ
  • 歴史的なデータ
  • プロジェクトのバグサイクル
  • リソースの可用性
  • 生産性のばらつき
  • システム環境とダウンタイム

推定手法のテスト

次のテスト推定手法は正確であることが証明されており、広く使用されています-

  • PERTソフトウェアテストの推定手法
  • UCPメソッド
  • WBS
  • 広帯域デルファイ技術
  • ファンクションポイント/テストポイント分析
  • 割合分布
  • 経験に基づいたテスト推定手法

PERTソフトウェアテストの推定手法

PERTソフトウェアテストの推定手法は、各テストタスクをサブタスクに分割し、各サブタスクで3種類の推定を行う統計的手法に基づいています。

この手法で使用される式は-

  • テストの見積もり=(O+(4×M)+ E)/6 *

どこで、

*O* =楽観的推定(何も問題がなく、すべての条件が最適であるベストケースシナリオ)。
*M* =最も可能性の高い推定値(最も可能性の高い期間であり、何らかの問題がある可能性がありますが、ほとんどの問題は解決します)。
*L* =悲観的推定値(すべてがうまくいかない最悪のシナリオ)。

テクニックの標準偏差は次のように計算されます-

  • 標準偏差(SD)=(E − O)/6 *

ユースケースポイント法

UCPメソッドは、未調整のアクターの重みと未調整のユースケースの重みを計算してソフトウェアテストの見積もりを決定するユースケースに基づいています。

ユースケースは、関連するアプリケーションと対話するさまざまなユーザー、システム、またはその他の利害関係者を指定するドキュメントです。 彼らは「俳優」と名付けられています。 相互作用は、シナリオと呼ばれるさまざまな動作またはフローを通じて、すべての利害関係者の関心を保護するいくつかの定義された目標を達成します。

  • ステップ1 *-番号を数える 俳優の。 アクターには、ポジティブ、ネガティブ、および例外が含まれます。
  • ステップ2 *-未調整のアクターの重みを次のように計算します

未調整の俳優の重み=合計番号 俳優

  • ステップ3 *-ユースケースの数を数えます。
  • ステップ4 *-未調整のユースケースの重みを次のように計算します

未調整のユースケースの重量=合計 ユースケースの

  • ステップ5 *-未調整のユースケースポイントを次のように計算します

未調整のユースケースポイント=(未調整のアクターウェイト+未調整のユースケースウェイト)

  • ステップ6 *-技術的/環境的要因(TEF)を決定します。 利用できない場合は、0.50としてください。
  • ステップ7 *-調整されたユースケースポイントを次のように計算します
  • 調整済みのユースケースポイント=未調整のユースケースポイント×[0.65+ (0.01×TEF] *
  • ステップ8 *-合計努力量を
  • 総努力=調整されたユースケースポイント×2 *

作業分解図

  • ステップ1 *-テストプロジェクトを小さな断片に分解してWBSを作成します。
  • ステップ2 *-モジュールをサブモジュールに分割します。
  • ステップ3 *サブモジュールをさらに機能に分割します。
  • ステップ4 *-機能をサブ機能に分割します。
  • ステップ5 *-すべてのテスト要件を確認して、WBSに追加されていることを確認します。
  • ステップ6 *-チームが完了する必要があるタスクの数を計算します。
  • ステップ7 *-各タスクの労力を見積もります。
  • ステップ8 *-各タスクの期間を見積もります。

広帯域デルファイ技術

Wideband Delphi Methodでは、WBSはタスクを再評価するために3〜7人のメンバーで構成されるチームに配布されます。 最終的な見積もりは、チームのコンセンサスに基づいて要約された見積もりの​​結果です。

この方法は、統計式よりも経験に基づいています。 この手法は、チームがテストの労力を見積もる際に問題のさまざまな側面を視覚化するコンセンサスに到達するために、グループの反復を強調するためにバリーベームによって普及しました。

ファンクションポイント/テストポイント分析

FPは、ユーザーの観点からソフトウェアアプリケーションの機能を示し、ソフトウェアプロジェクトのサイズを見積もる手法として使用されます。

テストでは、推定は要件仕様文書、または以前に作成されたアプリケーションのプロトタイプに基づきます。 プロジェクトのFPを計算するには、いくつかの主要なコンポーネントが必要です。 彼らは-

  • 未調整のデータ関数ポイント-i)内部ファイル、ii)外部インターフェイス
  • 未調整のトランザクション機能ポイント-i)ユーザー入力、ii)ユーザー出力、iii)ユーザー照会
  • ケーパーズジョーンズの基本式- +テストケースの数=(関数ポイントの数)×1.2
  • 総実績工数(TAE)- +(テストケースの数)×(開発努力の割合/100)

割合分布

この手法では、ソフトウェア開発ライフサイクル(SDLC)のすべての段階に%単位の作業量が割り当てられます。 これは、同様のプロジェクトからの過去のデータに基づくことができます。 たとえば-

Phase % of Effort
Project Management 7%
Requirements 9%
Design 16%
Coding 26%
Testing (all Test Phases) 27%
Documentation 9%
Installation and Training 6%

次に、テスト(すべてのテストフェーズ)の努力の割合がすべてのテストフェーズにさらに分散されます-

All Testing Phases % of Effort
Component Testing 16
Independent Testing 84
Total 100
Independent Testing % of Effort
Integration Testing 24
System Testing 52
Acceptance Testing 24
Total 100
System Testing % of Effort
Functional System Testing 65
Non-functional System Testing 35
Total 100
Test Planning and Design Architecture 50%
Review phase 50%

経験に基づいたテスト推定手法

この手法は、類推と専門家に基づいています。 この手法では、以前のプロジェクトで同様のアプリケーションを既にテストし、それらのプロジェクトからメトリックを収集したと想定しています。 また、以前のテストからメトリックを収集しました。 アプリケーション(およびテスト)を熟知している主題の専門家から情報を収集し、収集したメトリックを使用して、テスト作業に到達します。