338,627 research outputs found
Overcoming Language Dichotomies: Toward Effective Program Comprehension for Mobile App Development
Mobile devices and platforms have become an established target for modern
software developers due to performant hardware and a large and growing user
base numbering in the billions. Despite their popularity, the software
development process for mobile apps comes with a set of unique, domain-specific
challenges rooted in program comprehension. Many of these challenges stem from
developer difficulties in reasoning about different representations of a
program, a phenomenon we define as a "language dichotomy". In this paper, we
reflect upon the various language dichotomies that contribute to open problems
in program comprehension and development for mobile apps. Furthermore, to help
guide the research community towards effective solutions for these problems, we
provide a roadmap of directions for future work.Comment: Invited Keynote Paper for the 26th IEEE/ACM International Conference
on Program Comprehension (ICPC'18
Software visualisation for object-oriented program comprehension
Software visualisation is the process of modelling software systems for comprehension. The comprehension of software systems both during and after development is a crucial component of the software process. The complex interactions inherent in the object-oriented paradigm make visualisation a particularly appropriate comprehension technique, and the large volume of information typically generated during visualisation necessitates tool support
Empirical Research Plan: Effects of Sketching on Program Comprehension
Sketching is an important means of communication in software engineering
practice. Yet, there is little research investigating the use of sketches. We
want to contribute a better understanding of sketching, in particular its use
during program comprehension. We propose a controlled experiment to investigate
the effectiveness and efficiency of program comprehension with the support of
sketches as well as what sketches are used in what way.Comment: 5 pages, 0 figures, Proc. International Conference on Agile Software
Development (XP'16). Volume 251 of the book series Lecture Notes in Business
Information Processing (LNBIP). Springer, 201
The Stores Model of Code Cognition
Program comprehension is perhaps one of the oldest topics within the psychology of programming. It addresses a central issue: how programmers work with and manipulate source code to construct effective software systems. Models can play an important role in understanding the challenges developers and engineers contend with. This paper presents a model of program comprehension, or code cognition, which has been derived from literature found within the disciplines of computing and psychology. Drawing on direct experimentation, this paper argues that a model of code cognition should take account of the visual, spatial and linguistic abilities of developers. The strengths and weaknesses of this model are discussed and further research directions presented
Multilingual investigation of theory-based intervention for program comprehension
This thesis is the continuation of an experiment called “Eye-movement Modeling Examples in
Source Code Comprehension: A Classroom Study”. This first experiment studies how effective is
showing novice programmers how experts read code with a video with the expert’s gaze guided
by a verbal explanation. Therefore, this thesis studies, using a similar experiment, whether only
verbal explanation and visual stimuli without the expert’s gaze could be also helpful for the
programming novices.Grado en IngenierĂa Informática de Servicios y Aplicacione
A post-placement side-effect removal algorithm
Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program. This creates a program which is semantically equivalent to the original but guaranteed to be free from side-effects. The paper also reports the results of an empirical study which demonstrates that the application of the algorithm causes a significant improvement in program comprehension
- …