Software Evolution Visualization: Status, Challenges, and Research Directions

Software Evolution Visualization: Status, Challenges, and Research Directions

Renato Lima Novais (Federal Institute of Bahia, Brazil) and Manoel Gomes de Mendonça Neto (Fraunhofer Project Center for Software and Systems Engineering at UFBA, Brazil)
DOI: 10.4018/978-1-4666-6026-7.ch026
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Software Visualization is the field of Software Engineering that aims to help people to understand software through the use of visual resources. It can be effectively used to analyze and understand the large amount of data produced during software evolution. Several Software Evolution Visualization (SEV) approaches have been proposed. The goals of the proposed approaches are varied, and they try to help programmers and managers to deal with software evolution in their daily software activities. Despite their goals, their applicability in real development scenarios is questionable. In this chapter, the authors discuss the current state of the art and challenges in software evolution visualization, presenting issues and problems related to the area, and they propose some solutions and recommendations to circumvent them. Finally, the authors discuss some research directions for the SEV domain.
Chapter Preview
Top

Introduction

Software evolution generally deals with large amounts of data that originates from heterogeneous sources such as Software Configuration Management (SCM) repositories, Bug Tracking Systems (BTS), mailing and project discussion lists. One of the key aspects of software evolution is to build theories and models that enable us to understand the past and present, as well as predict future properties related to software maintenance activities, and hence support software maintenance tasks.

Software Visualization (SoftVis) is the field of Software Engineering (SE) that aims to help people to understand software through the use of visual resources (Diehl, 2007), and it can be effectively used to analyze and understand the large amount of data produced during software evolution. For this reason, many researchers have been proposing Software Evolution Visualization (SEV) tools (Kuhn, Erni, Loretan, Nierstrasz, 2010)(Voinea, Lukkien & Telea, 2007)(Fischer & Gall, 2004)(German, Hindle & Jordan, 2006)(Cepda, Magdaleno, Murta & Werner, 2010)(Eick, Steffen & Sumner Jr, 1992). In general, these tools analyze the evolution of the software with respect to a set of software maintenance related questions.

Despite the goals of the software evolution visualization approaches, most have yet to be used in industrial environments. SEV approaches usually provide good and attractive visual metaphors, but how to use them within the software development process remains an open question. Several SEV tools are proposed as proof of concepts that is not evolved anymore.

This chapter covers Software Evolution Visualization (SEV) approaches, providing information about how SEV research is structured, synthesizing current evidence on the goals of the proposed approaches and identifying key challenges for its use in practice. This text is based on a mapping study that was carried out to analyze how the SEV area is structured (Novais et al., 2013a).

In the following sections we will discuss the current state and challenges in software evolution visualization. We will present issues and problems related to the area, and propose some solutions and recommendations to circumvent them. Finally, we will discuss some research directions for the SEV domain.

Key Terms in this Chapter

Perspective: Software can also be visually analyzed from different perspectives ( Carneiro et al., 2008 )( Carneiro, Santanna, & Mendonça, 2010 )( Carneiro et al., 2010 AU43: The citation "Carneiro et al., 2010" matches multiple references. Please add letters (e.g. "Smith 2000a"), or additional authors to the citation, to uniquely match references and citations. )( Carneiro & Mendonça, 2013 ). The perspective in software visualization means the point of views it provides to engineers to explore a software system. The perspectives concern to the way in which we look to the software. In the context of software, the perspective may be represented by a set of coordinated views designed to represent a group of properties of the software.

Software Evolution Visualization: Software evolution visualization is the sub-area of Software Visualization that uses visual resources to visually analyze the software evolution.

Software Evolution: Software evolution is the term used to define the process that starts by the development of the software and by any step that incrementally updates the software.

Visual Strategies of Analysis: A visual strategy of analysis defines how the evolution is visually presented for analysis (Novais and Mendonça, 2013 AU44: The citation "Novais and Mendonça, 2013" matches the reference "Novais, Mendonca, 2013", but an accent or apostrophe is different. )( Novais et al., 2013a ). Due to the diverse set of software evolution comprehension tasks, it is desirable that SEV infrastructures support different strategies of analysis. There are differential and temporal strategies. Differential strategies (relative and absolute) focus on analyzing the differences between versions, while temporal strategies (overview, snapshot, and overview accumulative) describe several versions on the same visual scene.

Software Visualization: Software visualization is the field of Software Engineering (SE) that aims to help people to understand software through the use of visual resources ( Diehl, 2007 )

Complete Chapter List

Search this Book:
Reset