PROBE - Live Actionable Software Analytics
Software analytics has grown in the past years out of the software analysis and program comprehension areas into a full-fledged, self-contained, and established research field of its own. The central underlying idea is to reflect on the plethora of data generated while software systems are being developed. This data resides for example in versioning system repositories, bug trackers, code review systems, mailing lists, etc., and is also available as online resources, e.g., Q&A websites and online video tutorials. Research has shown that this data, if correctly leveraged, can be transformed into precious knowledge that can inform decisions about the evolution of a system. However, many research results, while interesting, have a hard time being actionable, i.e., useful and usable suggestions with immediate and concrete impact on the system. We believe this is due to the fact that each data source provides a limited and in- complete perspective on any given development task. What is missing is a holistic take, which is only possible when diverse data sources are integrated and made accessible to software developers. Moreover, the obtained insights and the concrete consequences of those insights are disconnected. Our goal is to develop a comprehensive methodology, complemented by appropriate tool support, to enable visual and live software analytics, where the plethora of data produced in the context of any software project is integrated in a holistic fashion and is therefore elevated to the state of knowledge, which can then be made actionable by directly feeding back into the software development process. To attain that goal, we envision the creation of a web-based immersive analytics environment, featuring a 3D representation of the software system under development. In this environment, the developer is represented by an avatar, a virtual persona about which the environment keeps track in terms of the past and current actions and achievements. The system depiction is augmented with what we define as corollary knowledge, harvested (i.e., extracted, modeled, and integrated) from the aforementioned data sources. This corollary knowledge is then proposed on-the-fly by the environment which has at its disposal integrated knowledge about the system and an understanding of the developer’s context. With that understanding, the environment can suggest pertinent knowledge, by visually super-imposing it over the actual depiction of the system. The developer can interact with those knowledge bits and render them actionable, by consulting them, by linking them to the code base, and/or by diving into them. Moreover, the developer can also interact with other developers in the thus created immersive virtual space.