Interactive Software Maps for Web-Based Source Code Analysis

Interactive Software Maps for Web-Based Source Code Analysis

Interactive Software Maps for Web-Based Source Code Analysis Daniel Limberger (a) Benjamin Wasty (b) Jonas Trumper¨ (a) Jurgen¨ Dollner¨ (a) (a) Hasso-Plattner-Institut, University of Potsdam, Germany; e-mail: fdaniel.limberger, jonas.truemper, [email protected] (b) Software Diagnostics GmbH, Potsdam, Germany; e-mail: [email protected] Figure 1: Left: Dashboard accessed from a tablet computer, which summarizes project specific performance indicators (metrics) and links them to software maps. Right: Software map with code metrics mapped to ground area, height, and color, rendered in real-time in the browser. Abstract 1 Introduction For a sustainable software engineering process in large software Software maps – linking rectangular 3D-Treemaps, software sys- projects, a number of prerequisites exist. These include good re- tem structure, and performance indicators – are commonly used source management, collaboration, code management, prioritiza- to support informed decision making in software-engineering pro- tion, reviews, and decision making as well as architecture- and fea- cesses. A key aspect for this decision making is that software maps ture planning. Up-to-date knowledge of the software project, its provide the structural context required for correct interpretation of processes, and, in particular, its source code are further key ele- these performance indicators. In parallel, source code repositories ments [Eisenbarth et al. 2003]. It is imperative to use additional and collaboration platforms are an integral part of today’s software- services and platforms to support and ease this collaborative pro- engineering tool set, but cannot properly incorporate software maps cess [Trumper¨ and Dollner¨ 2012]. In fact, most available collabo- since implementations are only available as stand-alone applica- ration platforms provide visualization for various aspects related to tions. Hence, software maps are ’disconnected’ from the main body development, e.g., branching, summary of development activities, of this tool set, rendering their use and provisioning overly compli- status related charts, source code diffs and many more. cated, which is one of the main reasons against regular use. We thus present a web-based rendering system for software maps that With increasing projects size, however, management overhead in- achieves both fast client-side page load time and interactive frame creases and an additional issue arises: Companies struggle with es- rates even with large software maps. We significantly reduce page sential information gaps between management and development, load time by efficiently encoding hierarchy and geometry data for which hinder informed decision making [Poole 2003]. Such gaps the net transport. Apart from that, appropriate interaction, layout- include clearly communicating quality standards (management to ing, and labeling techniques as well as common image enhance- development), and, vice versa, reasoning why a specific amount ments aid evaluation of project-related quality aspects. Metrics pro- of resources is required for a given development task. Visualizing visioning can further be implemented by predefined attribute map- these facts using traditional plain lists and charts is hard because of pings to simplify communication of project specific quality aspects. the exploratory nature of the underlying questions and problems: It The system is integrated into dashboards to demonstrate how our enforces an iterative refinement of and re-focusing within a mas- web-based approach makes software maps more accessible to many sive amount of facts. Fortunately, powerful various visualization different stakeholders in software-engineering projects. CR Categories: I.3.7 [Computer Graphics]: Three-Dimensional Graphics and Realism—Virtual Reality D.2.2 [Software Engineer- ing]: Design Tools and Techniques—Computer-aided software en- gineering; D.2.7 [Software Engineering]: Distribution, Mainte- nance, and Enhancement—Documentation; Keywords: 3D-Treemaps, Software Visualization, Computer Aided Analysis, Decision Making, Web Integration, WebGL cally combined to support the given use case. The system is acces- Source Design sible through WebGL-enabled [Marrin 2013] browsers, available Server Code Decay Assessment on stationary and various types of mobile computers (e.g., tablets, Collaboration notebooks, light desktop or office computers, etc. – Figure1). We Code Platforms demonstrate that our system scales up to real-world data, and eval- ... uate its performance (provisioning, rendering) for integrated con- Report sumer graphics hardware. Metrics Software Maps Verification 2 Related Work Decision Making & Target Design Code Transformation Visualization of data is in many aspects of high importance, pro- viding meaningful insights for diverse groups of information con- Figure 2: Exemplary development cycle within larger software en- sumers [Langelier et al. 2005;B urger¨ and Hauser 2007]. As such, gineering processes. Software maps as integrated part of collabo- attributed 3D-Treemaps were suggested for software analysis, in ration platforms, which the development process relies on, aid as- the form of Code Cities [Wettel and Lanza 2007] or more recently sessment and verification. as software maps [Bohnet and Dollner¨ 2011]. The later focus- ing on aiding software engineering processes by monitoring certain source code aspects through metrics. Similarly, integrating soft- techniques are available to help bridge this gap and to provide ad- ware maps with the common software-engineering tool set was sug- ditional up-to-date information, which jointly aid exploring code gested [Trumper¨ and Dollner¨ 2012], but focuses on using software quality, estimating benefits, and decisions making. Among others, maps as additional front-end for recommendation systems. code cities [Wettel and Lanza 2007] or software maps [Bohnet and Dollner¨ 2011] are frequently used in this context. We here focus on The generation of treemap layouts, and thereby the provision of software maps, which are 3D-Treemaps that provide a hierarchy- a spatial context to source code artifacts, various algorithms have preserving layout and spatial context for code artifacts (code units) emerged (e.g., [Johnson and Shneiderman 1991]) for which an ex- and metrics. Each treemap item represents a code unit (at vary- cellent resources for further exploration is available [Schulz 2011]. ing abstraction levels) with at least three visual variables (height, For software maps we build on the strip treemap algorithm [Beder- ground area, color) that metrics can be mapped to. son et al. 2002] that among others, was recently evaluated and im- proved [Tak and Cockburn 2012]. While designing our web-based While stand-alone applications for software maps, which allow ar- visualization and its data encoding, we evaluated state-of-the-art bitrary metric mappings, exist, their daily use in software engineer- technologies [Behr et al. 2010; Behr et al. 2012], but neither fitted ing projects is significantly limited by several circumstances: First our needs for exclusively rendering software maps; E.g., the addi- and foremost, being stand-alone applications, they are disconnected tional latency introduced by requiring multiple requests to access from the remainder of the preexistent tool set, so they impose an distributed precision data over multiple textures seems inappropri- unnecessary usage overhead (e.g., context switches, data synchro- ate, and requires further investigation for various use cases. Sim- nization) on its users. Second, provisioning such application as ilarly, progressive (or LOD based) data provisioning [Alliez and per-computer stand-alone installation is complex, and, especially in Desbrun 2001] is impractical, unless it is desired to provide geome- industry contexts, requires the application to comply to company- try data per hierarchy level and thereby allowing stepwise software specific security regulations etc. Third, to enable any analysis bene- map refinement. fits, specific knowledge not only about metrics is required, but also about how to express quality aspects as metric mappings [Kitchen- Concerning efficient rendering of software maps or 3D-Treemaps ham and Pfleeger 1996], which currently have to be configured per in general, a technique utilizing geometry shaders was recently pro- installation. This can (partially) be alleviated by providing man- posed [Trapp et al. 2013]. In WebGL, however, geometry shaders agers and developers with (initial) training that focus on the com- are not yet available, so we use basic rendering via attribute arrays. pany’s individual engineering process(es), its requirements, and re- The suggested techniques as unsharp masking [Luft et al. 2006], lated quality issues [Broy et al. 2006; Deissenboeck et al. 2009]. edge-enhancement [Nienhaus and Dollner¨ 2003], or use of camera Last, stand-alone applications cannot be integrated in web mashups, lights, are directly integrated into our deferred rendering. In addi- which further limits their use. tion, screen space ambient occlusion techniques, e.g., [McGuire 2010], increase the perceived software maps plasticity, aiding per- To overcome these drawbacks, we suggest integrating software- ception through better item and module differentiation and depth map related use cases into the (web-based) software engineering cues. Due to the limitations of WebGL, several tricks for data en- tool set, including tools such as collaboration platforms, frame- coding into

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us