申富饒,李 戈
1(計算機軟件新技術國家重點實驗室(南京大學),江蘇 南京 210023)
2(南京大學 計算機科學與技術系,江蘇 南京 210023)
3(北京大學 信息科學技術學院,北京 100871)
4(高可信軟件技術教育部重點實驗室(北京大學),北京 100871)
智能化軟件新技術是使用人工智能與機器學習技術輔助軟件工程的新興技術.近年來以深度學習為代表的人工智能技術飛速發(fā)展,在計算機科學的各個領域中都開始發(fā)揮重要作用.隨著軟件工程領域對數(shù)據(jù)積累的重視,人工智能技術在軟件開發(fā)過程中的應用也逐漸增加.利用人工智能技術輔助軟件工程中的代碼編寫、糾錯、測試等具體工作,可以大量節(jié)省人工勞動,提升軟件開發(fā)效率.將人工智能技術更好地與軟件工程的各個環(huán)節(jié)相結合,進一步提升軟件開發(fā)過程的自動化、智能化程度,是智能化軟件新技術研究的主要關注點.
本??_征文,共收到投稿37篇,其中32篇論文通過了形式審查,內容涉及智能化軟件新技術的各個方面.特約編輯先后邀請了20多位專家參與審稿工作,每篇投稿至少邀請2位專家進行評審.稿件經初審、復審、全國軟件與應用學術會議(NASAC 2018)宣讀和終審 4個階段,共歷時 5個月.26篇論文通過復審在 NASAC 2018會議上進行報告并接受質詢,最終有24篇論文通過終審,入選本???本??饕ㄒ韵?個主題.
本主題收錄了5篇論文.《基于深度學習的程序生成與補全技術研究進展》針對基于深度學習的自動化編程的兩種主要實現(xiàn)方式,即程序生成與代碼補全,進行了廣泛的調研與綜述,揭示了該領域目前所面臨的困難和挑戰(zhàn),并提出了幾個未來的研究方向.本文對該領域內研究現(xiàn)狀的分析總結有助于其他研究者在現(xiàn)有研究的基礎上改進創(chuàng)新.《可微分抽象機混合編程系統(tǒng)》提出了一種可無縫結合高級編程語言與神經網(wǎng)絡組件的混合編程模型.該模型可以同時使用過程化的高級編程語言元素和神經網(wǎng)絡組件元素混合開發(fā)應用程序,發(fā)揮并整合兩種編程方式各自的優(yōu)勢.《C/C++程序缺陷自動修復與確認方法》針對C/C++程序的自動修復問題提出了一種基于機器學習和程序合成的解決方案,結合了深度學習技術進行修復選項的生成,并據(jù)此實現(xiàn)了原型工具AutoGrader.《示例演化驅動的學生程序自動修復》針對學生程序設計應用背景,研究程序自動修復方法,利用模板示例程序指導補丁的演化,基于自動的錯誤分離及程序變異設計了細致的修復方案.《基于頻繁模式挖掘的GCC編譯時能耗演化優(yōu)化算法》設計了一種基于頻繁模式挖掘的遺傳算法 GA-FP.該算法在演化過程中利用頻繁模式挖掘得到出現(xiàn)頻度高且能耗改進大的一組編譯選項,并以此作為啟發(fā)式信息設計了“增添”和“刪減”兩種變異算子,以幫助提高解質量和加快收斂速度.
本主題收錄了9篇論文.《即時軟件缺陷預測研究進展》從即時缺陷預測技術的數(shù)據(jù)標注、特征提取和模型評估等方面對即時缺陷預測研究進展進行綜述,并展望了即時缺陷預測的未來發(fā)展,對讀者掌握該領域的研究進展非常有幫助.《基于特征遷移和實例遷移的跨項目缺陷預測方法》在跨項目軟件缺陷預測研究領域中提出了一種兩階段跨項目缺陷預測方法FeCTrA,同時考慮特征遷移和實例遷移兩個角度,減少兩個項目的數(shù)據(jù)分布差異性,提高缺陷預測精度.《C程序內存泄漏智能化檢測方法》提出了一種內存泄漏的智能化檢測方法,通過使用機器學習算法學習程序特征與內存泄漏之間的相關性,構建機器學習分類器并應用機器學習分類器進一步提高內存泄漏靜態(tài)分析的準確性.《基于深度學習的API誤用缺陷檢測》將深度學習中的循環(huán)神經網(wǎng)絡模型應用于API使用規(guī)約的學習及API誤用缺陷的檢測,能夠在一定程度上實現(xiàn)API誤用缺陷的自動發(fā)現(xiàn),為開發(fā)者節(jié)省開發(fā)和維護的時間開銷.《一種基于深度學習的上帝類檢測方法》提出了一種基于特征類屬性和相關自然語言信息的上帝類檢測方法,并使用神經網(wǎng)絡作為主要檢測的技術方法,其效果優(yōu)于現(xiàn)有的上帝類檢測方法,尤其是在查全率上有大幅度的提升.《基于維修日志的飛機設備故障原因判別方法》提出了一種基于卷積神經網(wǎng)絡對非結構化文本提取文本特征建立字向量的方法,使用隨機森林算法對長期積累下來的飛機故障日志數(shù)據(jù)建立故障原因分類器,可以幫助維修人員盡快確定故障原因.《基于代價極速學習機的軟件缺陷報告分類方法》針對軟件開發(fā)中的Bug分類問題提出了一種基于代價ELM的方法,將Bug分為嚴重Bug和不嚴重的Bug兩類,將錯誤分類代價的概念引入ELM模型的損失函數(shù),重點解決了報告分類中的數(shù)據(jù)不平衡和數(shù)據(jù)量不足的問題.《基于嵌入模型的混合式相關缺陷關聯(lián)方法》針對自動化關聯(lián)相關缺陷報告的問題,提出了一種基于嵌入模型的方法,將相關缺陷自動關聯(lián)問題抽象為推薦問題,并且結合了傳統(tǒng)的信息檢索技術和深度學習中的嵌入模型,綜合了詞頻相似度、單詞相似度、文檔相似度,有效地提高了傳統(tǒng)方法的性能.《代碼壞味對軟件演化影響的實證研究》力求探究代碼壞味產生的影響以及壞味與軟件演化之間的關系,開展了關于代碼壞味對軟件演化的影響的實證研究,具體分析了代碼壞味與新增文件、修改文件和移除文件這3類具體源文件操作之間的相關性.
本主題收錄了 3篇論文.《面向持續(xù)集成測試優(yōu)化的強化學習獎勵機制》針對持續(xù)集成測試優(yōu)化問題,提出了一種包含測試用例歷史執(zhí)行信息的獎勵函數(shù)的強化學習方法,使用包含測試用例歷史失效信息的獎勵函數(shù),使檢錯能力得到明顯提高.《敏感變量和感知機結合的測試預言生成方法》提出了一種在已知部分測試用例集的情況下,基于敏感變量和線性感知機的新測試用例的測試預言自動生成方法,為測試預言缺乏的場景提供了解決思路.《基于SOM神經網(wǎng)絡的二階變異體約簡方法》面向在軟件測試中具有重要意義的二階變異測試領域,詳細分析了影響條件下二階等價變異體的可能性因素,并基于這些因素提出了一種基于SOM神經網(wǎng)絡的二階變異體約簡的方法.
本主題收錄了7篇論文.《基于圖嵌入的軟件項目源代碼檢索方法》將軟件項目代碼中的元素以圖的方式進行組織,形成包含繼承、實現(xiàn)、成員等關系的軟件代碼圖,然后采用圖嵌入的方式計算結點之間的相關性,以支持查詢中子圖的生成與推薦.《企業(yè)級海量代碼的檢索與管理技術》設計實現(xiàn)了一個對大規(guī)模代碼庫進行管理和搜索的工具平臺,通過爬取大量代碼、基于Elasticsearch工具設計了代碼搜索引擎,并進一步研究了查詢變換、搜索策略和結果排序、摘要生成等技術以提高代碼搜索效果,在大型軟件企業(yè)中具有較為重要的應用價值.《一種基于迭代的關系模型到本體模型的模式匹配方法》提出了一種考慮數(shù)據(jù)本地化特征的模式匹配算法,對單一模式匹配算法匹配不準的成因進行了較為深入的分析,并提出了一種迭代優(yōu)化的模式匹配方案,能夠更好地兼容數(shù)據(jù)源的本地化特征.《軟件開發(fā)活動數(shù)據(jù)的數(shù)據(jù)質量問題》研究軟件工程中的數(shù)據(jù)質量問題,通過分析現(xiàn)有文獻,總結出了10種數(shù)據(jù)質量問題,涵蓋了數(shù)據(jù)產生、數(shù)據(jù)收集和數(shù)據(jù)使用這3個階段,也提出了相應的方法以幫助發(fā)現(xiàn)和解決數(shù)據(jù)問題,對其他研究人員有很大的參考價值.《基于本體推理的終端用戶數(shù)據(jù)查詢構造方法》針對企業(yè)數(shù)據(jù)在進行業(yè)務分析時,業(yè)務分析者無法直接使用數(shù)據(jù)庫查詢和使用數(shù)據(jù)的問題,提出了一種基于推理的終端用戶本體查詢構造方法,能夠減少數(shù)據(jù)庫設計細節(jié)的暴露并使得終端用戶更易查詢和操縱數(shù)據(jù).《一種基于支持向量機和主題模型的評論分析方法》提出了一種結合分類和主題提取的用戶評論分析方法 RASL,用于從移動應用的用戶所提供的大量無結構化負面反饋評論中提取有效信息,為移動應用開發(fā)者提供更為易讀且準確的結構化用戶評論,并且也為用戶評論的分組與記錄帶來好處.《基于多開發(fā)者社區(qū)的用戶推薦算法》針對開發(fā)者社區(qū)中的用戶標簽自定化、不同社區(qū)的不對稱活躍現(xiàn)象和關鍵詞集封閉等問題,提出了一種跨社區(qū)的用戶推薦算法,旨在賦予用戶更加準確的標簽,進而拓展可推薦用戶范圍并提升用戶推薦結果的準確度.
本專刊主要面向智能化軟件新技術領域,突出反映我國計算機軟件與人工智能學者在該領域的最新研究進展.在此,我們特別感謝《軟件學報》編委會、中國計算機學會系統(tǒng)軟件專委會和軟件工程專委會對本??ぷ鞯闹笇?、支持和幫助,感謝編輯部各位老師所付出的辛勤努力,感謝評審專家嚴謹、細致、及時的評審工作,感謝向本??e極投稿的所有作者,希望本??兄诖龠M人工智能、軟件工程相關領域人員在智能化軟件新技術方面的研究與實踐工作.