経験的調査
経験的調査には、あらゆるツール、技術、または方法の科学的調査が含まれます。この調査には、主に次の4つの原則が含まれています。
- 調査手法の選択
- 仮説を述べる
- 変数の制御を維持する
- 調査を意味のあるものにする
調査手法の選択
ソフトウェア工学における実証的調査の重要な要素は次のとおりです。
- Survey
- ケーススタディ
- 正式な実験
調査
調査は、関係と結果を文書化するための状況の後ろ向き研究です。これは常に、イベントが発生した後に実行されます。たとえば、ソフトウェアエンジニアリングでは、ポーリングを実行して、ユーザーが特定の方法、ツール、または手法にどのように反応して傾向や関係を判断したかを判断できます。
この場合、当面の状況を管理することはできません。状況を記録して、同様の状況と比較することができます。
ケーススタディ
これは、アクティビティの結果に影響を与える可能性のある主要な要因を特定し、アクティビティを文書化する調査手法です。つまり、入力、制約、リソース、および出力です。
正式な実験
これは、活動の厳密に管理された調査であり、主要な要因が特定され、操作されて、結果への影響を文書化します。
以下のガイドラインに従って、特定の調査方法を選択できます。
すでに活動が行われている場合は、調査やケーススタディを行うことができます。それがまだ発生していない場合は、ケーススタディまたは正式な実験を選択できます。
結果に影響を与える可能性のある変数を高度に制御できる場合は、実験を使用できます。変数を制御できない場合は、ケーススタディが推奨される手法になります。
より高いレベルで複製が不可能な場合、実験は不可能です。
レプリケーションのコストが低い場合は、実験を検討できます。
仮説を述べる
特定の調査手法の決定を後押しするには、調査の目標を、テストしたい仮説として表現する必要があります。仮説は、プログラマーが調査したい動作を説明すると考える暫定的な理論または仮定です。
変数の制御を維持する
仮説を述べた後、次に、その真理に影響を与えるさまざまな変数と、それをどの程度制御できるかを決定する必要があります。実験とケーススタディの主な識別要因は、動作に影響を与える変数の制御の程度であるため、これは不可欠です。
プロジェクトを特徴づけることができ、評価結果にも影響を与えることができる要因である状態変数を使用して、正式な実験における実験状況と制御状況を区別します。制御と実験を区別できない場合は、ケーススタディ手法が推奨されます。
たとえば、プログラミング言語の変更がプロジェクトの生産性に影響を与える可能性があるかどうかを判断する場合、言語は状態変数になります。現在、Adaに置き換えたいFORTRANを使用しているとします。次に、FORTRANが制御言語になり、Adaが実験言語になります。
調査を意味のあるものにする
実験の結果は通常、ケーススタディや調査よりも一般化できます。ケーススタディまたは調査の結果は、通常、特定の組織にのみ適用できます。以下の点は、さまざまな質問に答えるためのこれらの手法の効率を証明しています。
適合理論と一般通念
ケーススタディまたは調査を使用して、従来の知識や他の多くの標準、方法、またはツールの有効性と有用性を1つの組織に適合させることができます。ただし、正式な実験では、主張が一般的に真実である状況を調査することができます。
関係を探る
リソースとソフトウェア製品のさまざまな属性間の関係は、ケーススタディまたは調査によって示唆されます。
たとえば、完了したプロジェクトを調査すると、特定の言語で記述されたソフトウェアは、他の言語で記述されたソフトウェアよりも障害が少ないことがわかります。
これらの関係を理解して検証することは、将来のプロジェクトの成功に不可欠です。これらの関係はそれぞれ仮説として表現でき、正式な実験を設計して、関係がどの程度保持されているかをテストできます。通常、1つの特定の属性の値は、他の属性を一定に保つか、制御下に置くことによって観察されます。
モデルの精度の評価
モデルは通常、アクティビティの結果を予測したり、メソッドやツールの使用をガイドしたりするために使用されます。実験やケーススタディを設計する場合、予測が結果に影響を与えることが多いため、特に難しい問題が発生します。プロジェクトマネージャーは、多くの場合、予測を完了の目標に変えます。この効果は、コストモデルとスケジュールモデルを使用する場合によく見られます。
平均故障間隔として測定された信頼性は、ソフトウェアが現場で使用できるようになるまで評価できないため、信頼性モデルなどの一部のモデルは結果に影響を与えません。
対策の検証
属性の値を取得するためのソフトウェア対策はたくさんあります。したがって、特定のメジャーがキャプチャすることになっている属性の変更を反映しているかどうかをテストするための調査を実施する必要があります。検証は、あるメジャーを別のメジャーと相関させることによって実行されます。影響因子の直接かつ有効な測定値でもある2番目の測定値を使用して、検証する必要があります。このような測定値は、常に利用可能であるとは限らず、測定も簡単ではありません。また、使用される測定値は、測定される要因に関する人間の概念に準拠している必要があります。