ICPC 2018
Sun 27 - Mon 28 May 2018 Gothenburg, Sweden
co-located with * ICSE 2018 *
Mon 28 May 2018 16:27 - 16:37 at J1 room - Readibility, Features and APIs Chair(s): Yoshiki Higo

CodeCompass is an open source LLVM/Clang based tool developed by Ericsson Ltd. and the Eötvös Loránd University, Budapest to help understanding large legacy software systems. Based on the LLVM/Clang compiler infrastructure, CodeCompass gives exact information on complex C/C++ language elements like overloading, inheritance, the usage of variables and types, possible uses of function pointers and the virtual functions – features that various existing tools support only partially. Steensgaard’s and Andersen’s pointer analysis algorithm are used to compute and visualize the use of pointers/references. The wide range of interactive visualizations extends further than the usual class and function call diagrams; architectural, component and interface diagrams are a few of the implemented graphs. To make comprehension more extensive, CodeCompass is not restricted to the source code. It also utilizes build information to explore the system architecture as well as version control information e.g. git commit history and blame view. Clang based static analysis results are also integrated to CodeCompass. Although the tool focuses mainly on C and C++, it also supports Java and Python languages. In this demo we will simulate a typical bug-fixing work flow in a C++ system. First, we show, how to use the combined text and definition based search for a fast feature location. Here we also demonstrate our log search, which can be used to locate the code source of an emitted message. When we have an approximate location of the issue, we can start a detailed investigation understanding the class relationships, function call chains (including virtual calls, and calls via function pointers), and the read/write events on individual variables. We also visualize the pointer relationships. To make the comprehension complete, we check the version control information who committed the code, when and why. This Tool demo submission is complementing our Industry track submission with the similar title. A live demo is also available at the homepage of the tool https://github.com/ericsson/codecompass.

Mon 28 May

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

16:00 - 17:30
Readibility, Features and APIsTechnical Research at J1 room
Chair(s): Yoshiki Higo Osaka University
16:00
17m
Full-paper
Impacts of Coding Practices on ReadabilityTechnical Research
Technical Research
Rodrigo Santos IPT-SP, Marco Gerosa Northern Arizona University
Pre-print
16:17
10m
Short-paper
An Empirical Investigation on the Readability of Manual and Generated Test CasesERA
Technical Research
Giovanni Grano University of Zurich, Simone Scalabrino University of Molise, Harald Gall University of Zurich, Rocco Oliveto University of Molise
Pre-print
16:27
10m
Short-paper
The CodeCompass Comprehension FrameworkTool Demo
Technical Research
Zoltan Porkolab Eotvos Lorond University, Dániel Krupp Ericsson Ltd, Tibor Brunner Ericsson Hungary, Marton Csordas Ericsson Hungary
Link to publication DOI Pre-print
16:37
17m
Full-paper
The Effect of Poor Source Code Lexicon and Readability on Developers' Cognitive LoadTechnical Research
Technical Research
Sarah Fakhoury Washington State University, Yuzhan Ma Washington State University Pullman, Venera Arnaoudova Washington State University Pullman, Olusola Adesope Washington State University
DOI Pre-print
16:54
17m
Full-paper
Assessing an Architecture's Ability to Support Feature EvolutionTechnical Research
Technical Research
Ran Mo Drexel University, Yuanfang Cai Drexel University, Rick Kazman University of Hawai‘i at Mānoa, Qiong Feng Drexel University
17:11
10m
Industry talk
Leveraging the Agile Development Process for Selecting Invoking/Excluding Tests to Support Feature LocationIndustry Track
Technical Research
Gregory S. DeLozier , Michael J. Decker Bowling Green State University, Christian D. Newman Rochester Institute of Technology, Jonathan I. Maletic Kent State University