天天看點

軟體工程中的系統文獻映射研究-簡介、設計和執行過程的第一步

在一個研究領域趨向成熟的過程中,常常會湧現出各種各樣的研究成果。随着成果的積累,在某個特定時期,總結和分析這些研究成果變得重要,是了解和進一步探索該領域的必要步驟。在軟體工程中,人們常常使用系統文獻綜述(Systematic Literature Review)和系統文獻映射研究(Systematic Mapping Study,這個基本直譯了,但是覺得翻的有點奇怪)作為達成該目的的方法,即用于對于某領域研究現狀的總結和分析[1]。系統文獻綜述旨在基于一個特定研究問題、主題、現象以識别、評價、解釋相關的研究[1]。系統文獻映射研究聚焦于為某領域提供概覽,識别某主題的研究證據,提供定量(主要)和定性的資料[1]。此二類研究的主要差別在于系統文獻綜述的研究問題較為精确,而系統文獻映射研究的研究問題較為寬泛[1]。從執行過程上來說兩者類似,簡單來說就是找出主要的相關文獻,分析并描述它們的内容(如方法和結論)[1]。

值得注意的一點是,在進入軟體工程某個領域的時候,第一件事就是應該找找該領域内是否有相關的系統文獻綜述和系統文獻映射研究。如果沒有,則應該考慮自行設計一個出來。不管我在荷蘭的研究組還是在中國的研究組,每個博士生第一年确定研究方向後,如果該研究方向上沒有類似的系統文獻綜述或者系統文獻映射研究,則其被要求的第一件事總是基于其研究方向設計一個系統文獻綜述或者系統文獻映射研究。這個過程對于該博士生迅速掌握領域全貌有着巨大的幫助。

作為一個系列,這篇部落格首先介紹軟體工程中系統文獻映射研究設計和執行過程的第一步。

1. 确定目标和研究問題

目标和研究問題是整個系統文獻映射研究最重要的環節。每個人在做之前都應該至少問自己以下四個問題:

(1)為什麼要做這件事?

(2)是不是已經有人做過?

(3)現在是不是一個合适的時機?

(4)到底研究什麼東西?

以我的研究為例,如果現在希望研究軟體開發中的假設條件及其管理,那麼其目标和研究問題舉例如下。

目标:以研究者和實踐者的角度探索并分析軟體開發中的假設條件及其管理。該目标可進一步分解為九個研究問題:對軟體開發中的假設條件的了解(研究問題一、二、三);假設條件管理活動、方法、工具(研究問題四、五);假設條件管理的涉衆、收益、挑戰、經驗(研究問題六、七、九);未被妥善管理的假設條件所造成的後果(研究問題八)。

研究問題一:軟體開發中的假設條件有哪些定義?

原理:研究者和實踐者對軟體開發中的假設條件可能有不同的了解。該研究問題的目的在于收集軟體開發中的假設條件如何被定義的相關資料。

研究問題二:軟體開發中的假設條件有哪些類型?

原理:不同的軟體開發活動中存在不同類型的假設條件,該研究問題的結果提供對軟體開發中不同類型的假設條件的概覽。

研究問題三:軟體開發中的假設條件與哪些軟體制品關聯?

原理:軟體開發中的假設條件并非獨立存在,而是與不同類型的軟體制品關聯。該研究問題的目的在于分析出相關的制品。

研究問題四:軟體開發中的假設條件管理包含哪些活動?

原理:假設條件管理包括特定的活動。該研究問題的目的在于從文獻中識别這些活動。

研究問題五:軟體開發中有哪些方法和工具被用來支援假設條件管理?

原理:軟體開發中假設條件管理存在不同的方法和工具。該研究問題的結果為研究者和實踐者提供相關方法和工具的概覽。

研究問題六:軟體開發中假設條件管理的相關涉衆是哪些?

原理:假設條件管理與多種涉衆關聯(如架構師)。該研究問題的結果幫助研究者和實踐者了解誰應該參與假設條件管理。

研究問題七:軟體開發中假設條件管理的收益和挑戰是哪些?

原理:軟體開發中假設條件管理具有相應的收益及挑戰。該研究問題的結果聚焦于這些收益和挑戰。

研究問題八:未被妥善管理的假設條件會造成哪些後果?

原理:為被妥善管理的假設條件(如隐式的假設條件)可能會導緻特定的問題。該研究問題的結果幫助研究者和實踐者認識到這些後果。

研究問題九:軟體開發中假設條件管理有哪些經驗?

原理:文獻的作者在研究假設條件管理過程中可能得到不同的經驗。該研究問題的目的即為收集相關的經驗。 

值得注意的是,确定目标和研究問題是一個疊代的過程。這個過程中要開始閱讀一些已知的相關文獻(包括本領域和其他領域)來擷取靈感。可能一開始就能想到2、3個研究問題,後續不斷地增加。也可能在後期審閱自己的設計時發現有幾個研究問題不合适,需要去掉。這個過程持續的周期不定,我在這裡提供一些建議。

(1)多讀類似的系統文獻綜述和系統文獻映射研究,看看别人如何确定研究目标和研究問題。

(2)多讀領域内文獻,看看領域記憶體在什麼研究點。

(3)多和其他人交流,以擷取靈感。

(4)除了自己外,至少有一個相關的專家幫助你審閱你的設計。

(5)多思考,不要害怕修改,甚至于推翻重來。

參考文獻

[1] B. Kitchenham and S. Charters. Guidelines for Performing Systematic Literature Reviews in Software Engineering, Version 2.3. EBSE Technical Report EBSE-2007-01, Keele University and Durham University, 2007.

繼續閱讀