Virtual Reality in Software Engineering: Affordances, Applications, and Challenges
Автор: Света М. • Апрель 17, 2023 • Статья • 4,782 Слов (20 Страниц) • 172 Просмотры
Фамилия, имя, № группы
Мельникова Светлана, группа Z8432K
Название статьи на английском языке
Virtual Reality in Software Engineering: Affordances, Applications, and Challenges
Ссылка на статью https://www.researchgate.net/publication/307748821_Virtual_Reality_in_Software_Engineering_Affordances_Applications_and_Challenges
Abstract—Software engineers primarily interact with source code using a keyboard and mouse, and typically view soft ware on a small number of 2D monitors. This interaction paradigm does not take advantage of many affordances of natural human movement and perception. Virtual reality (VR) can use these affordances more fully than existing developer environments to enable new creative opportunities and potentially result in higher productivity, lower learning curves, and increased user satisfaction. This paper describes the affordances offered by VR; demonstrates the benefits of VR and software engineering in prototypes for live coding and code review; and discusses future work, open questions, and the challenges of VR. I. INTRODUCTION Programming environments from the previous decades still do not address programmer issues despite advances in psychology, neuroscience, and social aspects of software development. As a result, problems still persist. Developers still experience disorientation when navigating code [9]. Developers still experience problems comprehending code [13]. These basic issues also impede other important software engineering activities. For example, in code review, due to insufficient ability to navigate and understand the code under review, developers mostly report issues, such as convention violations, instead of discussing design flaws or defects [2]. Researchers have explored the cognitive issues underlying several problems developers experience [17]. One such issue is spatial memory, a memory system in the parahippocampus that supports the ability to retain spatial awareness. Ko et al. [11]observed that developers lost track of relevant code when the cues they relied on, such as position of scroll bars and document tabs, were disrupted as a result of their navigation. Similar disorientation often results from failures to engage a human’s innate processing of spatial memory. Affordances are devices that leverage innate cognitive mechanisms. Researchers have attempted to improve interfaces that incorporate the human capacity for attention, cognition, and memory. For example, one study reduced storage and retrieval time of web bookmarks as well as reduced retrieval failures by positioning screenshots of the pages on various piles in a3D space [18]. Similarly, researchers have incorporated affordances for spatial memory in programming environments. Code Canvas [6] positions code files on a large scrollable, zoomable plane which preserves stable spatial positions of code. Code Bubbles [3] allows a developer to quickly position related fragments of code on an infinitely scrollable screen, which improves navigation and comprehension of fragments. Spatial memory is just one such affordance leveraged to improve programming environments, many other affordances could be similarily leveraged. Virtual reality (VR) can use these affordances more fully than existing developer environments to enable new creative opportunities and potentially result in higher productivity, lower learning curves, and in-creased user satisfaction. This paper describes how VR provides affordances in spatial cognition; manipulation and motion; and feedback that are not yet fully utilized in programming environments. We then describe two VR systems we have prototyped and how VR can be applied to software engineering. Finally, we provide a brief discussion of future work, open research questions, and challenges of using VR in software engineering with existing technologies. II. AFFORDANCES IN VIRTUAL REALITY VR provides affordances in spatial cognition; manipulation and motion; and feedback. 1) Spatial Cognition: Spatial memory is supported by place cells, specialized neurons that fire as a person navigates through a physical space and other contextual cues in the environment. Head-mounted VR displays allow the user to update their view by moving their body or rotating their neck, firing place cells in the process. Additionally, these displays render a slightly different image for each eye (stereoscopic rendering) which enables the human eye to more easily sense depth of images on the display. These displays can create a sense of presence, or ‘being there’ [20]. We expect users’ spatial memory to be more engaged in VR than for 2Ddisplays, especially when viewing 3D visualizations. VR can directly mimic the affordances offered by physical navigation. Based on electrocorticography (eCoG) recordings on the surface of the brain, place cells could be observed firing in the same sequence as a person navigated a virtual town and again when they later recalled the paths through the town [7]. 2) Manipulation and Motion: The affordances provided by manipulation of a physical object can result in improved perception and retention. For example, the affordances offered by turning pages of a book result in increased comprehension and recall as when compared to reading the same text on computer displays [15]. Additionally, the ability to serendipitously browse and relocate material is improved. Motion in a physical space, through exertions such as walking, have important cognitive consequences [16]. Other affordances can be aided by motion. For example, perception of depth is enhanced by self-actuated movement in a space [8]. Researchers have explored integrating natural interactions with existing programming environments [5]. Through input devices such as the Leap Motion, it is possible to physically interact with virtual objects. Physical movement is also possible in virtual spaces. Body harnesses allow free movement in a virtual space such as walking, running, jumping and crouching. 3) Feedback: The Gulf of Evaluation, as described by Norman, arises when there is difficulty assessing the state of the system [14]. VR allows software engineers to be in environments that attempt to eliminate this gulf by eliminating the delay between programmer action and seeing the result of their action. Such fast feedback has previously been implemented in two-dimensional displays [4] but VR extends this ability to three-dimensional displays. III. APPLICATIONS We have built VR prototypes for live coding and code review which concretely demonstrate the benefits of using the affordances of VR. We argue that the benefits described in this section can also be extended to other software engineering activities. Both of these systems use a head-mounted display (Oculus Rift - Development Kit 2) and a Leap Motion Controller for gesture recognition. A. Live Coding RIFTSKETCH is a live coding environment built for VR which allows users to describe a 3D scene using the Three.js library. RIFTSKETCH presents a user with a simple text editor (see Figure 2) floating in front of them in an otherwise empty VR world. As the user types code into the editor, the world around them updates instantly to display the 3D scene dictated by their code. RIFTSKETCH also allows the user to animate their scene via a callback function which is executed on every frame. The user can manipulate the state of the 3D scene in this looped block of code in order to add behaviour to the objects in their scene. This animation makes the user truly feel inside the scene in a way not captured by a 2D screenshot. To assist in interaction with the keyboard, we allow reality to shine through by using a web camera mounted on the Rift and project that image in the system (See Figure I). 1) Feedback: RI FTSKETCH provides a tight feedback loop between code written and its effect in a virtual environment, enabling quick experiments with various solutions, algorithms and calculations. RIFTSKETCH is also very promising as a learning tool since users can see their mistakes immediately and correct themselves without an intermediate compile step that might otherwise act as a hindrance. These benefits are especially evident in RIFTSKETCH when the code describes a VR scene. As the authors have previously experienced, watching the entire virtual world change around you as you type can be an extremely powerful and engaging experience. 2) Hand Manipulation of Code: Furthermore, RIFTSKETCH provides the user with shortcuts and input methods to quickly edit numbers in the code that they write. Keyboard shortcuts allow the user to increment or decrement numbers in the code by factors of 0.1, 10 or 100. Integration with the Leap Motion Controller provides users with the ability to manipulate numbers using an up and down hand motion. This allows users to continuously modify a number using their hand and instantly see how this affects the scene, enabling faster feedback than manually typing one number at a time. 3) Usage Example: Consider the following scenario: A space mission has just landed a probe on the surface of a comet. After 10 years in flight, the probe lands against all odds but in a position that is unable to receive sunlight. Automated telemetry programs cannot find a feasible flight path. As a programmer, you are tasked with updating the lander’s software to reposition itself safely on solid ground and you have 24 hours before its batteries die and the probe deflects off the comet surface. Thankfully the companion orbiter has gathered detailed information about the surface around the landing site and telemetry data shows exactly where and how the lander is positioned. You update your simulation with the data and step into RIFTSKETCH to survey the situation. After assessing the lander’s options, you iterate on possible solutions, first by using hand gestures to manipulate a possible path and scale thrust settings, and then the keyboard to refine the code. With each solution, you observe the lander’s behavior inside RIFTSKETCH. You walk around the lander to inspect its position after each maneuver, leaning in to ensure that its feet are planted firmly in the regolith, and zooming out to an orbital view to verify that its new position maintains a line-of-sight to the orbiter on this lob-sided comet. Finally, after having run the simulation dozens of times in RIFTSKETCH, you pass the software on to review. B. Code Review IMMERSION represents methods as code fragments similarly to Code Bubbles [3] and displays groups of fragments as piles on the floor like BumpTop [1]. Piles can be expanded into a more detailed ring for an overview and detail visualization [19]. 1) Spatial Reasoning: The reviewer initially sees the active fragment in the center of the screen (see Figure 3) with other relevant fragments distributed around the floor in piles. Reviewers use spatial cognition to judge the relevance of piles by how far away the pile is as well as the size of the pile. The reviewer is able to scan the labels of the piles and number of fragments in each pile to quickly verify if each pile is indeed relevant. IMMERSION divides the floor into sections based on pack-ages of the system and color codes the sections to indicate how much that package has been modified by the code under review. By walking between packages, we expect reviewers to have better mental models due to the increased usage of spatial reasoning and thus understand the code better during the review. Similarly, we expect the increased spatial reasoning to enable reviewers to more easily recall review details after the review. This would allow reviewers to provide more useful feedback in future reviews of the same code base. 2) Gesture Interaction: Reviewers can make a grabbing motion to select a pile and then can pull their hand up to transform the pile into a ring of fragments for more detailed inspection. The reviewer is now able to read the foremost fragment in the circle and can make horizontal finger swipes to rotate the circle and read other fragments. The reviewer can pinch the foremost ring fragment on the top and bottom and move it to the middle of the screen to become the active fragment. If the reviewer wants to return to the previous method, they can move their hand as if clearing off a desk. We have initially focused on supporting exploration—comments can be added via keyboard input, but we are investigating alternative ways to mark and flag code. 3) Usage Example: Consider the previous comet scenario where a programmer has implemented a repositioning flight path for the lander. A reviewer puts on a Rift and enters IMMERSI ON to ensure this solution will actually work. She notes an edge case which might cause a collision and suggests gently crashing the companion orbiter into the probe to avoid a larger collision. The original programmer implements the suggestion in RIFTSKETCH, ensures the simulation works and celebrates before submitting the correction to the reviewer. However, there viewer sees a section of code light up in IMMERSION. As she walks over to the section she sees that it is the collision detection section warning that the system will not allow this code to execute outside of the simulator. She realizes she can allow the execution by shutting off the engine just before impact to override the system. They upload the code and the lander repositions itself as expected. IV. DISCUSSION A. Simulation VR has opened the door for software engineers to create systems that increase efficiency and enable previously impossible experiences. Existing applications include NASA who is using VR to control a robotic arm resulting in higher efficiency .Educational experience Titans of Space allows students to experience our solar system in a way that makes them feel like they are truly right next to the sun. Future research is needed on how to create tools for the software engineers creating these VR systems. What problems do VR software engineers face that have no tool support? B. Remote Collaboration Multiple programmers located around the world could join each other in a VR live coding space to figure out how to land the comet from the motivating example. They would be able to provide extra insight and could arrive at the solution faster. A different set of programmers could then join each other in a VR code review environment. They are able to see what each person is thinking based on their annotations of the piles of information in their section of the system. C. Open Questions Degrees of Immersion. Augmented reality devices such as Google Glass, aim to help the user complete tasks in the physical world by adding information overlays. Augmented reality seeks to help the user in the physical world while virtual reality seeks to completely replace physical reality. Is it more useful to immerse the user in a completely virtual environment, or to enhance their physical world? Input Forms. Gaming console controllers work well for navigation and limited action support but are surpassed by keyboards at text entry. However, such devices require users to interact with both the physical and virtual worlds at the same time. Gesture recognition removes interaction with the physical world but can cause physical strain. Voice recognition could reduce strain but may feel awkward in a shared workspace. What is the best way for the user to provide input to a VR system? D. Challenges 1) Separation from the Physical: Putting on a VR headset means blocking out the rest of the physical world, including coworkers. Peers may lack the opportunity to ask questions and physical communication is stifled. Additionally, the VR headset wearer may have trouble interacting with the physical world while in VR. A webcam mounted to the headset enables some interaction with the physical world, as seen in Figure I, but has a limited field of view. 2) 3D Mapping: Some problems don’t have an inherent3D representation which makes display in VR a challenge. As seen in IMMERSION, 2D code can be displayed in VR but the code itself does not have a third dimension and thus loses the expressiveness of 3D. This could be an area well suited to 3Dmetaphorical programming as suggested by Ko et al. [10]. 3) Technology Limitations: The 1080p resolution of the Oculus Rift Development Kit 2 allows for passable text reading, but needs improvement for multi-hour sessions. Each user also needs slightly different configuration which requires time to set up properly. V. CONCLUSIONS Two-dimensional development environments have not been able to take full advantage of affordances such as spatial cognition, manipulation, and feedback. This paper describes a vision of how software engineering can use VR for new kinds of tools that can take advantage of these affordances. We described how both live coding and code review could benefit from VR tools but we envision many other software engineering activities can benefit from VR as well. | Аннотация — программисты в основном взаимодействуют с исходным кодом с помощью клавиатуры и мыши и обычно просматривают программное обеспечение на небольшом количестве 2D-мониторов. Эта парадигма взаимодействия не использует многих возможностей естественного человеческого движения и восприятия. Виртуальная реальность (VR) может использовать эти возможности более полно, чем существующие среды разработчиков, чтобы обеспечить новые творческие возможности и потенциально привести к повышению производительности, снижению кривых обучения и повышению удовлетворенности пользователей. Эта статья описывает возможности, предлагаемые VR; демонстрирует преимущества VR и разработки программного обеспечения в прототипах для живого кодирования и анализа кода; а также обсуждает будущую работу, открытые вопросы и проблемы VR. I.Введение Программная среда предыдущих десятилетий до сих пор не решает проблем программистов, несмотря на достижения в области психологии, неврологии и социальных аспектов разработки программного обеспечения. В результате, проблемы все еще сохраняются. Разработчики все еще испытывают дезориентацию при навигации по коду. Разработчики все еще испытывают проблемы с пониманием кода. Эти основные проблемы также препятствуют другим важным направлениям деятельности по разработке программного обеспечения. Например, при просмотре кода, из-за недостаточной способности ориентироваться и понимать рассматриваемый код, разработчики в основном сообщают о таких проблемах, как нарушения конвенций, вместо того, чтобы обсуждать недостатки проектирования или дефекты. Исследователи изучили когнитивные проблемы, лежащие в основе ряда проблем, с которыми сталкиваются разработчики. Одной из таких проблем является пространственная память – система памяти в парагиппокампе, поддерживающая способность сохранять пространственное восприятие. Ко и другие заметили, что разработчики потеряли соответствующий код, когда подсказки, на которые они опирались, такие как положение полос прокрутки и вкладок документов, были нарушены в результате их навигации. Подобная дезориентация часто является результатом неудачной обработки врожденной человеческой памяти. Доступность-это устройство, которое использует врожденные когнитивные механизмы. Исследователи пытались усовершенствовать интерфейсы, которые включают в себя человеческие способности к вниманию, познанию и памяти. Например, одно исследование сократило время хранения и поиска веб-закладок, а также уменьшило количество ошибок поиска, разместив скриншоты страниц на различных стопках в трехмерном пространстве. Аналогичным образом, исследователи включили возможности для пространственной памяти в среду программирования. «Код канвас» позиционирует файлы кода на большой прокручиваемой, масштабируемой плоскости, которая сохраняет стабильное пространственное положение кода. «Код баблс» позволяет разработчику быстро размещать связанные фрагменты кода на бесконечно прокручиваемом экране, что улучшает навигацию и понимание фрагментов. Пространственная память-это всего лишь одна из таких возможностей, используемых для улучшения среды программирования, и многие другие возможности могут быть использованы аналогичным образом. Виртуальная реальность (VR) может использовать эти возможности более полно, чем существующие среды разработчиков, чтобы обеспечить новые творческие возможности и потенциально привести к повышению производительности, снижению кривых обучения и повышению удовлетворенности пользователей. В данной статье описывается, как виртуальная реальность предоставляет возможности для пространственного познания, манипулирования и движения, а также обратной связи, которые еще не полностью используются в средах программирования. Затем мы описываем две прототипные системы VR и то, как VR может быть применена в программной инженерии. Наконец, мы предлагаем краткое обсуждение будущей работы, открытых исследовательских вопросов и проблем использования виртуальной реальности в программной инженерии с существующими технологиями. II. ВОЗМОЖНОСТИ В ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ VR предоставляет возможности для пространственного познания; манипуляции и движения; и обратной связи. 1) пространственное познание: пространственная память поддерживается положением клеток, специализированными нейронами, которые срабатывают, когда человек перемещается в физическом пространстве, и другими контекстуальными сигналами в окружающей среде. Установленные на голову дисплеи VR позволяют пользователю обновлять изображение, перемещая тело или поворачивая шею, при этом ячейки располагаются в процессе работы. Кроме того, эти дисплеи визуализируют немного разное изображение для каждого глаза (стереоскопический рендеринг), что позволяет человеческому глазу легче чувствовать глубину изображения на дисплее. Эти дисплеи могут создавать ощущение присутствия или "быть там". Мы ожидаем, что пользовательская пространственная память будет больше вовлечена в VR, чем в 2D-дисплеи, особенно при просмотре 3D-визуализаций. VR может непосредственно имитировать возможности, предлагаемые физической навигацией. Основываясь на записях электрокортикографии (ЭКоГ) на поверхности мозга, можно было наблюдать за положением клеток в той же последовательности, в которой человек перемещался по виртуальному городу, и снова, когда они позже вспоминали пути через город. 2) манипуляция и движение: возможности, предоставляемые манипуляцией с физическим объектом, могут привести к улучшению восприятия и удержания. Например, возможность перелистывания страниц книги приводит к более глубокому пониманию и запоминанию по сравнению с чтением одного и того же текста на компьютерных дисплеях. Кроме того, улучшается способность к пролистыванию и перемещению материала. Движение в физическом пространстве через такие нагрузки, как ходьба, имеет важные когнитивные последствия. Другие возможности могут быть облегчены благодаря движению. Например, восприятие глубины усиливается за счет самостоятельного движения в пространстве. Исследователи изучили возможности интеграции естественных взаимодействий с существующими средами программирования. С помощью устройств ввода, таких как Leap Motion, можно физически взаимодействовать с виртуальными объектами. Физическое передвижение также возможно в виртуальных пространствах. Подвески для тела позволяют свободно двигаться в виртуальном пространстве, например, ходить, бегать, прыгать и приседать. 3) Обратная связь: Пропасть Оценки, описанная Норманом, возникает тогда, когда возникает трудность оценки состояния системы. VR позволяет инженерам-программистам находиться в средах, которые пытаются устранить эту пропасть, устраняя задержку между действиями программиста и просмотром результата их действий. Такая быстрая обратная связь ранее была реализована на двухмерных дисплеях, но VR расширяет эту возможность на трехмерные дисплеи. III. ПРИЛОЖЕНИЯ Мы создали прототипы VR для живого кодирования и просмотра кода, которые конкретно демонстрируют преимущества использования средств VR. Мы утверждаем, что преимущества, описанные в этом разделе, могут быть распространены и на другие виды деятельности по разработке программного обеспечения. Обе эти системы используют головной дисплей (Oculus Rift - Development Kit 2) и контроллер Leap Motion для распознавания жестов. A. Живое Кодирование RIFTSKETCH-это живая среда кодирования, созданная для VR, которая позволяет пользователям описывать 3D-сцену с помощью Three.js библиотеки. RIFTSKETCH представляет пользователю простой текстовый редактор (см. рис. 2), который находится перед ним в пустом виртуальном мире. По мере того, как пользователь вводит код в редактор, мир вокруг него мгновенно обновляется, чтобы отобразить 3D-сцену, продиктованную его кодом. RIFTSKETCH также позволяет пользователю анимировать свою сцену с помощью функции обратного вызова, которая выполняется на каждом кадре. Пользователь может манипулировать состоянием 3D - сцены в этом циклическом блоке кода, чтобы добавить поведение к объектам в своей сцене. Эта анимация заставляет пользователя действительно чувствовать себя внутри сцены так, как не запечатлено на 2D-скриншоте. Для облегчения взаимодействия с клавиатурой, мы позволяем реальности просвечивать с помощью веб-камеры, установленной на разломе, и проецируем это изображение в систему (см. рисунок I). 2) Манипулирование кодом вручную: RIFTSKETCH предоставляет пользователю ярлыки и методы ввода для быстрого редактирования чисел в написанном им коде. Сочетания клавиш позволяют пользователю увеличивать или уменьшать числа в коде на коэффициенты 0,1, 10 или 100. Интеграция с контроллером Leap Motion предоставляет пользователям возможность манипулировать числами с помощью движения руки вверх и вниз. Это позволяет пользователям непрерывно изменять число с помощью своей руки и мгновенно видеть, как это влияет на сцену, обеспечивая более быструю обратную связь, чем ручной ввод одного числа за раз. 3) Пример использования: Рассмотрим следующий сценарий: Космическая миссия только что приземлила зонд на поверхность кометы. После 10 лет полета зонд приземляется вопреки всему, но в таком положении, которое не может принимать солнечный свет. Автоматические телеметрические программы не могут найти приемлемую траекторию полета. Как программисту, вам поручено обновить программное обеспечение посадочного модуля, чтобы безопасно переместиться на твердую землю, и у вас есть 24 часа до того, как его батарея разрядится и зонд отклонится от поверхности кометы. К счастью, спутник собрал подробную информацию о поверхности вокруг посадочной площадки, и телеметрические данные показывают, где именно и как расположен спускаемый аппарат. Вы обновляете свою симуляцию данными и переходите в RIFTSKETCH, чтобы изучить ситуацию. После оценки параметров посадочного модуля, Вы выполняете итерацию по возможным решениям, определяете с помощью жестов рукой возможный путь и масштабируете настройки тяги, а затем с помощью клавиатуры заново вводите код. С каждым решением вы наблюдаете поведение посадочного модуля внутри RIFTSKETCH. Вы обходите посадочный модуль, чтобы проверить его положение после каждого маневра, наклоняясь, чтобы убедиться, что его ноги прочно закреплены в реголите, и увеличиваете масштаб до орбитального обзора, чтобы убедиться, что его новое положение поддерживает прямую видимость с орбитальным аппаратом на этой лобовой комете. Наконец, пропустив симуляцию десятки раз в RIFTSKETCH, вы передаете программное обеспечение для просмотра. B. Обзор кода IMMERSION представляет методы в виде фрагментов кода аналогично Кода Баблс и отображает группы фрагментов в виде кучи на полке, как БампТоп. Кучи могут быть расширены в более подробное кольцо для обзора и детальной визуализации. 1) пространственное мышление: Изначально рецензент видит активный фрагмент в центре экрана (см. рис. 3) с другими соответствующими фрагментами, распределенными по полюсу в кучах. Рецензенты используют пространственное познание, чтобы судить об уместности куч по тому, как далеко находится кучка, а также по ее размеру. Рецензент имеет возможность сканировать метки куч и количество фрагментов в каждой стопке, чтобы быстро проверить, действительно ли каждая стопка является релевантной. IMMERSION разделяет полку на секции на основе пакетов системы и цветовых кодов секций, чтобы показать, насколько данный пакет был модифицирован рассматриваемым кодом. Проходя между пакетами, мы ожидаем, что рецензенты будут иметь лучшие ментальные модели из-за более широкого использования пространственного мышления и, таким образом, лучше поймут код во время обзора. Точно так же мы ожидаем, что расширенное пространственное мышление позволит рецензентам легче вспомнить детали обзора после обзора. Это позволит рецензентам давать более полезные отзывы в будущих обзорах одной и той же базы кода. 2) Взаимодействие жестом: Рецензенты могут сделать движение захвата, чтобы выбрать кучу, а затем могут потянуть руку вверх, чтобы превратить кучу в кольцо фрагментов для более детального осмотра. Теперь рецензент может прочитать самый первый фрагмент в круге и может сделать горизонтальные движения пальцем, чтобы повернуть круг и прочитать другие фрагменты. Рецензент может зажать первый фрагмент кольца сверху и снизу и переместить его в середину экрана, чтобы он стал активным фрагментом. Если рецензент хочет вернуться к предыдущему методу, он может двигать рукой, как будто очищая стол. Первоначально мы сосредоточились на поддержке исследования—комментарии могут быть добавлены с помощью ввода с клавиатуры, но мы исследуем альтернативные способы маркировки и флагов кода. 3) Пример использования: рассмотрим предыдущий сценарий кометы, где программист реализовал изменение траектории полета посадочного модуля. Рецензент надевает Rift и вводит IMMERSION, чтобы гарантировать, что это решение будет действительно работать. Она отмечает крайний случай, который может вызвать столкновение, и предлагает осторожно врезать спутнико-орбитальный аппарат в зонд, чтобы избежать большего столкновения. Первоначальный программист реализует предложение в RIFTSKETCH, обеспечивает работу моделирования и отмечает перед отправкой исправления рецензенту. Однако рецензент видит, что часть кода загорается в IMMERSION. Когда она подходит к секции, она видит, что это секция обнаружения столкновений, предупреждающая, что система не позволит этому коду выполняться вне симулятора. Она понимает, что может позволить выполнение, выключив двигатель непосредственно перед ударом, чтобы обойти систему. Они загружают код и шлюз перенаправляет сам себя, как и ожидалось. IV. ОБСУЖДЕНИЕ A. Моделирование Виртуальная реальность открыла инженерам-программистам путь к созданию систем, повышающих эффективность и обеспечивающих ранее невозможный опыт. Существующие приложения включают НАСА, которая использует VR для управления роботизированным манипулятором, что приводит к более высокой эффективности. Образовательный опыт "Титаны космоса" позволяет студентам испытать нашу солнечную систему таким образом, что они чувствуют себя, как будто они действительно рядом с Солнцем. В будущем необходимо провести исследования о том, как создать инструменты для инженеров-программистов, создающих эти системы виртуальных магнитофонов. С какими проблемами сталкиваются инженеры-программисты VR, не имеющие инструментальной поддержки? B. Удаленное Сотрудничество Несколько программистов, расположенных по всему миру, могут присоединиться друг к другу в живом пространстве кодирования VR, чтобы узнать, как посадить комету из мотивирующего примера. Они могли бы предоставить дополнительную информацию и быстрее прийти к решению. Другой набор программистов мог бы затем присоединиться друг к другу в среде просмотра кода VR. Они могут видеть, что думает каждый человек, основываясь на своих комментариях к куче информации в своем разделе системы. C. Открытые Вопросы Степени погружения. Устройства дополненной реальности, такие как Google Glass, стремятся помочь пользователю выполнять задачи в физическом мире, добавляя информационные накладки. Дополненная реальность стремится помочь пользователю в физическом мире, в то время как виртуальная реальность стремится полностью заменить физическую реальность. Что полезнее - погрузить пользователя в полностью виртуальную среду или расширить его физический мир? Формы ввода. Контроллеры игровых консолей хорошо работают для навигации и ограниченной поддержки действий, но превосходят клавиатуры при вводе текста. Однако такие устройства требуют от пользователей одновременного взаимодействия как с физическим, так и с виртуальным миром. Распознавание жестов устраняет взаимодействие с физическим миром, но может вызвать физическое напряжение. Распознавание голоса может уменьшить напряжение, но может чувствовать себя неловко в общем рабочем пространстве. Каков наилучший способ для пользователя обеспечить ввод данных в систему виртуальной реальности? D. Проблемы 1) отделение от физического: надевание гарнитуры VR означает блокирование остального физического мира, включая коллег. Сверстники могут лишиться возможности задавать вопросы, и физическое общение будет подавлено. Кроме того, у владельца гарнитуры VR могут возникнуть проблемы с взаимодействием с физическим миром во время работы в VR. Веб-камера, установленная на гарнитуре, обеспечивает некоторое взаимодействие с физическим миром, как показано на рисунке I, но имеет ограниченное поле зрения. 2) 3D-отображение: некоторые проблемы не имеют неотъемлемого 3D-представления, что делает отображение в VR сложной задачей. Как видно из погружения, 2D-код может быть отображен в VR, но сам код не имеет третьего измерения и, таким образом, теряет выразительность 3D. Это может быть область, хорошо подходящая для трехмерного метафорического программирования, как предложил Ко и др. 3) Технологические ограничения: Разрешение 1080p в Oculus Rift Development Kit 2 позволяет читать текст с высокой проходимостью, но требует улучшения для многочасовых сеансов. Каждый пользователь также нуждается в немного другой конфигурации, которая требует времени для правильной настройки. V. ВЫВОДЫ Двумерные среды развития не смогли в полной мере воспользоваться такими возможностями, как пространственное познание, манипулирование и обратная связь. В этой статье описывается видение того, как программная инженерия может использовать VR для новых видов инструментов, которые могут воспользоваться этими возможностями. Мы описали, как живое кодирование и просмотр кода могут быть выгодны для инструментов VR, но мы предполагаем, что многие другие виды программной инженерии также могут быть выгодны для VR. |
...