胡軍民
【摘 要】人工智能(AI)在軟件工程中的應用研究是近年來興起的熱門話題之一。歐洲信息技術研究計劃就提出把AI技術與軟件工程技術結合起來構成一個支持軟件系統分析和設計的工具。有跡象表明,人工智能與軟件工程的相互作用終將導致新一代軟件開發方法與管理的規范形成,它能使軟件易于開發、修改和維護。軟件工程的智能化是一個必然趨勢。
【關鍵詞】人工智能;軟件工程;應用研究
一、人工智能在軟件工程中的應用現狀
近年來,軟件工程領域發展迅速,很多方面都需要智能,人工智能和軟件工程的交叉多年來一直是個十分活躍的研究領域,利用人工智能技術創建一些系統來執行或輔助軟件工程過程是很自然的應用。二十多年來,為達到這個目的,人們已做了大量實質性的研究,并取得了一些重要成果。
目前,已經展現的軟件工程智能化的成果主要有:運用專家系統和人工神經網絡系統設計軟件工程項目;把智能化模塊組裝到大型軟件系統,使得軟件適應快速改變需求;應用推理技術提高用戶界面的友好性;在圖形用戶接口、面向對象的程序設計、基于約束或基于規則的程序設計中應用智能技術;在大型分布式復雜軟件中引入Agent技術實現軟件的高抽象層次的構件和連接件,在不同層次上清晰描述和實現構件化的軟件體系結構等等。
二、軟件工程領域的人工智能思想
人工智能技術在軟件工程領域有很多應用。作為人工智能的一個分支領域,機器學習技術在軟件預測與評估方面得到成功應用。在很多工作中,機器學習方法用來預測和估計軟件過程、產品和資源的內在及外部的特性,包括:軟件質量、軟件規模、開發成本、設計成本、維護成本、軟件資源、修改費用、軟件可靠性、軟件缺陷、重用性、軟件發布時間、生產率、執行時間以及軟件模型的可測試性。
傳統的搜索引擎資源獲取部分使用的是盲目式的遍歷算法,即對所獲得的鏈接進行遍歷,抽取相關信息保存數據庫中供搜索引擎檢索調用。這種方法存在不少問題。使用這種方法,會導致垃圾數據的大量積累,對于某些獲取的數據,可能從來不被檢索訪問。除此之外,由于遍歷了大量無關的鏈接,會導致系統負擔的增加,效率的低下。
使用人工智能中的啟發式搜索來獲取特定的信息可以極大地減少遍歷的鏈接數量,使被訪問到的鏈接盡量地指向有用的信息。減少了無關鏈接的訪問數量,就能極大地提高相對回報率,從而提高了系統的效率。另外,在頁面類型的判斷中,有資料顯示已成功引入智能代理系統,完成網頁類型的自動分類判斷。該部分通過抽取網頁的特征項,形成文本向量,然后與中心向量進行相似度計算后,根據相似度的結果來對網頁進行自動分類。
三、軟件系統的設計與開發
軟件系統的設計與開發是軟件工程的主要活動之一,如果軟件工程工作者要設計一個軟件系統,以期望實現納稅申報單處理。則需要完成以下一系列工作:a.需求分析:理解掌握稅法——長達幾百頁的法律條文必然含有不一致之處。這項活動需要大量人力,其中包括許多稅務專家和軟件開發人員等等。b.設計:為系統提出總體結構。這項活動也需要大量人力,并需要了解軟件工程方法學。同時還要與稅務專家多交流,既是為了弄清此稅法和需求文檔,也是為了幫助保證在設計中能提前考慮到將來稅法的修改。c.編碼:書寫系統各部分的源代碼。編碼人員的活動可以稍獨立地進行,但無疑需要與設計人員交流,還可能要與稅務專家聯系。d.集成:把各部分放在一起成為完整的系統。這又是一個以小組為單位進行的活動,需要設計人員和編碼人員大量地交流。e.測試和確認:測試該系統以保證其準確地反映了新稅法。對于一個有一定復雜性的法律條文,這可說是一項極其費時的活動,需要設計人員、編碼人員和稅務專家共同協作。f.維護和進化:隨著該稅法變化,相應地修改此系統。在又一重要的新法生效之前,此稅法很可能要修改多次,實際上在此納稅申報單處理系統首次交付之前,很可能發生了若干最重要的修改。與工具軟件的情形一樣,這項活動將是系統整個生命期中最費時間的活動。
四、人工智能在軟件系統中的應用
由于開發大型軟件固有的基本難點—復雜性、需求一致性、多變性和不可見性,在不斷變化的背景環境中開發和維護大型軟件系統對我們構成了巨大挑戰。開發軟件產品中的許多問題均源于軟件固有的復雜性以及由此產生的伴隨軟件規模的非線性增長。而且軟件必須與其交互界面所涉及的多種各異的人類組織和系統要求的形式保持一致性。另外軟件的實質是無法直觀得到的,當我們試圖將軟件結構圖示時,會發現得到的是數目龐大的而且錯綜復雜的有向圖表。
將人工智能的自適用性概念運用在軟件設計領域,因為無法精確地把握業務的變化方向和大小,所以采用自適用性的一些概念和方法來解決這些問題。主要思想為:
①針對變化可能性大的業務類型,系統設計時要盡可能多地涵蓋它;
②對變化可能性大的業務邏輯,劃分地要細,即扇入系數要小;
③采取措施使用戶可以根據業務實際需要來選擇業務種類,并可以人為確定業務的工作方式和順序。
如此一來,這樣的軟件產品可以做到:
①由于大量的業務方式已經被考慮和設計在系統中,用戶可以根據需要選擇當前適用的業務;
②如業務模塊已經不適用當前業務狀況時,對小型化模塊的修改來說,二次開發和修改的成本就要小的多。
五、結束語
目前我國經濟正處于快速成長發展時期,各種業務不斷涌現,這為軟件工程的業發展既帶來了機遇也帶來了挑戰。如何增大軟件的適用程度,降低開發成本,這將是每個軟件開發從業者必須面臨的一個課題。而將人工智能相關的某些技術應用到軟件開發的過程中,也將非常有助于實現軟件行業的跨越性發展。
【參考文獻】
[1]陳奕輝.“互聯網+”時代軟件工程開發新技術研究[J].科技經濟導刊,2018,26(04):149.
[2]李萍.國內人工智能技術的發展趨勢及應用領域探究[J].廣東蠶業,2017,51(08):20.
[3] 楊小平.目前軟件工程技術在網絡時代背景下的發展探討[J].讀天下. 2017(02).