
經驗調查
經驗調查涉及對任何工具、技術或方法的科學調查。此調查主要包含以下 4 個原則。
- 選擇調查技術
- 陳述假設
- 控制變數
- 使調查有意義
選擇調查技術
軟體工程中經驗調查的關鍵組成部分是 -
- 調查
- 案例研究
- 正式實驗
調查
調查是對某種情況的回顧性研究,以記錄關係和結果。它總是在事件發生後進行。例如,在軟體工程中,可以進行調查以確定使用者對特定方法、工具或技術的反應,以確定趨勢或關係。
在這種情況下,我們無法控制手頭的情況。我們可以記錄一種情況並將其與類似的情況進行比較。
案例研究
這是一種研究技術,您需要識別可能影響活動結果的關鍵因素,然後記錄活動:其輸入、約束、資源和輸出。
正式實驗
這是一項對活動進行的嚴格控制的調查,其中識別並操縱關鍵因素以記錄其對結果的影響。

可以根據以下指南選擇特定的調查方法 -
如果活動已經發生,我們可以進行調查或案例研究。如果尚未發生,則可以選擇案例研究或正式實驗。
如果我們對可能影響結果的變數有很高的控制力,那麼我們可以使用實驗。如果我們無法控制變數,則案例研究將是首選技術。
如果在較高層次上無法進行復制,則無法進行實驗。
如果複製成本低,則可以考慮實驗。
陳述假設
為了促進特定調查技術的決策,研究的目標應表達為我們要檢驗的假設。假設是程式設計師認為解釋他們想要探索的行為的暫定理論或假設。
控制變數
在陳述假設之後,接下來我們必須確定影響其真實性的不同變數以及我們對其有多少控制權。這一點至關重要,因為實驗和案例研究之間的關鍵區別在於影響行為的變數的控制程度。
狀態變數是可用於表徵專案並可能影響評估結果的因素,用於在正式實驗中區分控制情況和實驗情況。如果我們無法區分控制和實驗,則案例研究技術將是首選技術。
例如,如果我們想確定程式語言的變化是否會影響專案的生產力,那麼語言將是一個狀態變數。假設我們目前使用 FORTRAN,我們想用 Ada 替換它。那麼 FORTRAN 將是控制語言,Ada 將是實驗語言。
使調查有意義
實驗結果通常比案例研究或調查更具普遍性。案例研究或調查的結果通常僅適用於特定組織。以下幾點證明了這些技術在回答各種問題的有效性。
符合理論和傳統智慧
案例研究或調查可用於確認傳統智慧以及許多其他標準、方法或工具在一個組織中的有效性和實用性。但是,正式實驗可以調查這些主張普遍成立的情況。
探索關係
案例研究或調查可以表明資源和軟體產品的各種屬性之間的關係。
例如,對已完成專案的調查可能會發現,用特定語言編寫的軟體比用其他語言編寫的軟體錯誤更少。
瞭解和驗證這些關係對於任何未來專案的成功至關重要。這些關係中的每一個都可以表達為一個假設,並且可以設計一個正式的實驗來檢驗這些關係成立的程度。通常,透過保持其他屬性恆定或受控來觀察一個特定屬性的值。
評估模型的準確性
模型通常用於預測活動的成果或指導方法或工具的使用。在設計實驗或案例研究時,它提出了一個特別困難的問題,因為它們的預測通常會影響結果。專案經理經常將預測轉化為完成的目標。當使用成本和進度模型時,這種影響很常見。
一些模型(例如可靠性模型)不會影響結果,因為衡量為平均故障時間(MTTF)的可靠性只有在軟體準備好用於現場後才能進行評估。
驗證度量
有許多軟體度量來捕獲屬性的值。因此,必須進行一項研究來檢驗給定的度量是否反映了它應該捕獲的屬性的變化。透過將一個度量與另一個度量相關聯來執行驗證。應使用第二個度量(也是影響因素的直接且有效的度量)來進行驗證。此類度量並不總是可用或易於測量。此外,所使用的度量必須符合人們對正在測量的因素的認識。