杜帥
摘 要:軟件工程在計算機技術取得進展后也飛速發展,但是項目進行中仍會在人為和環境因素的作用下遇到風險。以人工智能的幾個應用融入到軟件風險管理中,會產生不可小覷的作用。
關鍵詞:軟件風險;人工智能;融入
DOI:10.16640/j.cnki.37-1222/t.2018.16.097
1 軟件風險管理
計算機技術已經歷經六十余載的歷程,取得了突飛猛進的進步發展。計算機的多領域運用推動社會各行各業換代升級,改變人們的衣食住行。計算機軟件系統是信息化的不可或缺的部分。軟件工程(Software Engineering)在軟件開發中有重要地位。“軟件工程”在Fritz Bauer、Boehm、IEEE和《軟件工程術語》等代表性定義中概括講為:“指導軟件開發和維護的工程性學科,它以計算機科學理論和其他相關科學的理論為指導,采用工程化的概念、原理、技術和方法進行軟件的開發和維護,把經過時間考驗且證明是正確的管理技術和當前能夠得到的最好的技術方法結合起來,以較少的代價獲得高質量的軟件并維護它。”但是軟件和生物一樣會經歷孕育、誕生、成熟、衰亡的生存期歷程,包括軟件定義、軟件開發和運行維護管理三個過程。
就如從古至今沒有幾個人一生一帆風順,軟件的生存期過程也可能出現影響軟件目標或是可能造成重大損失的事件,即為軟件風險。風險是過程中可能發生的事,這個可能性用風險概率描述。降低軟件風險發生的可能性,使這個概率接近于0,對加快開發進度、降低預算、避免嚴重后果并減少損失有莫大的幫助。
2 基于人工智能減少風險概率的想法
人工智能(Artificial Intelligence,AI)主要研究用人工的方法和技術,模仿、延伸和擴展人的智能,實現機器智能。人工智能的長期目標是實現人類水平的人工智能,實現機器智能。當前,幾乎所有的科學與技術的分支都在共享著人工智能領域所提供的理論技術。以人工智能中的幾種應用融入軟件風險管理的評估、控制等實施步驟,可提高風險管理的效率。
2.1 基于專家系統領域
專家系統(Expert System)是顧名思義基于知識的系統,依靠人類專家的知識建立體系結構,存儲問題求解所需的知識,根據人工智能問題求解技術,模擬人類專家求解問題時的求解過程求解所涉及領域的各種問題,達到具有與專家同等解決問題能力的水平。在對風險識別階段,從項目的具體情況入手找出可能會存在的風險。一些軟件項目或是因為對自身的情況挖掘不足,停在理解,或是缺乏經驗過于樂觀,便為未預料到的情況埋下了隱患。若是以來自軟件工程領域的專家的知識背景參與到識別風險中,可為決策提供專業性建議。人工智能的專家系統將風險問題與多位專家專業性知識共同組成的知識庫中各個規則的條件進行匹配,并把被匹配規則的結論存放到綜合數據庫中,得到最終的分析結果。專家系統能夠將自身的推理過程為用戶解釋清楚,使用戶在詢問中理解自己的過程,會比多數軟件開放者獨自的思考結果更加可靠。
2.2 基于數據挖掘
數據挖掘(Data Mining)能從大量數據中通過算法搜索挖掘出隱藏于其中的深層次的、未知的、有潛在價值的信息知識。在風險識別以后需要進行分析何時何處風險會發生,會產生怎么樣的后果。風險分析常采用成本模型、判定分析、網絡分析等方法,數據挖掘可以為這些分析方法提供更多的數據方面的支持。雖然傳統統計分析技術基于完善的數學理論和高超的技巧,預測的準確度也可以達到人們的預期要求,但是對使用者也提出了與之難度相對應的高要求。數據挖掘是一次延伸擴展,在降低對使用者的門檻的同時,也通過數據評估后的相應的數據庫更簡單便捷得到相應的功能。步驟的簡便化換來的是使用者的低操作失誤率,這樣便提高風險分析的準確率。
2.3 基于語義Web
語義Web(Semantic Web)以讓Web上的信息能夠快速被機器所理解,從而實現Web信息的自動處理,以適應Web信息資源的快速增長,更好地為人類服務為目的。軟件工程中的開發者目前要解決的問題數量龐大,用戶對軟件的質量和開發周期的要求更加苛刻,軟件開發人員多數面臨開發期長、成本高、質量不達標的問題,這是一個領域共同的問題。軟件開發人員在通過網絡搜尋與軟件風險相關聯的事物時,牽扯了語義Web一方面的應用“互聯網信息發布與搜索”,通過對內容的標注與分析從而克服了關鍵詞查詢的歧義性,提高了查詢的精度。語義Web給人的是一個所有數據“無縫”式連接的網絡,一個滴水不漏的網絡。
2.4 基于機器人領域
機器人(Robot)是一種具備和生物相似的智能能力,具有高度靈活性的自動化機器。工業機器人按照人的規定的程序工作,自身不能對程序調整,軟件的批量生產的流水線一般由這種類型的機器人實施。在風險控制階段,一些可能會對人體造成未知傷害的操作可有初級和高級智能機器人(具有感覺,識別,推理和判斷能力,區別在于是否能根據外界環境,在一定范圍內自行修改程序)實施。項目的風險經常依賴于外部因素發生,需要跟蹤監控,定期對風險進行重新評估,這個步驟便可交給智能機器處理,節省工作人員的時間。
2.5 基于模式識別技術
模式識別(Pattern Recognition)是用數學、物理和技術的方法實現對模式的自動處理、描述、分類和解釋。通過遙感圖像識別軟件在實際運作時的異常表現點,為風險評估提供部分依據。指紋識別應用于開發人員的日常工作中,便于監督每位成員的操作,也有助于后期落實到具體人員的責任,督促每位參與者謹慎研究,減少人為造成風險。語音識別加快軟件開發過程中的信息處理,加快軟件開發進度。
3 結束語
在眾多項目實踐中獲得的風險管理經驗和教訓,軟件工程項目中的風險是客觀存在的,不可能完全避免的。人工智能的研究仍在不斷進行,一旦人工智能在軟件工程領域的應用得到飛躍性突破,軟件風險概率必然會有所下降,軟件工程項目的發展會更加順暢。
參考文獻:
[1]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].北京:機械工業出版社,2014(02):314-323.
[2]史忠植,王文杰.人工智能[M].北京:國防工業出版社,2007:18-23