se論文筆記:Ways of Applying Artificial Intelligence in Software Engineering

一、基本信息

標題:Ways of Applying Artificial Intelligence in Software Engineering
時間:2018
出版源: IEEE
論文領域:軟件工程,人工智能
引用格式:R. Feldt, F. G. de Oliveira Neto and R. Torkar, “Ways of Applying Artificial Intelligence in Software Engineering,” 2018 IEEE/ACM 6th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE), Gothenburg, 2018, pp. 35-41.
鏈接:https://ieeexplore.ieee.org/abstract/document/8452880

二、研究背景

人工智能快速發展,它提供的解決方案通常看起來與軟件組織和工程師所習慣的非常不同。這爲軟件組織帶來了一組新的、獨特的風險和機會,他們需要理解和分析這些風險,以選擇合適的策略。軟件工程師接近這些技術,並且很可能是在他們自己的問題、方法和工具上應用這些技術的早期採用者。
軟件工程的進步使得AI技術可以被打包並通過RESTful APIs作爲自動化雲解決方案輕鬆地重用,該解決方案可以在選擇和自動調整其中一項/多項技術之前使用多種技術。
所以作者提出分類

  • 早期工智能的使用分爲五大類:軟件工程方法、編程技術、目標機器的體系結構、應用領域和目標軟件的歷史
  • Davis等人提出了一種自適應分佈式實時嵌入式(DRE)系統的人工智能方法分類。分類法根據自適應DRE系統所需的五個屬性對AI方法進行分類:i)支持分佈式環境,ii)支持實時需求,iii)支持嵌入式環境,iv)可靠地處理新數據,v)在系統運行時將新數據合併到方法中。
  • Charte等人提出了另一個在SE中爲特定AI應用定製分類的例子。它們的分類爲自動編碼器(AE)提供了一個廣闊的視角,自動編碼器是人工神經網絡(ann),爲輸入數據生成編碼,並經過訓練,使其解碼儘可能接近輸入。

與現有的分類法,我們提出本文AI-SEAL(人工智能軟件工程應用水平),目標是更普遍的,並允許分類超越一個特定的主題,例如一個特定類型的軟件系統,例如,DRE系統,或一個特定類型的人工智能技術,例如,AEs。

我們的總體目標是支持公司和組織爲此類應用開發策略。
我們的重點是幫助組織更好地瞭解風險。

三、創新點

在SE的所有不同的知識領域(例如,需求和測試[43])提出了幾個分類,但是很少有系統地創建[44]。Usman等人對分類法在軟件工程中的使用進行了系統的映射,並提出了一種開發此類分類法[44]的方法,我們在定義AI-SEAL時使用了這種方法。

在規劃過程中,我們決定包含軟件工程中的所有知識領域(例如,測試,過程),而不是尋求如何應用AI的更基本的方面。

我們爲我們的分類提取了三個關鍵方面:應用點、自動化水平和AI技術。

選用實用程序演示是SE中最常用的驗證分類法的方法,它允許我們展示分類法[44]的分類範圍。

應用點 Point of Application (PA)

包括在(時間)和(位置)人工智能技術是應用(圖1)。有三個主要層次方面,前兩個相關部署的軟件系統(過程和產品),而第三個是代表運行時應用程序部署後的人工智能軟件系統。
在這裏插入圖片描述

  • 流程級別表明AI應用於軟件開發流程,並不一定會直接影響將要部署的源代碼。一個例子是測試分析,它可以用來優化測試,但它本身不會直接改變代碼
  • 產品級別表明AI直接影響源代碼。一個具體的例子是自動程序修復,它直接操作代碼來自動修復缺陷[35]。
  • 運行時級別表示在運行時期間影響已部署軟件系統的AI應用程序。典型的例子是自主和自適應軟件系統,其中一些人工智能技術正在學習和改變系統本身的反饋迴路[42]

跨PA:
自動駕駛,在人工智能開發部分代碼,然後編譯成二進制代碼進入最終產品的情況下,它將被分類到產品應用程序級別。然而,如果人工神經網絡使用來自執行軟件的運行時信息來動態更新自己,那麼它的PA分類將被設置爲AI的運行時應用。
作者觀點:運行時>產品>過程

AI類型 Type of AI (TAI)

因爲AI是什麼甚至還沒有達成共識,所以很難爲這方面提出一套特定且穩定的關卡。

作爲一個出發點,我們認爲Domingos[15]提出的“AI的五個部落”分類可能是有用的:

  • Symbolist, e.g., inverse deduction.逆演繹的學習算法
  • Connectionist, e.g., backpropagation.反向傳播神經網絡
  • Evolutionaries, e.g., genetic programming.遺傳算法
  • Bayesians, e.g., probabilistic inference. 貝葉斯概率推理
  • Analogizers, e.g., kernel machines. 核方法,支持向量機

自動化水平 Level of Automation (LA)

因此,自動化程度越高,自動化程度越高
人工智能技術在與應用它的元素(如產品、過程或運行時)相關的決策中發揮作用。我們認爲,風險越高。
在這裏插入圖片描述

在這裏插入圖片描述

四、實驗結果(評估)

#1論文 Automated prediction of defect severity based on codifying design knowledge using ontologies.

由Iliev等人撰寫的論文#1。[26]使用基於涉衆提供的設計信息的本體來自動預測缺陷的嚴重程度。AI會向利益相關者建議嚴重性級別,而利益相關者則可以接受或忽略這些建議。
PA: Process
LA:2
TAI: Analogizer

#6論文 Learning gestures for interacting with low-fidelity prototypes.

論文#6由de Souza Alcantara等人撰寫。[12]提出了一種方法,工具可以學習一組手勢,UI設計師可以使用這些手勢來爲多點觸控設備設計基於手勢的應用程序。

PA: Produce 開發應用程序中包含的工具的最終手勢識別輸出
LA:4
TAI: Symbolist 因爲它分析了特定手勢的不同步驟之間的關係和原因,這些步驟是基於一組原語推斷出來的。

#15 論文 High assurance human-centric decision systems.

由Heitmeyer et al.[25]撰寫的第15篇論文的標題爲“以人爲中心的高保證決策系統”,並提出了一種方法,其中人工智能技術被用來檢測和幫助決策系統的操作員,考慮到決策系統中任務的複雜性,這些操作員開始感到超負荷。

PA: Produce 應用程序處於產品級別,因爲重載模型在運行時不會更新,儘管作者計劃在未來的工作中解決這個問題。
LA:7
TAI: Analogizers 根據操作員過去與系統的互動來預測人類超載。

#31 論文 A selflearning approach for validation of communication in embedded systems.

由Langer和Oswald[32]撰寫的第31篇論文的題目是“在嵌入式系統中驗證通信的自我學習方法”。作者使用神經網絡(Connectionist)來學習在分佈式嵌入式系統中哪些通信跟蹤是有效的。該方法用於自動化集成測試,

PA: process
LA:7
TAI: Connectionist 神經網絡

五、結論與思考

作者結論

在本文中,我們提出AI- seal分類,以幫助研究人員和從業者對軟件工程中的不同AI應用進行分類。分類法允許其用戶分類,有三個方面的應用程序(過程,產品和運行時),人工智能技術的類型(,起初,在提出的五個部落多[15])和自動化水平的應用技術(靈感來自Sheridan-Verplanck s 10水平的自動化[41])。
AI- seal除了幫助用戶瞭解SE中的AI應用領域之外,還爲軟件工程師考慮應用AI的風險提供了一個基礎。例如,這一優勢允許從業者在流程和產品中引入人工智能技術時進行權衡。

在這裏插入圖片描述

此外,分類法不受特定領域應用程序的限制,因此涵蓋了軟件工程的所有知識領域。我們通過對過去RAISE研討會中的15篇論文進行分類來演示分類法的使用。大多數論文關注於在開發過程中支持涉衆,但沒有直接影響源代碼或系統的運行時行爲。
人工智能方法的使用也參差不齊;特別是缺乏貝葉斯定理和令人驚訝的神經網絡。我們的實用程序演示的主要限制之一是論文的有限樣本(包括大小和地點)。
當然,爲了更好地理解AI-SEAL的效率,我們需要在更好的論文樣本上使用它,這是目前正在進行的工作。未來的工作還包括研究工具對分類的支持,以及爲風險分析提供更詳細和明確的支持。

總結

這是一篇涉及軟件工程和人工智能的論文,主要工作是劃分在軟件工程使用不同的人工智能技術將帶來哪些風險,作者從應用點、AI類型、風險等級劃分。本文並未涉及具體細化AI的分類問題,比較當今何爲人工智能作者認爲還沒明確確定。也未涉及相關AI領域算法。作爲一篇軟件工程領域論文讀讀即可。

思考

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章