我們正在進入一個軟件定義和使能一切的智能化時代,如何提高大規模復雜軟件的開發效率、確保軟件質量已成為各行各業創新和發展的核心競爭力.近年來,云計算、大數據、人工智能和第五代移動通信(5G)等新技術的飛速發展更是深刻改變了人們應用和開發軟件的方式,以服務化、群智化和生態化為代表的軟件開發方法已成為現代軟件開發的新趨勢.在此背景下,研究面向服務的群智化生態化軟件開發方法,將來自多方面的先進理論方法進行有效融合創新、匯聚群體智慧、增強軟件生態系統的自適應演化能力已成為國內外學術界和工業界研究的前沿和重點,如何有效組織、群體協作,構建健康可持續的軟件生態系統仍是當前軟件開發方法面臨的重大挑戰.
2019年初,《計算機研究與發展》編輯部聯合中國計算機學會軟件工程專委會和系統軟件專委會推出了本期“面向服務的群智化生態化軟件開發方法”專題,介紹服務化、群智化和生態化軟件開發方法及其相互融合的最新研究進展.通過公開征文,從22篇投稿中經過兩輪專家評審以及在2019年11月在杭州舉辦的專委會年會(NASAC 2019)上的口頭匯報和質詢,本專題最終收錄了5篇研究論文,分別涵蓋了群體智能在軟件開發中的應用、軟件生態系統的演化以及面向服務的軟件開發等方面的研究主題,期望能為從事相關研究工作的讀者提供參考和借鑒.
軟件缺陷修復是軟件開發過程中的一個重要環節,尤其在以開源軟件為代表的群智化軟件開發模式下,如何提高缺陷分派的效率和準確性是保證軟件質量的重要因素.劉燁等作者的論文“基于混合神經網絡和注意力機制的軟件缺陷自動分派方法”將缺陷自動分派任務轉化為文本分類問題,并提出了一種基于混合神經網絡和注意力機制的缺陷自動分派方法 AtenGCRNN.該方法能更有效地捕獲缺陷報告的重要文本特征和序列特征,可以為軟件開發提供更精準的缺陷修復者推薦服務.
軟件開發同樣離不開對軟件開發相關知識的有效利用,Stack Overflow等技術社區是目前軟件開發人員獲取軟件開發知識的重要途徑.針對在技術社區上提出的問題并不一定會獲得有效答案這一問題,沈明珠等作者的論文“面向技術論壇的問題解答狀態預測”提出了一種基于深度學習的問題解答狀態預測方法,能夠提前預知問題能否及時獲得有效答復,從而使開發人員能及時修改問題描述、或以其它途徑尋求幫助.
基于群體智能的軟件工程旨在利用潛在高效的群體智能方法來解決軟件工程問題,其中群體智能方法不僅包括機器群體智能,還包括人類群體智能以及人機結合群體智能.徐立鑫等作者的論文“基于群體智能的軟件工程方法綜述”給出了應用不同層次群體智能方法解決軟件工程問題的統一框架,并系統總結了各類群體智能方法在軟件工程生命周期各項活動中的應用,能為不同層次間群體智能方法的相互借鑒和轉化提供參考.
隨著開源軟件開發平臺的快速發展,不同的軟件項目正逐步以軟件生態系統的方式呈現,如何理解軟件生態系統的演化過程、揭示軟件生態系統的演化規律是相關研究的一個熱點話題.齊晴等作者的論文“GitHub中軟件生態系統的演化”以開源軟件開發平臺GitHub為例,圍繞如何識別不斷演化的軟件生態系統、軟件生態系統中存在哪些不同的演化事件類型以及軟件生態系統的長期存活與哪些因素密切相關這3個主要研究問題,分別給出了相應的識別和分析方法,并描述了3個具體的研究案例.
面向服務軟件開發已成為現代軟件開發的一種重要組成部分,其中微服務是面向服務軟件開發的最新發展趨勢,正受到工業界和學術界的廣泛重視和關注.吳化堯等作者的論文“面向微服務軟件開發方法研究進展”系統收集了與微服務軟件開發相關的研究論文,并在此基礎上總結了面向微服務軟件開發在需求分析、設計與實現、測試以及重構上的已有方法、工具和實踐,能為更加科學有效地開發高質量微服務軟件提供參考.
我們衷心希望本專題能夠拋磚引玉,軟件工程及系統軟件等相關領域的研究和開發人員能在研讀本專題文章后得到新的啟發,以進一步促進面向服務的群智化生態化軟件開發方法的相關研究.由于時間倉促、容量有限,本專題無法全面覆蓋服務化、群智化和生態化軟件開發各領域的所有最新研究工作,存在不足之處,敬請各位同行諒解和批評指正.衷心感謝《計算機研究與發展》編輯部提供了寶貴機會出版此專題!衷心感謝各位作者、審稿專家和編輯部工作人員的全力支持和辛勤付出,以使得本專題能順利出版!