=Paper=
{{Paper
|id=Vol-2485/paper18
|storemode=property
|title=Activity Analysis in Software Visualization Systems
|pdfUrl=https://ceur-ws.org/Vol-2485/paper18.pdf
|volume=Vol-2485
|authors=Vladimir Averbukh,Natalya Averbukh,Ilya Gvozdarev,Georgy Levchuk
}}
==Activity Analysis in Software Visualization Systems ==
Activity Analysis in Software Visualization Systems V.L. Averbukh1,2, N.V. Averbukh2, I.L. Gvozdarev2, G.I. Levchuk2 averbukh@imm.uran.ru|natalya_averbukh@mail.ru|ilyagvz@gmail.com|levchukgeorgy1@gmail.com 1 IMM UB RAS, Yekaterinburg, Russia; 2 Ural Federal University, Yekaterinburg, Russia. The goal of this paper is to identify the task for researching the activity of software engineers using software visualization systems based on virtual reality. It discusses the activity theory statements developed in our country as far back as in the past century. The paper describes possible tasks to analyse the activity of software engineers using such systems. It provides examples illustrating the use of the systems based on virtual reality for the purposes of software complexes representation and visual programming. The activity of the user of such systems is analysed. Keywords: software visualization, visual programming, activity theory, virtual reality. users (that is the software engineers themselves) face, and, of 1. Introduction course, those advantages that can be enjoyed when using virtual reality for software development. Over the past several years a whole range of interesting examples have emerged of using virtual reality in software 2. Activity theory visualization systems. Of great importance is the evaluation of the efficiency of such systems due to the possibility of using them Before proceeding to the use of the activity theory in the in software development. Before we proceed to efficiency fields of software visualization and visual programming, let us evaluation, we need to analyze software development as a provide a general idea of this psychological paradigm. The process. Such analysis should be carried out taking into account activity theory was developed in the first half of the XX century the conditions in which this process takes place and, in particular, by A.N. Leontyev and S.L. Rubinshtein [5, 8]. the influence of virtual reality, its usefulness and applicability in The central notion determining a person’s activity is a the activity of various categories of software engineers. conscious goal that a person establishes for themselves. This The activity theory, which has been developed in the Russian activity is also defined by the person’s motives, their personal psychology since the 1930s, can be offered as a tool for the qualities and conditions in which the activity occurs. The analysis. This theory makes it possible to study the working analysis of the activity should be carried out in two directions. process from the viewpoint of goals and goal-setting and, at the On the one hand, it is necessary to set a goal, motives and same time, to structure it by defining cognitive constituents – conditions for the activity. Let us provide a real-life illustration: actions – which, in turn, consist of operations. This provides the the same activity will differ when carried out in the freezing cold, opportunity to analyze various elements of the development in the heat or in comfortable temperature. Also, when it comes to process using the activity theory tools. This type of analysis a specific person, it is preferable to take into account their prioritizes the process of goal-setting by the software engineer personal qualities. Some types of activities, on the contrary, and choosing the actions that will lead to accomplishment, which require certain personal qualities from the operator. Thus, for makes it possible to assess the efficiency of using a certain instance, the work of a corrector requires attentiveness, and any development tool. creative work, obviously, requires creativity. Describing a software engineer’s activity is a complex task, In the context of this paper’s topic, the activity carried out even in the context of technical development in the 1950s – 60s. fully or partially in virtual reality will differ from the activity A computer program describes processes that are launched on a carried out by a software engineer at their usual desk. computer. The task of an engineer is to correctly describe this The second direction involves dividing activity into process, and then to test and debug the program. Nowadays, the reportable actions and dividing the latter, in turn, into operations. activity of a software engineer has become much more complex. It is understood that the same actions may include different Software developers are divided into a whole range of operations and, on the contrary, the same operations may be part specialties; for instance, a software developer as such, a coder, a of different actions. It is important to take into account the fact tester etc. Each of these specialties presupposes its own type of that carrying out an action is conscious and purposeful, as well activity, with its own goals, tasks, including certain actions and as all activity in general. operations. A person establishes an intermediary goal, which defines the There have been attempts in the IT industry of creating a action itself. When the action is fulfilled, the goal is shifted strict description of each type of work in certain companies. In forward, and the previous action becomes the means of carrying other companies no software engineering work formalization out another action aimed at a more general goal. This way, the took place. action aimed at smaller goals is deleted from the conscious and The activity of various types of software developers transits to the unconscious. Thus, a hierarchical structure is combines versatile work with code, the creative factor, established: activity – conscious actions – operations. In other interaction with colleagues and many other things. That is why it words, activity breaks down into a number of conscious and is extremely hard to describe a software engineer’s activity in motivated actions, which are realized by means of a combination full. This paper sets a narrower task of describing the work of a of operations. (Rubinshtein, 2005) user of software visualization systems based on virtual reality Focusing on activity paradigm in developing a software systems. It is noteworthy that currently such systems cannot system could help the developer in creating such conditions, so provide fully-featured development of all the aspects of software. that the user’s tasks (the user in this case being a software That is why we will describe several types of activities for engineer of some kind, as we are talking about developing software engineers, testers and, probably, engineers of a software visualization systems) are connected only with direct relatively lower level in the system of software visualization with goals in a certain programming field. For this, a rather precise the use of virtual reality. Our goal is to elicit common description of the activity of various professionals (for instance, opportunities of such systems, their bottle necks, problems which software engineers, developers, encoders etc.) is necessary, Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). including the type of goals and tasks set within the lines of their media are of interest for their brief descriptions of user’s direction, the type of actions and operations they carry out. Of impressions while working with such systems. The article [7], interest would also be research into motivation, professionally discusses an approach towards software development called critical qualities (for example, what directions require diligence, gamification. This approach presupposes the creation of tools, criticism, creativity etc.) and other psychological characteristics. which give software developers an interface similar to computer games. An analysis has been carried out of the way software 3. The task of analyzing the activity of developers interact with software visualization systems. The software engineers developers were excited, they warmed to their work, they felt a certain challenge, experienced immersion into the virtual world The task of analyzing software engineers’ activity has been with retaining control over the system. See also paper [6]. During established in previous papers, [1]. In this paper, we want to the interaction they spent a considerable amount of time on provide a case study for such analysis. The systems to be navigation in the virtual world and on choosing the right elements presented in this paper represent the conditions for the activity, of the program. The users realized that time had gone by quicker as well as the environment and the tool set. It is important for all than it does in reality, that is why they were willing to spend more the components to conform to the goal. It is noteworthy that a time using software media to solve the problem of understanding goal perceived by the individual determines the whole activity. the task. At the same time, we have not been able to find a full This is why environment developers need to envisage both the description of a software engineer’s activity in such systems yet. goal and the tasks, the accomplishment of which leads to Further, we will describe the prototypes of software complexes achieving the goal; they need to think through the actions which visualization systems and visual programming systems, and we the user will carry out and the operations which compose these will attempt to describe the actions, operations, as well as goals actions. and motivations of the users of such systems. When working in the real world a person can choose actions We use a prototype in our research based on an extended city and operations themselves (although the range is somewhat metaphor. limited by the capabilities and features of the tools), whereas This prototype displays a system visualizing three- when working in virtual reality, everything should be thought dimensional presentation of the code structure in virtual reality through by the developer. Their job will be much more efficient based on an extended city metaphor (a city with active agents). if they keep in mind the diagram of the activity analysis: the goals Part of the system responsible for visualization, shaping and established by the software engineer using their system; the tasks working in virtual reality is implemented via Webgl and three.js established for them; the actions needed to fulfill the tasks; the libraries. The system (connecting the software structure operations composing the activity. visualization in virtual reality with file representation of the A software engineer’s activity is vast and versatile; however, code) is implemented on ‘js’ and C#. Also implemented is the this paper focuses on the actions carried out in virtual reality, and user mode with different levels of access and different types of it considers them as a separate activity. We will describe the user accounts (an administrator, who can change access goals established by a developer and a tester of a visual software authorization for projects and add users; a developer, who works system, as well as by a software engineer working in visual with the code; a tester, who ‘catches bugs’, i.e. finds mistakes programming. We will describe the tasks that can be established and provides information about them to the developer). This within virtual reality and the operations that may be included into paper will demonstrate the activity of a developer and a tester. it. The specific feature of activity in virtual reality is the fact that Let us describe the conditions in which the activity occurs. A some actions are carried out on several levels simultaneously. On user in the role of a developer opens the project represented as a the one hand, a software engineer carries out an action inside city (see Fig. 1). The user’s movements in the virtual virtual reality, for instance, moving around the city or environment are carried out by means of a camera moving around approaching a planet. On the other hand, he or she makes the virtual city, its buildings and rooms inside the buildings. The physical movements using certain controllers. The goal here is movements are carried out by means of a keyboard or a mouse. not enjoying the attraction or believing the events are real (as in The class is represented as a building. it has several floors, which entertainment environments), but understanding the software is connected with the fact that for each class there are two code for further work with it. That is why operations carried out representations for the descriptions. In a simple representation, when interacting with the system can be done by means of usual each single method is described in a room or on a specific floor. computer devices such as a keyboard and a mouse; although There is also a logical description of the types of data the class specific VR controllers can also be used. The third level of works with, the type of methods it uses, and possible applications operations includes those changes that occur on the level of of this class. software code. Detailed development of operations should be The user may have the role of a tester. Let us consider a carried out with due regard for both the specific software system simple example – the task of finding the root of a number. The and the supposed user (software engineer). tester enters a number; the active agent enters the corresponding method in the examined class. This is displayed as the agent 4. Software visualization based on virtual entering the building which represents the class (see Fig. 1, 2), reality going along the corridor and choosing the right room (see Fig. About a decade ago papers describing the opportunities of 3). The agent enters the room (method) through the door and exits virtual reality in the field of software objects representation on it in the same way. All this is displayed as the agent entering with the basis of city and landscape metaphors started to emerge [3, a number written on him and exiting with the root of this number. 4]. One of the most popular metaphors for software visualization And the wall of this building (Fig. 4) illustrates the way this systems using the means of virtual reality is a city metaphor. For method influences memory: what load there is, a brief example, this metaphor is used by two systems with similar characteristic of the weight of this number (as there can be very names worth mentioning: VR City [10] and CityVR [7]. The big numbers, which put a heavy load on the processor); and a systems based on virtual reality also use other metaphors. In 2018 brief description of the way this method finds the root from this City Metaphor was used for visualizing software [9]. number. From the viewpoint of a software engineer’s work process description, the developed systems of software product visualization and visual programming based on virtual reality unrealized methods, an engineer switches to the second screen and searches the web for the possibility of using ready-made methods. Then he or she returns into virtual reality and watches the way they work to make a decision on whether they need changes or enhancements. Fig. 1. Presentation of a software project as a city in virtual reality and the inner part of the structure of the code with the figure of the active agent Fig. 3. A corridor with a view of the entrance into the ‘toString()’ method from the ‘boolean’ class in the building sectional view Fig. 2. An entrance into the building describing the 'boolean’ class As a result, the tester understands the way this method works, the way the program works. Visual manifestation makes it possible to quickly understand whether the program works Fig. 4. A view of the wall in a room with a visual and textual correctly. description of the program elements The city metaphor makes it possible to visualize larger volumes of data in a much denser way. Virtual reality allows information perception on several levels. One can inspect all the 5. Visual Programming procedures step-by-step due to agent movements. There is an The developed system of visual programming can be used for opportunity of working within the method, watching the creating object-oriented programs. Such programs have a certain elements go through all the procedures and evolve. inner structure and hierarchy, a link between the objects, an In the work of a usual program, the system takes the code text ordered set of operations. The goal of this project is to reduce the and transcodes it into computer code. In our system, each method number of intermediaries between the software engineer and the has its own name and place in the code, and the rooms in the program idea. Text is not the most obvious and natural means of buildings of the city are named accordingly. A software translating the idea into the program. It appears that coding is developer can watch the program function in order to work out better through manipulations with graphic objects. Nowadays, the code and its structure, which offers an advantage over reading coding looks the following way: a software engineer enters the the code to decide on further development. programming environment and starts creating files, writing texts, At this point, there is no possibility to interfere with the creates packages, classes, studies the syntax. This can be avoided program from virtual reality. These possibilities are to be further if classes are represented not by a sequence of lines with content extended. names, not by just by a succession of structures and operators, Each type of software engineer faces similar tasks in their but by a graphic object. In order to work in the system of visual line of work, which have no critical differences. programming a person needs to understand the process of A software engineer’s activity is generally (not only in virtual carrying out a certain action. This understanding should be as reality) carried out in the following way: an engineer uses two intuitive as possible. screens, one of which is connected with VR glasses and shows The cosmic metaphor with a heliocentric world view is the city, while the other one shows the code. The engineer chosen as the basic metaphor (Fig. 5). Notably, the programs’ switches between the systems. He or she can launch the program essences are represented by planets, their satellites and rings (like and watch it work in virtual reality. Upon discovering the Saturn’s rings). User classes are represented by planets. Each planet (class) has two types of views: the open one, which looks software engineer moves the mouse or the controller, clicks the like a planet with satellites and rings (see Fig. 6), and the active button. In virtual reality, a cursor, a pointer or any other type of one, where the class is chosen. The active view represents a circle indicator moves, planets are selected, text boxes appear etc. On with a section of rings on the left and structured satellites on the the level of code, a file is created, a name is assigned to it etc. right. The section of rings represents class methods. Each ring displays a separate method. Outer rings are public methods, while inner ones are private and protected. Satellites represent class fields. From top to bottom, first go the satellites furthermost from the planet – public fields, then go closer satellites – private and protected ones. Inside the planet there is also a section of rings, and an ordered set of satellites (static methods and fields), belonging to the class itself (Fig. 7). In the center there is a nucleus containing all the class constructors. [1] Fig. 6. View of the class Fig. 5. View of the visual programming environment If a planet represents a class, then creating a method means creating a ring for this planet. If a software engineers wants to create several methods he or she does not need to code similar elements; he or she can simply click on the planet and then click on a ring in a dropdown menu for the ‘create a ring’ option. After that, the engineer sets the types and names of input data, which is also implemented graphically. The goal of creating this system is to make coding a simpler and comfortable process. The goal of a software engineer (when working inside virtual reality) is to code and enhance the program. Fig. 7. Inside the planet Virtual reality provides visibility and the opportunity to keep all the created classes, interfaces and their methods in sight, with 6. Conclusion the option of in-depth analysis of their structure by means of zooming the camera in or out, or by clicking on them with a This paper describes the activity of software engineers in mouse. Virtual reality provides navigation benefits. One can software visualization and visual programming systems. Our travel around the class structure (the cosmic space). The effect of primary focus has been on the systems themselves and on the presence is imitated via the camera. The interaction can be actions performed there. The goal of an activity is typically quite carried out with VR controllers but, for now, it is performed on a obvious; it comes down to achieving the required result (analysis keyboard (when cording identifiers and creating objects). of the program’s work, understanding, coding a new program The system is implemented in such a way that a writing into etc.). A crucial part of the activity analysis is elaborating the the source file (.java) is made when the user changes the structure motivation. However, when describing an activity of a category of the program (for example, creates a variable – a satellite or a of people (instead of a single person), we face difficulties talking planet of a certain type); when the variable is deleted, the writing about motivation, as it is, in effect, a matter of personal business. from the source file is erased. At present, the file responsible for That is why we can only talk about the motivation for a certain the visualization system state and the corresponding source file aspect of activity. In this paper, we are interested in the should be kept paired up and should not be changed separately motivation of choosing virtual reality as an environment for from each other, because there is no interpreter to translate .java executing an activity. It can be connected with the content of the files into graphic objects. activity (comfort, new advantages) or not (‘out of curiosity’, ‘to A software engineer performs actions creating planets brag about using cutting edge technologies’, ‘to try out new (classes) by carrying out operations of choosing interfaces and features’, ‘boss’s orders’ etc.). typing. One can also choose a project nucleus through the The developed prototypes use traditional interfaces, but the operation of choosing fields (satellites) and create static methods use of VR controllers, as well as gesture interfaces, is (rings). contemplated, which may offer considerable advantages in When analyzing a software engineer’s activity, identifying carrying out operations in virtual reality environments. [2], [11], the level of operations is quite difficult. Obviously, one cannot [12]. This may reduce the gap between the two levels of reduce the operations to hand movements, mouse clicks, the use operations: physical actions of the user (software engineer) and of keyboard or VR controllers. An operation should be described changes in the virtual environment. on three levels: movements in the material world, changes in Our research is at the initial stage now. Based on the virtual reality, and changes in the code. In the material world, a developed prototypes, experiments should be carried out to study the activity of future users, different categories of software engineers. The work was supported by Act 211 Government of the Russian Federation, contract No 02.A03.21.0006 7. References [1] Averbukh V. L., Gvozdarev I. L., Levchuk G. I. Software Visualization based on Virtual Reality // GraphiCon 2018: Proceedings of the 28th International conference on computer graphics and machine vision. Tomsk, 24-27 Sept., 2018 . P. 77-81 [2] Averbukh V. L. Averbukh N. V., Starodubsev I. S., Tabolin, D. J. the Use of gestural interfaces in the interaction with objects // Scientific Perspective – 2014. – No 56(10). – P. 57-66. [3] Glander, T., Dôllner, J.: Abstract representations for interactive visualization of virtual 3d city models. Computers. Environment and Urban Systems 33(5), 375– 387 (2009) [4] Glander, T., Dôllner, J.: Automated cell-based generalization of virtual 3d city models with dynamic landmark highlighting. In: The 11th ICA workshop on generalization and multiple representation, June 20–21 , Montpellier, France. The International Cartographic Association (2018) [5] Leontiev A. N. Activity. Consciousness. Personality. M., Political. 1975. [6] Merino L., Bergel A., Nierstrasz O. Overcoming issues of 3d software visualization through immersive augmented reality. Proceeding of 2018 IEEE Working Conference on Software Visualization (VISSOFT). 2018. Pp. 54-64. [7] Merino L., Ghafari M., Anslow C., Nierstrasz O. CityVR: Gameful Software Visualization // IEEE International Conference on Software Maintenance and Evolution (ICSME TD Track). 2017, pp. 633-637. [8] Rubinstein S. L. Fundamentals of General psychology. - SPb. Peter, 2005. [9] Rüdel M.-O., Ganser J., Koschke R. A Controlled Experiment on Spatial Orientation in VR-Based Software Cities // 2018 IEEE Working Conference on Software Visualization (VISSOFT), 2018. Pp.21-31. [10] Vincur, J., Navrat, P., Polasek, I.: VR city: Software analysis in virtual reality environment. In: 2017 IEEE International Conference on Software Quality. Reliability and Security Companion. pp. 509–516 (2017) [11] Zhai S., Hunter M., Smith B. A. The Metropolis Keyboard – An Exploration of Quantitative Techniques for Virtual Keyboard Design // UIST '00 Proceedings of the 13th annual ACM symposium on User interface software and technology, 2000. Pp. 119-128. [12] Zirkelbach C., Krause A., Hasselbring W. Hands-On: Experiencing Software Architecture in Virtual Reality // Report number: TR_1809. Christian-Albrechts-Universität zu Kiel. January 2019. DOI: 10.13140/RG.2.2.23096.39680.