Open Access
Refine
Document Type
- Article (2)
Language
- English (2)
Has Fulltext
- yes (2)
Is part of the Bibliography
- yes (2)
Keywords
- software engineering (2) (remove)
Institute
While Virtual Reality (VR) has been applied to various domains to provide new visualization and interaction capabilities, enabling programmers to utilize VR for their software development and maintenance tasks has been insufficiently explored. In this paper, we present the Hyper-Display Environment (HyDE) in the form of a mixed-reality (HyDE-MR) or virtual reality (HyDE-VR) variant respectively, which provides simultaneous multiple operating system window visualization with integrated keyboard/mouse viewing and interaction using MR or in pure VR via a virtual keyboard. This paper applies HyDE in a software development case study as an alternative to typical non-VR Integrated Development Environments (IDEs), supporting software engineering tasks with multiple live screens in VR as an augmented virtuality. The MR solution concept enables programmers to benefit from VR visualization and virtually unlimited information displays while supporting their more natural keyboard interaction for basic code-centric tasks. Thus, developers can leverage VR paradigms and capabilities while directly interacting with their favorite tools to develop and maintain program code. A prototype implementation is described, with a case study demonstrating its feasibility and an initial empirical study showing its potential.
The volume of program source code created, reused, and maintained worldwide is rapidly increasing, yet code comprehension remains a limiting productivity factor. For developers and maintainers, well known common software design patterns and the abstractions they offer can help support program comprehension. However, manual pattern documentation techniques in code and code-related assets such as comments, documents, or models are not necessarily consistent or dependable and are cost-prohibitive. To address this situation, we propose the Hybrid Design Pattern Detection (HyDPD), a generalized approach for detecting patterns that is programming-language-agnostic and combines graph analysis (GA) and Machine Learning (ML) to automate the detection of design patterns via source code analysis. Our realization demonstrates its feasibility. An evaluation compared each technique and their combination for three common patterns across a set of 75 single pattern Java and C# public sample pattern projects. The GA component was also used to detect the 23 Gang of Four design patterns across 258 sample C# and Java projects as well as in a large Java project. Performance and scalability were measured. The results show the advantages and potential of a hybrid approach for combining GA with artificial neural networks (ANN) for automated design pattern detection, providing compensating advantages such as reduced false negatives and improved F1 scores.