• <table id="zigek"></table>
  • <acronym id="zigek"></acronym>
    <big id="zigek"></big>
    <tr id="zigek"><s id="zigek"></s></tr>

    學術堂首頁 | 文獻求助論文范文 | 論文題目 | 參考文獻 | 開題報告 | 論文格式 | 摘要提綱 | 論文致謝 | 論文查重 | 論文答辯 | 論文發表 | 期刊雜志 | 論文寫作 | 論文PPT
    學術堂專業論文學習平臺您當前的位置:學術堂 > 計算機論文 > 軟件工程論文

    軟件工程師利用好VR技術的愿景

    時間:2018-11-26 來源:微型電腦應用 作者:閔亮 本文字數:6791字

      摘    要: 軟件工程師們都得用鍵盤和鼠標源與代碼進行互動, 而且一般都是在2D平面顯示器上進行軟件瀏覽。這種互動范式, 并未很好地利用自然人類諸多的動作和洞察力的啟示。虛擬現實 (VR) 可以更充分地利用這些啟示, 使新的創意成為可能, 并能提高生產率, 降低學習曲線和增加用戶的滿意度。描述了VR所提供的啟示;展示了VR的益處, 以及用于現場編碼和代碼審核的軟件工程中的原型, 而且討論了未來的工作, 開放性問題以及VR的挑戰等等。

      關鍵詞: 虛擬現實; 軟件工程; 啟示; 應用; 挑戰;

    軟件工程師利用好VR技術的愿景

      Abstract: Software engineers have to use the keyboard and mouse to interact with source code, and generally browse software in a 2 Dflat displayer.This interactive paradigm does not make a good use of many inspiration from the natural human being actions and insights.Virtual reality (VR) can use those inspiration more adequately, make new creative opportunity possible, improve the productivity potentially, and reduce the learning curve and increase user's satisfaction.In this paper, we describe the inspiration provided by the VR, show the benefits of VR and prototype used in the field of compile and code review of software engineering;and discuss the future work, open issues and VR challenges, and so on.

      Keyword: Virtual reality; Software engineering; Inspiration; Applications; Challenge;

      0、 引言

      過去數十年中, 盡管在軟件開發的心理學、神經系統科學以及社會學方面, 編程環境取得了不少進展, 但始終未能解決程序員的問題。在代碼中導航的時候, 開發者們仍然會有迷失方向的體會[1], 而且開發者在理解代碼的時候仍然會出現問題[2]。這些基本問題也阻礙了其他比較重要的軟件工程活動。舉個例子, 在代碼審查時, 因為審查時沒有足夠的能力去導航并理解代碼, 開發者大多會匯總問題上報, 比如違反約定等, 而不是去討論設計缺陷或者瑕疵。

      對于開發者所體驗的幾個問題之下所隱藏的認知問題, 研究員們進行了探究.其中一個問題就是空間記憶—這是一種海馬旁回中的記憶系統, 能支持保留空間認知的能力。有些人觀察到, 在其所依賴的線索-諸如滾動條以及文檔標簽[3], 被當作其導航的一個結果而被擾亂, 開發者會遺失相關代碼的軌跡。通常所參與的人本能的空間記憶處理工作失敗, 會導致類似的方向迷失。

      啟示是促使本能認知機制改變的設施。研究者們曾經試圖采納人類的關注、認知和記憶才能來改進界面。例如, 一次學習減少了網絡書簽的存儲和檢索時間, 也通過定位在一個3D空間的各種堆積的頁面的屏幕截圖, 來減少檢索失敗次數[4]。

      類似的是, 研究者們曾經為編程環境中的空間記憶融入了啟示。編碼畫布將代碼文件定位在一個較大的可滾動、可縮放的平面上, 在這里能夠保存較穩定的代碼空間位置。代碼氣泡允許一個開發者在一個可無限滾動的屏幕上定位相關的代碼片段, 這也改善了片段的導航及內涵。

      空間記憶就是這么一種促使編程環境進行改善的啟示, 其它有很多的啟示都可以被改變。虛擬現實 (VR) 比現有的開發者環境能更充分地利用這些啟示, 來使新創意機會成為可能, 并且潛在地提高生產率, 降低學習曲線并增加用戶滿意度。

      本文描述了虛擬現實如何在空間認知、操作和運動以及編程環境中尚未得以充分利用的反饋中, 提供啟示。而后我們描述了我們所造出來的兩種虛擬現實系統的原型, 以及虛擬現實如何能應用于軟件工程中。最后, 我們對未來的工作、開放性的問題研究、以及在軟件工程中用現有技術使用VR的挑戰, 提供了一些簡要的討論。

      1、 虛擬現實中的啟示

      虛擬現實在空間認知、操控及運動還有反饋中提供啟示。

      1) 空間認知:空間記憶是靠位置細胞、專門的神經元來支撐的—像人一樣, 通過對一個物理空間以及環境中其他的上下文線索的導航, 進行開火。頭盔式虛擬現實顯示器允許用戶通過移動身體或者扭動脖子來更新視野, 在此過程中向位置細胞開火。此外, 這些顯示器對每個眼睛都經行了輕度的不同形象的渲染 (立體渲染) , 它能夠使人的眼睛更容易去感知顯示器上的形象縱深。這些顯示器能夠創造出一種存在感, 或者“它在那里”的感覺。我們期望用戶的空間記憶能夠比平面顯示更多地參與到虛擬現實中, 特別是在觀看可視化3D的時候。

      虛擬現實能夠直接模擬由物理導航所提供的啟示。基于記錄在大腦皮層表面的腦皮層電圖學 (eCoG) , 位置細胞能被觀察到, 在一個虛擬鎮子中導航并且隨后他們再次回憶穿過鎮子的路徑時, 在同一序列中像人一樣開火。

      2) 操控及運動:由一個物理對象的操控所產生的啟示, 能夠導致知覺和記憶力的改善。例如, 由一本書翻頁產生的啟示, 在面對電腦顯示器閱讀相同的文本段落時, 會導致理解和回憶的增加。此外, 對無意瀏覽以及重新定位資料的能力也有所提高。通過諸如步行這樣的努力, 一個物理空間中的運動會有重要的認知因果關系。其他的啟示能由運動加以輔助。例如, 通過空間中的自行移動可以加強感知深度。

      研究者們曾經對將現有的編程環境與自然交互集成起來進行過探究。通過輸入設備—如跳躍運動—是有可能跟虛擬目標進行物理互動的。物理運動在虛擬空間中也是可行的。身體護具允許在一個虛擬空間中的自由運動, 諸如步行、跑步、跳躍以及屈膝蹲伏。

      3) 反饋:當評估系統的狀態比較困難時, Norman所描述的灣區估值就出現了。虛擬現實會允許軟件工程師呆在一個環境中-這個環境通過剔除在程序員行動及看見其行動結果之間的時延, 來試圖清除這一灣區。這種快速反饋之前已經在二維的顯示中實施過, 但虛擬現實將這一能力擴展到了三維的顯示環境中。

      2、 應用

      我們為現場編碼以及代碼審查建立起了虛擬現實原型-它們具體地顯示出了使用虛擬現實的啟示的益處。我們證明了這一節中所述的益處, 同樣也能擴展到其他軟件工程活動之中。

      所有的系統都采用了頭盔式的顯示裝置 (Oculus RiftDevelopment Kit 2) 以及一個用于姿態認知的跳躍運動控制器[5]。

      2.1、 現場編碼

      RiftSketch是一種為虛擬現實所建立起來的現場編碼環境, 它能允許用戶用Three.js library函數庫來描述一個3D場景[6]。

      RiftSketch給了用戶一個簡單的文本編輯器 (參見圖2) , 在另外的一個虛擬現實世界中, 漂浮在他們眼前。當用戶鍵入編碼到編輯器中, 環繞在他們周圍的世界會立即更新, 顯示出由其代碼所標明的3D場景。RiftSketch也能令用戶通過每一幀中執行過的回調函數來模擬其場景。用戶能夠在這一代碼環路塊中操控3D場景的狀態, 以便在其場景中為對象增加行為動作。這種模擬通過一種方式, 令用戶得以真實地感覺如同在場景中, 而不是通過一個2D屏幕截圖所捕獲的場景。

      為了有助于鍵盤的互動, 我們允許通過使用固定在虛擬眼鏡上的一個網絡相機以及系統中所反映出來的對象, 使現實部分得以發光, 如圖1所示。

      圖1 RiftSketch屏幕截圖
    圖1 RiftSketch屏幕截圖

      那棵樹是用戶已經鍵入到漂浮的編輯器中的遞歸算法所生成的。飛翔的虛擬小鳥代表著從Twitter的應用程序接口拖拽過來的twitter信息, 它們也是由客戶所鍵入的代碼所生成的

      1) 反饋:RiftSketch在所寫代碼及其在虛擬環境中的效果之間, 提供了一個緊密的反饋回路, 使得用各種解決方案、算法以及計算的實驗得以快速進行。RiftSketch也是一種頗有前景的學習工具, 因為用戶可以立即看到其編程錯誤, 并無需一個中間的編譯步驟就可自行修改-而這一編譯步驟可能看上去像是另一種阻礙。當代碼描述了一個VR場景時, 這些益處在RiftSketch中都特別明顯。因作者之前已經有過體驗, 看著完全虛擬的世界在自己輸入編碼時在周圍變化, 真的是一種絕對強有力的迷人體驗。

      2) 手勢操控代碼:另外, RiftSketch為用戶提供了快捷方式以及輸入方法, 在其寫代碼時迅速編輯代碼中的數字。鍵盤快捷方式允許用戶以01, 10或者100的因子來增減代碼中的數字。集成了跳躍運動控制器, 能夠為用戶提供一種能力, 通過采用上下的手部動作來操控數字。這使得用戶能持續用自己的手來修正一個數字, 并且立即看到它是如何影響到場景的, 使得它比一次鍵入一個數字的手動方式能更快地進行反饋。

      3) 用法舉例:考慮到如下的情景:空間任務A剛剛對彗星表面進行了探測。10年的飛行之后, 探測器盡管落地不易, 還是降落在了一處不能接收太陽光的位置上。自動遙感探測程序是不能找到一條可行的飛行路徑的。作為一個程序員, 您被賦予了任務來升級著陸器的軟件, 來將其自身定位在一個堅實的地表上, 而在其電池耗盡以及探測器偏離彗星表面之前, 你還剩下24小時。還好有伴隨衛星搜集到了著陸點周圍的表面詳細信息, 還有遙感探測數據, 準確地顯示出著陸器將被怎樣定位以及定位在哪里。

      您用數據更新了模擬程序, 并且用RiftSketch來調查這一情況。在評估的著陸器的選項后, 您重復了可能的解決方案, 首先用手勢來操控一個可能的路徑以及推力設置, 并且用鍵盤來定義代碼。隨著每一個解決方案, 你都在RiftSketch中觀察著陸器的動作。你繞著著陸器走, 來檢查每一次機動演習后它的位置, 并進一步確認其降落足是緊緊建立在風化層上的, 并且縮小比例, 從軌道角度來核實其新的位置能否在這個一側高凸的彗星上, 對軌道飛行器維持一個視野。

      最后, 在RiftSketch進行數十遍的模擬后, 您將程序上報審核。

      2.2、 代碼審核

      IMMERSION展現出了如同代碼片段類似于代碼氣泡的方法, 并且, 像BumpTop一樣堆積在地板上, 顯示出片段的群體來。這些堆積能夠擴展成為一個更具細節的環形來回顧以及做細節的可視化處理[7]。

      1) 空間推理:審查者開始是在屏幕中央來觀看激活的片段的 (參見圖3) , 而其他有關的片段都成堆地分布在地板上。審查者采用空間辨識, 通過堆積有多遠以及堆積的尺寸等, 來判斷堆積物的相關性。審查者能夠掃描堆積物的標簽, 以及每一處堆積中的片段數量, 來快速辨別每一處堆積是否是真正相關的。

      IMMERSION根據系統的包裝以及顏色代碼, 將地板分區—分區是用來顯示有多少包裝在審查的時候已經被代碼改過了。在包裝中穿梭時, 我們期望審查者因空間推理的更多使用而能擁有更好的構思模型, 而后能理在審查過程中更好地理解代碼。類似的情況是, 我們期望空間推理的增加, 能使審查者在審查之后, 更容易地調出審查細節來。這會使審查者將來在審查同等的編碼庫的時候, 能提供更多有用的反饋。

      2) 手勢交互:審查者可以做一個抓取動作來選擇一個堆積包, 而后可以將手上拉, 把堆積變幻成一個環形片段, 來進行更詳細的檢查。審查者如今可以讀取環形中最為重要的片段, 而且可以水平抹動指尖來讓環形旋轉, 讀取更多其他片段。審查者可以將最為重要的頭尾部的環形片段提出來放在屏幕中央, 使之成為激活的片段。如果審查者希望回到之前的方式, 他們可以像清理桌面一樣動動手就完成了。

      開始我們注重的, 是可以通過鍵盤輸入, 來增加對探索—評論的支持, 但我們發現了另外的方式來標志并用旗子標示代碼。

      3) 用法舉例:考慮之前的彗星情景, 程序員為著陸器執行了已重新定位的飛行路徑。

      某個審查者帶上虛擬現實眼鏡并且進入IMMERSION, 確保這一解決方法能夠有效運行。它注意到一個邊界案例, 它可能會引發一次碰撞, 并建議輕輕地將軌道伴隨衛星碰向探測器中, 來避免更大的沖撞。原來的程序員在RIFTSKETCH中執行了此建議, 確保這一刺激動作生效, 并在向審查者遞交修正結果時慶祝一番。然而審查者發現一部分的代碼在IMMERSION中點亮了。當她走向這一部分時, 她發現這是碰撞檢測部分對系統發出的警告-系統是不允許這一代嗎在模擬器之外執行的。她意識到, 通過在撞擊摧毀系統之前關閉引擎, 她可以允許這一代碼的執行。他們上傳代碼并且著陸器按照期望的那樣自行重新定位, 如圖2所示。

      圖2 IMMERSION的屏幕截圖
    圖2 IMMERSION的屏幕截圖

      審查者在審核代碼, 來重新定位著陸器在彗星的降落位置。審查者看到激活的方法, 以及地板上成堆的相關片段, 并且已經將一堆片段擴展成為左側的片段環形, 來讀取這些片段的細節。在上左側, 顯示了一個彗星模型以及著陸器所期望的飛行路徑。審查者能在地板上的代碼包之間逡巡, 這些個代碼包根據此次審查所修改的數量, 都標注顏色代碼。GitHub的細節在上右方有顯示。

      3、 討論

      3.1、 模擬

      虛擬現實 (VR) 為軟件工程師打開了一扇門, 可以創造出提升效率并使之前不可能體驗成為可能的各種系統。現有的應用, 包括美國航空航天局NASA-他們正在用VR控制一個機械臂, 結果是效率的顯著。教育體驗項目Titans of Space[8]允許學生們用一種方式體驗我們的太陽系, 這種方式使他們感覺到自己真正就挨在太陽身邊。

      未來的研究, 需要在如何為創造這些VR系統的軟件工程師們, 創造出更多的工具來上進行。有什么問題是VR軟件工程師們需要面對, 可缺乏工具加以解決的?

      3.2、 遠程協作

      多個分布在世界各地的程序員, 能夠在一個VR現場變成空間中加入彼此, 來解決如何從引發案例中解決彗星著陸問題。他們應該能提供額外的洞見, 并且能更快地找到解決辦法。

      而后另外會有一組程序員, 在一個VR程序審查環境中加入彼此, 他們能夠看到每個人在系統中他們自己那部分里, 對那些堆積的信息所做的注釋的基礎上, 都在思考什么。

      3.3、 開放性問題

      (對虛擬現實的) 投入程度。拓展現實的裝置, 如谷歌眼鏡, 其目標是幫助用戶在實體物理世界中, 通過增加信息覆蓋來完成任務。拓展現實類產品在尋求在物理現實世界中幫助用戶, 而與此同時虛擬現實則謀求對物理現實世界的完全提單。是將用戶沉浸在一個完全虛擬環境中有用呢, 還是強化其物理現實世界更有用?

      輸入形式。游戲機臺控制器對于導航以及有限動作支持都能運轉良好, 但在鍵盤的文本輸入上沒法相提并論。但是, 這些個設備都要求用戶同時在物理現實和虛擬世界中進行交互。手勢識別用物理現實世界來取消交互作用, 但會導致身體勞損。聲音識別能夠減少這種勞損但可能在互相分享的工作空間中引來尷尬。什么才是用戶向虛擬現實VR系統提供輸入的最好方式?這是值得我們深思研究的問題。

      3.4、 挑戰

      1) 從物理現實中脫離:戴上VR耳機意味著與物理現實世界的其余部分隔離, 包括協作者。同伴們可能缺乏機會提問, 并且現實的交流被抑制了。此外, VR耳機佩戴者們可能在處于VR環境中時, 與物理現實世界的交流出現問題。耳機上固定的網絡攝像頭, 可以與物理現實世界保持一些互動, 但是視野卻受到了限制, 如圖3所示。

      圖3 附在虛擬眼鏡RIFT上帶網絡攝像頭的Leap Motion控制器 (左下左) , 虛擬現實VR中的鍵盤 (左下右) 、索尼PS4虛擬現實耳機 (右上) [9]
    圖3 附在虛擬眼鏡RIFT上帶網絡攝像頭的Leap Motion控制器 (左下左) , 虛擬現實VR中的鍵盤 (左下右) 、索尼PS4虛擬現實耳機 (右上) [9]

      2) 3D映射:有些問題沒有內在的3D表述, 這種表述使VR的顯示成為一種挑戰。如同在IMMERSION所見, 2D代碼能在虛擬現實VR中顯示出來, 可代碼本身并沒有第三個維度, 因而丟失了3D的表達性。這或應成為有些人所建議的, 能很好地適合于3D隱喻編程的一個區域。

      3) 技術限制:Oculus Rift Development Kit 2的1080p的分辨率, 使文本閱讀的通過率還算良好, 但它需要為多時段會議進行提升。每個用戶也都需要略有不同的配置, 這些個配置可以要求適度的建立時間。

      4、 總結

      二維的開發環境仍然沒法充分利用好這些啟示, 諸如空間識別、操控以及反饋等等。本文描述了一種愿景, 即軟件工程師如何能通過使用新類型的工具而利用好VR—這些個工具能夠很好地利用這些啟示。

      描述了現場編碼以及代碼審查都是如何從VR工具中受益的, 但可以預想到其他的軟件工程活動也可以一樣從VR中受益。

      參考文獻:

      [1]A Z Henley, S D Fleming.The patchworks code editor:toward faster navigation with less code arranging and fewer navigation mistakes[C]∥Acm Conference on Human Factors in Computing Systems, 2014.New York:ACM, 2014:2511.
      [2]AFC Machinery.ACM transactions on software engineering and methodology[C]∥Association for Computing Machinery, 2014.New York:CiNii, 2014:540.
      [3]劉華星, 楊庚.HTML5---下一代Web開發標準研究[J].計算機技術與發展, 2011, 21 (8) :51-54.
      [4]A Bacchelli, C Bird.Expectations, outcomes, and challenges of modern code review[C]∥International Conference on Software Engineering, 2013.New York:IEEE Computer Society, 2013:712.
      [5]Meta.Grfx.Oculus rift development kit 2[EB/OL]. (14-10-15) [16-07-10].http://www.cnblogs.com/Baesky/p/oculus_first_use.html.
      [6]Yuri.Programming code, under the VR AltspaceVRdevelopers launched RiftSketch editor[EB/OL]. (16-02-13) , [16-07-09].http://36kr.com/p/5043248.html.
      [7]immersion.Touch Technology-made for the digitalworld[EB/OL]. (16-03-28) , [16-07-10].http://www.immersion.com.
      [8]D Delimarschi, G Swartzendruber, H Kagdi.Enabling integrated development environments with natural user interface interactions[J].2014 (287) :126.
      [9]Wanlan.Programming code, under the VRAltspaceVR developers launched RiftSketch editor[EB/OL]. (15-04-08) , [16-07-09].http://news.mydrivers.com/1/409/409192.htm.

      論文來源參考:閔亮.軟件工程中虛擬現實的啟示應用及挑戰[J].微型電腦應用,2018(11):124-127.
      相近分類:
      • 成都網絡警察報警平臺
      • 公共信息安全網絡監察
      • 經營性網站備案信息
      • 不良信息舉報中心
      • 中國文明網傳播文明
      • 學術堂_誠信網站
      159彩票{{转码主词}官网{{转码主词}网址