SQALE(ライフサイクル期待に基づくソフトウェア品質評価)は、ソフトウェアアプリケーションのソースコード評価を支援する手法です。言語やソースコード分析ツールに依存しない汎用的な手法であり、クリエイティブ・コモンズ表示-非営利-改変禁止3.0非移植ライセンスの下でライセンスされています。[ 1 ]ソフトウェア開発者はSQALE手法を自由に利用し、実装することができます。
SQALEメソッドは、フランスのinspearit(旧DNV ITGS France)によって開発されました。このメソッドは、あらゆる種類・規模のアプリケーションにおいて、多くの組織で利用されています。このメソッドは、定義された指標と指標を生成する複数の静的コード解析ツールによって実装されます。さらに、このメソッドは、アジャイルソフトウェア開発プロジェクト における設計負債の正確な管理を可能にします。
歴史
SQALE法は、ソースコードの品質評価という一般的なニーズに応えるために開発されました。この手法は、以下のような基本的な疑問に答えることを目的としています。
- 開発者が提供するソースコードの品質はどうですか?
- コードは変更可能、保守可能、移植可能、再利用可能でしょうか?
- プロジェクトによって蓄積された設計負債とは何ですか?
ISO 9126のような標準規格は、グローバルなソリューションを構築する方法について効果的なサポートを提供していません。ソースコードの品質を評価するには、開発者コミュニティには以下の特性を持つ汎用的な方法が必要です。
- 客観的、具体的、再現可能
- 分かりやすい指標、統合、または指標を作成し、ソースコードの改善に関する意思決定を支援します。
- 言語に依存しない
- 分析ツールに依存しない
基本原則
- ソースコードの品質は非機能要件です。
- ソース コードの品質に関する要件は、他のすべての要件と同じ品質基準に従って形式化する必要があります。
- ソース コードの品質を評価するということは、本質的には、その状態と期待される品質目標との間の距離を評価することです。
- SQALE メソッドは、ソース コードを適合させるために必要な修正コストを考慮して、要件への適合までの距離を評価します。
- SQALE メソッドは表現条件を尊重します。
- SQALE メソッドでは、修復コストを集計し、品質指標を計算するために加算を使用します。
- SQALE メソッドの品質モデルは直交です。
- SQALE メソッドの品質モデルでは、ソフトウェアのライフサイクルが考慮されています。
詳細
この方法は 4 つの主要な概念に基づいています。
- 品質モデル
- 分析モデル
- 指標
- 指標
品質モデル
SQALE品質モデルは、コードの品質に関連する非機能要件を定式化し、体系化するために使用されます。このモデルは3つの階層構造で構成されています。第1レベルは特性、第2レベルはサブ特性で構成されます。第3レベルは、ソースコードの内部属性に関連する要件で構成されます。これらの要件は通常、ソフトウェアのコンテキストと言語に依存します。
分析モデル
SQALE分析モデルには、コードに関連する指標とコントロールを正規化するためのルールと、正規化された値を集計するためのルールが含まれています。SQALEメソッドは、ソースコード分析ツールから得られるレポートを修正コストに変換することで正規化します。そのためには、修正係数または修正関数が使用されます。SQALEメソッドは、品質モデルのツリー構造またはソースコードの成果物の階層構造のいずれかで、修正コストを集計するためのルールを定義します。
指標
すべてのSQALE指標はコストを表します。これらのコストは、作業単位、時間単位、または金額単位で計算できます。いずれの場合も、指標値は比率型の尺度で表されます。このタイプの尺度で許可されているすべての操作で処理できます。ソースコード成果物の階層構造の任意の要素について、特定の特性に関連する修正コストは、その特性の要件に関連するすべての修正コストを合計することで見積もることができます。SQALE特性の指標は次のとおりです。
- SQALE テスト可能性指標:STI
- SQALE信頼性指数:SRI
- SQALE 変動性指数:SCI
- SQALE効率指数:SEI
- SQALE セキュリティ インデックス: SSI
- SQALE保守性指標:SMI
- SQALE 移植性指標:SPI
- SQALE再利用性指標:SRuI
この手法では、グローバル指標も定義します。ソースコード成果物の階層構造における任意の要素について、品質モデルのすべての特性に関連する改善コストは、品質モデルのすべての要件にリンクされたすべての改善コストを合計することで見積もることができます。この算出された指標は、SQALE品質指標(SQI)と呼ばれます。AGILEソフトウェア開発において、SQI指標はプロジェクトの設計負債(または技術的負債)に対応します。この手法では、異なる規模の製品品質を比較するための指標密度も定義します(例:SQID:SQALE品質密度指標)。
指標
SQALE法では、3つの合成指標が定義されています。各ユーザーは、必要に応じて指標を定義できます。
SQALEとアジャイルソフトウェア開発
SQALEメソッドは、アジャイルソフトウェア開発における設計負債(または技術的負債)の管理に特化しており、以下のことが可能になります。
- 設計負債を生み出すものを明確に定義する
- 設計負債を正しく見積もるには
- この負債を、テスト可能性、信頼性、変更可能性、保守可能性などに関連するさまざまな部分に分けて説明します。この分類は、負債の影響に関する分析と、コード リファクタリングの優先アクションを定義する方法をサポートします。
この手法では、ソースコード(SQALE品質モデル)に関する要件において、ユニットテストで達成すべき最低限の閾値を設定することができます。この閾値に達しない場合、アプリケーションの信頼性指標に影響が出ます。
SQALEメソッドを実装するツール
参照
参考文献
- ^ 「SQALEの詳細はSQALEウェブサイトをご覧ください」。2014年1月29日閲覧。
- 信頼性の高いソフトウェア技術 - Ada-Europe 2011:信頼性の高いソフトウェア技術に関する第16回Ada-Europe国際会議、Springer、2011年、ISBN 978-3642213373