Powered by
2014 Software Evolution Week --- IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE),
February 3-6, 2014,
Antwerp, Belgium
Tool Demonstrations
Tool Demonstrations 1
in*Bug: Visual Analytics of Bug Repositories
Tommaso Dal Sasso and Michele Lanza
(University of Lugano, Switzerland)
Bug tracking systems are used to track and store the defects reported during the life of software projects. The underlying repositories represent a valuable source of information used for example for defect prediction and program comprehension. However, bug tracking systems present the actual bugs essentially in textual form, which is not only cumbersome to navigate, but also hinders the understanding of the intricate pieces of information that revolve around software bugs.
We present in*Bug, a web-based visual analytics platform to navigate and inspect bug repositories. in*Bug provides several interactive views to understand detailed information about the bugs and the people that report them.
The tool can be downloaded at http://inbug.inf.usi.ch
@InProceedings{CSMR-WCRE14p415,
author = {Tommaso Dal Sasso and Michele Lanza},
title = {in*Bug: Visual Analytics of Bug Repositories},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {415--419},
doi = {},
year = {2014},
}
APIEvolutionMiner: Keeping API Evolution under Control
André Hora , Anne Etien,
Nicolas Anquetil,
Stéphane Ducasse , and
Marco Tulio Valente
(INRIA, France; UFMG, Brazil)
During software evolution, source code is constantly refactored. In real-world migrations, many methods in the newer version are not present in the old version (e.g., 60% of the methods in Eclipse 2.0 were not in version 1.0). This requires changes to be consistently applied to reflect the new API and avoid further maintenance problems. In this paper, we propose a tool to extract rules by monitoring API changes applied in source code during system evolution. In this process, changes are mined at revision level in code history. Our tool focuses on mining invocation changes to keep track of how they are evolving. We also provide three case studies in order to evaluate the tool.
@InProceedings{CSMR-WCRE14p420,
author = {André Hora and Anne Etien and Nicolas Anquetil and Stéphane Ducasse and Marco Tulio Valente},
title = {APIEvolutionMiner: Keeping API Evolution under Control},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {420--424},
doi = {},
year = {2014},
}
How the Sando Search Tool Recommends Queries
Xi Ge,
David Shepherd , Kostadin Damevski, and
Emerson Murphy-Hill
(North Carolina State University, USA; ABB, USA; Virginia State University, USA)
Developers spend a significant amount of time searching their local codebase.
To help them search efficiently, researchers have proposed novel tools that
apply state-of-the-art information retrieval algorithms to retrieve relevant
code snippets from the local codebase. However, these tools still rely on the
developer to craft an effective query, which requires that the developer is
familiar with the terms contained in the related code snippets. Our empirical
data from a state-of-the-art local code search tool, called Sando, suggests that
developers are sometimes unacquainted with their local codebase. In order
to bridge the gap between developers and their ever-increasing local codebase,
in this paper we demonstrate the recommendation techniques integrated in Sando.
@InProceedings{CSMR-WCRE14p425,
author = {Xi Ge and David Shepherd and Kostadin Damevski and Emerson Murphy-Hill},
title = {How the Sando Search Tool Recommends Queries},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {425--428},
doi = {},
year = {2014},
}
Building Development Tools Interactively using the Ekeko Meta-Programming Library
Coen De Roover and Reinout Stevens
(Vrije Universiteit Brussel, Belgium)
Ekeko is a Clojure library for applicative logic meta-programming against an Eclipse workspace. Ekeko has been applied successfully to answering program queries (e.g., “does this bug pattern occur in my code?”), to analyzing project corpora (e.g., “how often does this API usage pattern occur in this corpus?”), and to transforming programs (e.g., “change occurrences of this pattern as follows”) in a declarative manner. These applications rely on a seamless embedding of logic queries in applicative expressions. While the former identify source code of interest, the latter associate error markers with, compute statistics about, or rewrite the identified source code snippets. In this paper, we detail the logic and applicative aspects of the Ekeko library. We also highlight key choices in their implementation. In particular, we demonstrate how a causal connection with the Eclipse infrastructure enables building development tools interactively on the Clojure read-eval-print loop.
@InProceedings{CSMR-WCRE14p429,
author = {Coen De Roover and Reinout Stevens},
title = {Building Development Tools Interactively using the Ekeko Meta-Programming Library},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {429--433},
doi = {},
year = {2014},
}
Bit-Error Injection for Software Developers
Marcel Heing-Becker, Timo Kamph, and
Sibylle Schupp
(Hamburg University of Technology, Germany)
This paper presents FITIn, a bit-error injection tool
designed for evaluating software-implemented hardware fault tol-
erance (SIHFT) mechanisms. Like most bit-error injection tools,
FITIn injects faults at run time into the binary of a program.
Unlike previous bit-error injection tools, FITIn allows a software
developer to control the targets of injection campaigns at the
level of a higher programming language rather than assembler.
FITIn is implemented as a Valgrind plugin and has been tested
for C programs. We present its architecture, demonstrate its
functioning using examples from three benchmarks (Dhrystone,
STAMP, and CoreMark), provide performance figures, and
discuss general limitations of the approach.
@InProceedings{CSMR-WCRE14p434,
author = {Marcel Heing-Becker and Timo Kamph and Sibylle Schupp},
title = {Bit-Error Injection for Software Developers},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {434--439},
doi = {},
year = {2014},
}
Video
Info
QualityGate SourceAudit: A Tool for Assessing the Technical Quality of Software
Tibor Bakota, Péter Hegedűs, István Siket, Gergely Ladányi, and
Rudolf Ferenc
(FrontEndART Software, Hungary; MTA-SZTE Research Group on Artificial Intelligence, Hungary; University of Szeged, Hungary)
Software systems are evolving continuously in order to fulfill the ever-changing business needs. This endless modification, however, decreases the internal quality of the system over time. This phenomena is called software erosion, which results in higher development, testing, and operational costs.
The SourceAudit tool presented in this paper helps managing the technical risks of software deterioration by allowing immediate, automatic, and objective assessment of software quality. By monitoring the high-level technical quality of systems it is possible to immediately perform the necessary steps needed to reduce the effects of software erosion, thus reaching higher maintainability and lower costs in the mid and long-term. The tool measures source code maintainability according to the ISO/IEC~25010 based probabilistic software maintainability model called ColumbusQM. It gives a holistic view on software quality and warns on source code maintainability decline.
@InProceedings{CSMR-WCRE14p440,
author = {Tibor Bakota and Péter Hegedűs and István Siket and Gergely Ladányi and Rudolf Ferenc},
title = {QualityGate SourceAudit: A Tool for Assessing the Technical Quality of Software},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {440--445},
doi = {},
year = {2014},
}
Tool Demonstrations 2
Follow the Path: Debugging Tools for Test-Driven Fault Navigation
Michael Perscheid and Robert Hirschfeld
(HPI, Germany)
Debugging failing test cases, particularly the search for failure causes, is often a laborious and time-consuming activity. Standard debugging tools such as symbolic debuggers and test runners hardly facilitate developers during this task because they neither provide advice to failure causes nor back-in-time capabilities.
In this paper, we present test-driven fault navigation as a debugging guide that integrates spectrum-based and state anomalies into execution histories in order to systematically trace failure causes back to defects. We describe and demonstrate our Path tools that implement our debugging method for the Squeak/Smalltalk development environment.
@InProceedings{CSMR-WCRE14p446,
author = {Michael Perscheid and Robert Hirschfeld},
title = {Follow the Path: Debugging Tools for Test-Driven Fault Navigation},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {446--449},
doi = {},
year = {2014},
}
Info
jModex: Model Extraction for Verifying Security Properties of Web Applications
Petru Florin Mihancea and Marius Minea
(Politehnica University of Timisoara, Romania; Institute e-Austria Timisoara, Romania)
Detecting security vulnerabilities in web applications is an important task before taking them on-line. We present jModex, a tool that analyzes the code of web applications to extract behavioral models. The security properties of these models can then be verified with a model checker.
An initial evaluation, in which a confirmed security flaw is identified using a model extracted by jModex, shows the tool potential.
@InProceedings{CSMR-WCRE14p450,
author = {Petru Florin Mihancea and Marius Minea},
title = {jModex: Model Extraction for Verifying Security Properties of Web Applications},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {450--453},
doi = {},
year = {2014},
}
PHP AiR: Analyzing PHP Systems with Rascal
Mark Hills and Paul Klint
(East Carolina University, USA; CWI, Netherlands; INRIA, France)
PHP is currently one of the most popular programming languages, widely used in both the open source community and in industry to build large web-focused applications and application frameworks. To provide a solid framework for working with large PHP systems in areas such as evaluating how language features are used, studying how PHP systems evolve, program analysis for refactoring and security validation, and software metrics, we have developed PHP AiR, a framework for PHP Analysis in Rascal. Here we briefly describe features available in PHP AiR, integration with the Eclipse PHP Development Tools, and usage scenarios in program analysis, metrics, and empirical software engineering.
@InProceedings{CSMR-WCRE14p454,
author = {Mark Hills and Paul Klint},
title = {PHP AiR: Analyzing PHP Systems with Rascal},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {454--457},
doi = {},
year = {2014},
}
Info
Mc2for Demo: A Tool for Automatically Translating Matlab to Fortran 95
Xu Li and Laurie Hendren
(McGill University, Canada)
MATLAB is a dynamic numerical scripting language widely used by scientists,
engineers and students. While MATLAB's high-level syntax and dynamic types
makes it ideal for prototyping, programmers often prefer using high-performance
static languages such as Fortran for their final distributable
code. Rather than requiring programmers to rewrite their code by hand, our
solution is to provide a tool that automatically translates the original
MATLAB program to an equivalent Fortran program. There are several important
challenges for automatically translating MATLAB to Fortran, such as correctly
estimating the static type characteristics of all the variables in a MATLAB
program, mapping MATLAB built-in functions, and effectively mapping MATLAB
constructs to Fortran constructs.
In this tool demonstration, we introduce the tool Mc2For, a mature
prototype which automatically translates MATLAB programs to Fortran.
This tool takes as input a MATLAB entry point function file of a
program with corresponding information of its input parameters, then
automatically finds all functions reachable directly or indirectly from
the entry point, loads the necessary files, and translates all the
reachable MATLAB functions to equivalent Fortran. The output of the
tool is a collection of Fortran function files, which can be compiled
with any Fortran 95-compliant compiler. Mc2For is open source, and has
been implemented in Java using the McLab framework, which means that the
tool runs on any system supporting Java.
@InProceedings{CSMR-WCRE14p458,
author = {Xu Li and Laurie Hendren},
title = {Mc2for Demo: A Tool for Automatically Translating Matlab to Fortran 95},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {458--463},
doi = {},
year = {2014},
}
Dahlia: A Visual Analyzer of Database Schema Evolution
Loup Meurice and
Anthony Cleve
(University of Namur, Belgium)
In a continuously changing environment, software evolution becomes an unavoidable activity. The mining software repositories (MSR) field studies the valuable data available in software repositories such as source code version-control systems, issue/bug-tracking systems, or communication archives. In recent years, many researchers have used MSR techniques as a way to support software understanding and evolution. While many software systems are data-intensive, i.e., their central artifact is a database, little attention has been devoted to the analysis of this important system component in the context of software evolution.
The goal of our work is to reduce this gap by considering the database evolution history as an additional information source to
aid software evolution. We present DAHLIA (Database ScHema EvoLutIon Analysis), a visual analyzer of database schema evolution. Our tool mines the database schema evolution history from the software repository and allows its interactive, visual analysis. We describe DAHLIA and present our novel approach supporting data-intensive software evolution.
@InProceedings{CSMR-WCRE14p464,
author = {Loup Meurice and Anthony Cleve},
title = {Dahlia: A Visual Analyzer of Database Schema Evolution},
booktitle = {Proc.\ CSMR-WCRE},
publisher = {IEEE},
pages = {464--468},
doi = {},
year = {2014},
}
proc time: 0.25