Write a Blog >>
SPLASH 2017
Sun 22 - Fri 27 October 2017 Vancouver, Canada
Sun 22 Oct 2017 16:15 - 17:00 at Prince of Wales - Session 4

To design and implement a program, programmers choose analogies and metaphors to explain and understand programmatic concepts. In source code, they manifest themselves as a particular choice of names. During program comprehension, reading such names is an important starting point to understand the meaning of modules and guide the exploration process.

On the one hand, understanding a program in depth by looking for names that suggest a particular analogy can be a time-consuming process. On the other hand, a lack of awareness which concepts are present and which analogies have been chosen can lead to modularity issues, such as redundancy and architectural drift if concepts are misaligned with respect to the current module decomposition.

In this work-in-progress paper, we propose to integrate first-class concepts into the programming environment. We assign meaning to names by labeling them with a color corresponding to the metaphor or analogy this name was derived from. We hypothesize that aggregating labels upwards along the module hierarchy helps to understand how concepts are distributed across the program, collecting names belonging to a specific concept helps programmers to recognize which metaphor has been chosen, and presenting relations between concepts can summarize complex interactions between program parts. We argue that continuous feedback and awareness of how names are grouped into concepts and where they are located can help preventing modularity issues and ease program comprehension.

As a first step towards an implementation, we define criteria that help to detect names belonging to the same concept. We then investigate how different topic models from natural language processing can be re-used and modified to compute an initial concept allocation with respect to these criteria. Eventually, we show design sketches how we plan to arrange and present concepts to programmers through tools, and what kind of information they can provide to help programmers make informed implementation decisions.

Sun 22 Oct

Displayed time zone: Tijuana, Baja California change

15:30 - 17:00
15:30
45m
Talk
The Entangled Strands of Time in Software Development
PX/17.2
Matthias Hauswirth Università della Svizzera italiana (USI), Mohammad Reza Azadmanesh University of Lugano
Pre-print
16:15
45m
Talk
Towards Concept-aware Programming Environments for Guiding Software Modularity
PX/17.2
Toni Mattis Hasso Plattner Institute, Patrick Rein Hasso Plattner Institute, Stefan Ramson Hasso Plattner Institute, Potsdam, Jens Lincke Hasso Plattner Institute, Robert Hirschfeld HPI
Pre-print