SNAPは「ソフトウェア非機能評価プロセス」の略語で、非機能ソフトウェアのサイズを測定するものです。SNAP のサイズ設定方法は、機能ソフトウェアのサイズ設定方法を定義する ISO/IEC 20926:2009 を補完するものです。SNAP は、国際機能ポイント ユーザー グループ ( IFPUG ) の製品であり、現在バージョン 2.4 の「ソフトウェア非機能評価プロセス (SNAP) アセスメント プラクティス マニュアル」(APM) を使用してサイズ設定されています。2019 年 10 月 19 日に発行された「IEEE 2430-2019 - IEEE 非機能サイズ設定測定の試用標準」([1]) を参照してください。また、2021 年 10 月に発行された ISO 標準「ソフトウェア エンジニアリング - ソフトウェア非機能サイズ設定測定の試用標準」(https://www.iso.org/standard/81913.html) も参照してください。SNAP の詳細については、YouTube にアクセスして「IFPUG SNAP」を検索してください。 SNAP 方法論の概要を説明する一連のビデオが提供されます。
導入
ソフトウェア アプリケーションは、ユーザーに 2 つの側面の価値を提供できます。この文脈では、最初の側面はソフトウェアが「何」を行うか、具体的には「ユーザー要件のサブセット。タスクとサービスの観点から、ソフトウェアが何をすべきかを記述する要件」(ISO/IEC 14143-1 の定義) です。これは「機能性」として定義できます。この機能ソフトウェアの 1 ユニットのサイズを測定するために使用される 1 つのメトリックは、「ファンクション ポイント」です。IFPUG 「ファンクション ポイント カウント プラクティス マニュアル」 [1] (FSM ISO/IEC 20926:2009) [2]に記載されているようなISO 標準の機能サイジング メトリック (FSM) を使用することで、ファンクション ポイント カウントの専門家は、ソフトウェア アプリケーションの機能ユーザー要件部分を調べ、その機能サイズをファンクション ポイント単位で測定できます。
機能ポイント メトリック、および他の組織の機能ソフトウェア サイズ メトリックの詳細については、参考文献、Wikipedia の記事「機能ポイント」、および文献内の多数の参考文献を参照してください。
ソフトウェア ユーザー要件では、ソフトウェアが「どのように」それを実行するかを指定することもできます。具体的には、「ソフトウェアが何を実行するかではなく、どのように実行するかを説明するソフトウェア要件」です (ISO/IEC/IEEE 24765:2010 の定義)。これらの種類のソフトウェアは、IFPUG によって「非機能的」と定義されています。対応するソフトウェア サイズは SNAP によって測定されます。IFPUG APM [3]では、アプリケーションの非機能ソフトウェアのサイズを決定する方法が詳しく説明されています。非機能的側面は、ISO/IEC 25010:2011、「システムおよびソフトウェア エンジニアリング - システムおよびソフトウェアの品質要件と評価 (SQuaRE) - システムおよびソフトウェアの品質モデル」で定義および分類されています。[4]
ソフトウェア プロジェクトの全体のソフトウェア サイズを測定するには、ソフトウェアの機能サイズと非機能サイズを合わせて使用する必要があります。この 2 つのサイズを使用して、ソフトウェア プロジェクトのパフォーマンスを測定し、ベンチマークを設定し、ソフトウェア プロジェクトのコストと期間を見積もる必要があります。
非機能ユーザー要件サイジング法
ファンクション ポイントのサイズ設定と同様に、非機能の 1 つの単位は「SNAP ポイント」です。アプリケーションの非機能部分を定量化することで得られるソフトウェアのサイズは、APM の手順を使用して測定できます。ファンクション ポイントと同様に、IFPUG APM を使用すると、SNAP ポイントをカウントする専門家がソフトウェア アプリケーションを調べ、SNAP ポイント単位で非機能のサイズを測定できます。また、ファンクション ポイントと同様に、アプリケーション内の SNAP ポイントの数は、そのアプリケーションの非機能ソフトウェア部分を開発するための作業量と相関しています。この相関関係を詳述した元の研究は、 CrossTalk The Journal of Defense Software Engineeringの論文「ファンクション ポイントを補完する新しいソフトウェア メトリック ソフトウェア非機能評価プロセス (SNAP)」に掲載されています。[5]
ソフトウェアの各側面(機能的および非機能的)は、開発に労力を必要とし、その規模に比例します。ソフトウェア開発組織は、機能ポイントと労力、および SNAP ポイントと労力の相関関係を使用して、ソフトウェア開発のコストとスケジュールを予測し、プロジェクトを監査して資金がどれだけ効果的に使われ、スケジュールが管理されたかを判断することができます。
SNAP は、非機能的なユーザー要件の 4 つのカテゴリと 14 のサブカテゴリを認識します。これらは、APM の以下の表に示されています。
- 1. データ操作
1.1. データ入力の検証 1.2. 論理演算と数学演算 1.3. データのフォーマット 1.4. 内部データの移動 1.5. データ構成によるユーザーへの付加価値の提供
- 2. インターフェースデザイン
2.1. ユーザーインターフェース 2.2. ヘルプメソッド 2.3. 複数の入力方法 2.4. 複数の出力形式
- 3. 技術環境
3.1. 複数のプラットフォーム 3.2. データベース技術 3.3. バッチプロセス
- 4. 建築
4.1. コンポーネントベースのソフトウェア 4.2. 複数の入力/出力インターフェース
たとえば、データ テーブル内のデータのフィールド サイズを変更するソフトウェア開発は、IFPUG 方式では機能の変更とは見なされません。ただし、この開発には労力が必要です。データ フォーマットは非機能的とみなされ、SNAP サブカテゴリ 1.3 に含まれます。
ヘルプ メソッド (サブカテゴリ 2.2) は、通常、非機能的であると見なされます。データがアプリケーションの境界を越えて内部論理ファイルを維持する必要があるファンクション ポイント プロセスと比較すると、ヘルプ データは、アプリケーション開発の一部として内部に存在するようにコード化され、ユーザーからのコマンドによってアクセスされる可能性があります。このアクセスは、画面上のアイコン上のバブル ヘルプから、内部に保存されているアプリケーション操作マニュアルの一部へのアクセスまで、あらゆるものになります。データ自体は処理されないため、ヘルプは通常、非機能的であると見なされます。
ファンクション ポイントと SNAP ポイントは、ソフトウェアのサイズ設定の 2 つの異なる側面を測定するため、一緒に加算されません。たとえば、500 ファンクション ポイントと 300 SNAP ポイントのアプリケーションは、あるメトリックのサイズ 800 とは見なされません。ファンクション ポイントと SNAP ポイントは直交するように設計されています。機能性と非機能性の関係に関する詳細な情報については、「ソフトウェア プロジェクトのパフォーマンス測定、ベンチマーク、および見積もりで使用される非機能要件とプロジェクト要件の用語集」というドキュメントを参照してください。[6]
利点
SNAP は、ファンクション ポイントを単独で使用する以外にも、ユーザーとソフトウェア開発チームに多くの利点を提供します。以下に、多くの例のうち 6 つを示します。
- 非機能ソフトウェアのサイズを測定すると、機能的なユーザー要件のサイズ設定のみに基づいたソフトウェア開発の作業労力の見積りが改善されます。
- サブカテゴリ 1.2 を使用してアルゴリズムのサイズを測定します。
- この改善された作業量見積りにより、スケジュール、リソース割り当て、およびリスクの見積りも改善されるはずです。
- SNAP サイズを含めると、ソフトウェアの導入後にソフトウェアを保守するための作業量の見積もりが向上します。
- 測定された作業出力により多くの要素が含まれるため、プロジェクト チームの生産性率をより適切に判断できます。
- 機能的な作業成果物と非機能的な作業成果物の両方を含めると、ユーザーに提供される価値がより明確になります。
さらに、一部のソフトウェア開発作業は、機能ポイントがゼロであると測定されることがあります。たとえば、アジャイル ソフトウェア メンテナンス スプリントでは、データ テーブルのデータ フィールドの長さを変更することだけが必要な場合があります。これは機能的ではないため、機能ポイントがゼロであると測定されますが、その作業は SNAP で説明可能です。SNAP は、少なくとも部分的には「機能ポイントが 0」の問題を解決します。
今後の研究分野
2012 年の SNAP ベータ テストは 48 件のアプリケーションを使用して実施されました。さらに調査を進めることで、サブカテゴリの重み付け係数の調整が改善され、さらに強力な統計的相関関係が得られることが期待されます。今後の調査結果を IFPUG の非機能的サイズ設定標準委員会 (NFSSC) に提出してレビューを受けることをお勧めします。
参照
文献
Buglione, Luigi および Santillo, Luca、「NFR: L"Altra Meta Della Mela」、Newlsetter、Gruppo Utenti Function Point Italia イタリア ソフトウェア メトリック協会、www.gufpi-isma.org、2011 年 12 月。
国際ファンクションポイントユーザーグループ、「ファンクションポイントと SNAP の連携方法」、MetricViews、www.ifpug.org、プリンストンジャンクション、ニュージャージー州、08550、米国、2015 年 8 月。
Jones, Capers、「ソフトウェアの測定基準とメトリクスの選択ガイド」、CRC Press、フロリダ州ボカ・ロタン、33487、米国、2017 年。
ジョーンズ、ケイパーズ、「ソフトウェアのグローバルおよび業界の視点の定量化」、CRC プレス、フロリダ州ボカ ロタン、33487、米国 2018 年。
参考文献
- ^ IFPUG、「ファンクションポイントカウントプラクティスマニュアル」v. 4.3、プリンストンジャンクション、ニュージャージー州、08550 USA 2009。
- ^ 「ISO/IEC 20926:2009」。ISO 。 2024年3月27日閲覧。
- ^ IFPUG、「ソフトウェア非機能評価プロセス評価実践マニュアル」v. 2.4、プリンストンジャンクション、ニュージャージー州、08550、米国2017年。
- ^ ISO/IEC 25010:2011、システムおよびソフトウェア エンジニアリング - システムおよびソフトウェアの品質要件と評価 (SQuaRE) - システムおよびソフトウェアの品質モデル。
- ^ CrossTalk The Journal of Defense Software Engineering、「機能ポイントを補完する新しいソフトウェアメトリック - ソフトウェア非機能評価プロセス」、Ogden ALC/TISE、ユタ州ヒル空軍基地、2013 年 7 月 - 8 月。
- ^ COSMIC、IFPUG、「ソフトウェア プロジェクトのパフォーマンス測定、ベンチマーク、見積りで使用される非機能要件とプロジェクト要件の用語集」v. 1.0、2015 年 9 月。
外部リンク
- 翻訳元
