之前的部落格較長的描述了軟體工程中的系統文獻映射研究方法。這裡接着給出一個我曾經做過的工作作為例子,以更直覺地展示這種研究類型。該研究的背景資訊這裡不再贅述。
這篇部落客要介紹基于前面的分析,其對研究者和實踐者的意義。
注:實踐者(practitioner),通俗點講就是在企業工作的人員。
1. 對研究者的意義
(1)29.9%的入選文獻有實踐者作為作者。根據此系統文獻映射研究的結果,假設條件及其管理在軟體開發中具有重要的意義。是以,本研究鼓勵研究者與實踐者開展更多、更深入的合作。
(2)僅有少數入選文獻清晰地定義假設條件的概念。研究者在他們的工作中需要清晰地解釋假設條件的概念。
(3)盡管此系統文獻映射研究采用SWEBOK[1]中的五個軟體開發活動對假設條件進行分類,此分類在實踐中的适用性和有效性需要進一步的研究。
(4)盡管本研究提供了軟體開發中的假設條件集中于需求工程和軟體設計或主要與需求工程和軟體設計的制品關聯的兩個潛在原因,這些原因需要在後續研究中進一步被證明。
(5)假設條件與多種軟體制品關聯,且此系統文獻映射研究識别出九種關聯關系。研究者應關注為什麼、如何、何時假設條件與特定制品會互相影響。
(6)并非所有假設條件管理活動都得到一緻的關注。研究者應識别和分析軟體開發中各個假設條件管理活動的收益、成本或其他因素。
(7)假設條件及其管理的相關方法和工具具有特定的使用環境。研究者在介紹一個新方法或工具時應特别清晰地闡明其使用環境。此外入選文獻中沒有方法被用于支援假設條件的交流、複用、了解、檢索、組織,且大部分工具被用于支援assume-guarantee reasoning(34種工具中的19種;55.9%)。研究者應探索為這些未受廣泛關注的假設條件管理活動研發方法的可行性,且提供更多專用的工具,特别要重視與工業界的合作。
(8)此系統文獻映射研究指出,所有識别的不同的類型的涉衆均會制定假設條件,其次是評價和描述。需求工程、軟體設計、軟體構造的涉衆在假設條件管理中占據主導地位。除了涉衆與假設條件管理活動間的關系,本研究還識别出其他四種涉衆與假設條件管理之間的關系。是以研究者在研究軟體開發中的假設條件管理時應關注這些不同的涉衆。此外,入選文獻中提到的涉衆與假設條件管理活動之間的關系并不完全。例如針對假設條件複用和檢索,沒有入選文獻指出哪些涉衆應與之關聯。一個原因可能為涉衆并非入選文獻的主要關注點。本研究鼓勵研究者深入研究此問題,以清晰化涉衆在假設條件管理中的具體職責。
(9)假設條件管理的收益同樣基于特定的條件。研究者在介紹其工作時應清晰闡明這些條件。
(10)未被妥善管理的假設條件中,以無效的或者隐式的假設條件危害最大。是以本研究建議研究者聚焦于如何明确假設條件并減少無效假設條件的數量。
(11)假設條件的自動化和人工管理具有顯著的差別。一個有趣的研究題目為合成假設條件的自動化和人工管理。例如在除了系統驗證的環境下使用assume-guarantee reasoning的方法。
2. 對實踐者的意義
(1)實踐者應基于他們的特定環境就假設條件的了解達成一緻以減少假設條件的概念和術語的模糊性。
(2)實踐者應了解假設條件應從軟體開發的早期階段被管理。本研究建議實踐者反思假設條件管理的最佳時間點以及哪些假設條件需要被重視。
(3)假設條件與多種軟體制品關聯,且此系統文獻映射研究識别出十二類假設條件管理活動。本研究建議實踐者基于他們的可用資源就假設條件管理做出決策。例如當資源短缺時,僅重視假設條件制定、描述、評價、維護比重視所有十二種假設條件管理活動獲得更高的收益。
(4)此系統文獻映射研究識别的假設條件管理的方法、工具、收益、經驗具有其特定的環境。例如實踐者不僅需要關注方法本身,還需要關注其使用環境。
(5)此系統文獻映射研究中識别的假設條件管理的挑戰以及未被妥善管理的假設條件造成的後果可作為一個檢查表。本研究建議實踐者對此有清晰的認識。
(6)實踐者在他們的工作中無意識地制定假設條件,即一種隐式的假設條件。對假設條件具備較清晰的了解,認識到實踐者在工作中制定假設條件,識别已存在的假設條件是實踐假設條件管理的第一個重要步驟。
參考文獻
[1] P. Bourque and R.E. Fairley. Guide to the Software Engineering Body of Knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press, 2014.