Program Comprehension

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 5301 Experts worldwide ranked by ideXlab platform

Mark Harman - One of the best experts on this subject based on the ideXlab platform.

  • Search Based Software Engineering for Program Comprehension
    15th IEEE International Conference on Program Comprehension (ICPC '07), 2007
    Co-Authors: Mark Harman
    Abstract:

    Search based software engineering (SBSE) is an approach to software engineering in which search based optimization algorithms are used to identify optimal or near optimal solutions and to yield insight. SBSE techniques can cater for multiple, possibly competing objectives and/or constraints and applications where the potential solution space is large and complex. Such situations are common in software engineering, leading to an increasing interest in SBSE. This paper provides a brief overview of SBSE, explaining some of the ways in which it has already been applied to Program-Comprehension related activities. The paper also outlines some possible future applications of and challenges for the further application of SBSE to Program Comprehension.

  • ICPC - Search Based Software Engineering for Program Comprehension
    15th IEEE International Conference on Program Comprehension (ICPC '07), 2007
    Co-Authors: Mark Harman
    Abstract:

    Search based software engineering (SBSE) is an approach to software engineering in which search based optimization algorithms are used to identify optimal or near optimal solutions and to yield insight. SBSE techniques can cater for multiple, possibly competing objectives and/or constraints and applications where the potential solution space is large and complex. Such situations are common in software engineering, leading to an increasing interest in SBSE. This paper provides a brief overview of SBSE, explaining some of the ways in which it has already been applied to Program-Comprehension related activities. The paper also outlines some possible future applications of and challenges for the further application of SBSE to Program Comprehension.

Janet Siegmund - One of the best experts on this subject based on the ideXlab platform.

  • Measuring Program Comprehension with fMRI.
    Softwaretechnik-trends, 2020
    Co-Authors: Janet Siegmund
    Abstract:

    Software development is in essence a human-centered activity, because humans design, implement, and maintain software. Thus, the human factor plays an important role in software engineering. One of the major activities during the entire softwaredevelopment cycle is Program Comprehension: Developers spend most of their time with comprehending source code [14]. Thus, if we can support developers in Program Comprehension, we can reduce time and cost of software development. To improve Program Comprehension, for example, by tools or Programming languages, we need to measure it reliably—otherwise, we cannot know how or why tools or Programming languages affect Program Comprehension. However, Program Comprehension is an internal cognitive process that inherently eludes measurement.

  • Software Engineering - Experience from Measuring Program Comprehension - Toward a General Framework.
    2020
    Co-Authors: Janet Siegmund, Sven Apel, Christian Kästner, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension plays a crucial role during the software-development life cycle: Maintenance Programmers spend most of their time with comprehending source code, and maintenance is the main cost factor in software development. Thus, if we can improve Program Comprehension, we can save considerable amount of time and cost. To improve Program Comprehension, we have to measure it first. However, Program Comprehension is a complex, internal cognitive process that we cannot observe directly. Typically, we need to conduct controlled experiments to soundly measure Program Comprehension. However, empirical research is applied only reluctantly in software engineering. To close this gap, we set out to support researchers in planning and conducting experiments regarding Program Comprehension. We report our experience with experiments that we conducted and present the resulting framework to support researchers in planning and conducting experiments. Additionally, we discuss the role of teaching for the empirical researchers of tomorrow.

  • CodersMUSE: Multi-Modal Data Exploration of Program-Comprehension Experiments
    2019 IEEE ACM 27th International Conference on Program Comprehension (ICPC), 2019
    Co-Authors: Norman Peitek, Sven Apel, André Brechmann, Chris Parnin, Janet Siegmund
    Abstract:

    Program Comprehension is a central cognitive process in Programming. It has been in the focus of researchers for decades, but is still not thoroughly unraveled. Multi-modal psycho-physiological and neurobiological measurement methods have proved successful to gain a more holistic understanding of Program Comprehension. However, there is no proper tool support that lets researchers explore synchronized, conjoint multi-modal data, specifically designed for the needs in Program-Comprehension research. In this paper, we present CodersMUSE, a prototype implementation that aims to satisfy this crucial need.

  • ICPC - CodersMUSE: multi-modal data exploration of Program-Comprehension experiments
    2019 IEEE ACM 27th International Conference on Program Comprehension (ICPC), 2019
    Co-Authors: Norman Peitek, Sven Apel, André Brechmann, Chris Parnin, Janet Siegmund
    Abstract:

    Program Comprehension is a central cognitive process in Programming. It has been in the focus of researchers for decades, but is still not thoroughly unraveled. Multi-modal psycho-physiological and neurobiological measurement methods have proved successful to gain a more holistic understanding of Program Comprehension. However, there is no proper tool support that lets researchers explore synchronized, conjoint multi-modal data, specifically designed for the needs in Program-Comprehension research. In this paper, we present CodersMUSE, a prototype implementation that aims to satisfy this crucial need.

  • Comprehending Studies on Program Comprehension
    2017 IEEE ACM 25th International Conference on Program Comprehension (ICPC), 2017
    Co-Authors: Ivonne Schröter, Jacob Krüger, Janet Siegmund, Thomas Leich
    Abstract:

    Program Comprehension is an important aspect of developing and maintaining software, as Programmers spend most of their time comprehending source code. Thus, it is the focus of many studies and experiments to evaluate approaches and techniques that aim to improve Program Comprehension. As the amount of corresponding work increases, the question arises how researchers address Program Comprehension. To answer this question, we conducted a literature review of papers published at the International Conference on Program Comprehension, the major venue for research on Program Comprehension. In this article, we i) present preliminary results of the literature review and ii) derive further research directions. The results indicate the necessity for a more detailed analysis of Program Comprehension and empirical research.

Christian Kästner - One of the best experts on this subject based on the ideXlab platform.

  • Software Engineering - Experience from Measuring Program Comprehension - Toward a General Framework.
    2020
    Co-Authors: Janet Siegmund, Sven Apel, Christian Kästner, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension plays a crucial role during the software-development life cycle: Maintenance Programmers spend most of their time with comprehending source code, and maintenance is the main cost factor in software development. Thus, if we can improve Program Comprehension, we can save considerable amount of time and cost. To improve Program Comprehension, we have to measure it first. However, Program Comprehension is a complex, internal cognitive process that we cannot observe directly. Typically, we need to conduct controlled experiments to soundly measure Program Comprehension. However, empirical research is applied only reluctantly in software engineering. To close this gap, we set out to support researchers in planning and conducting experiments regarding Program Comprehension. We report our experience with experiments that we conducted and present the resulting framework to support researchers in planning and conducting experiments. Additionally, we discuss the role of teaching for the empirical researchers of tomorrow.

  • Do background colors improve Program Comprehension in the #ifdef hell?
    Empirical Software Engineering, 2013
    Co-Authors: Janet Feigenspan, Jörg Liebig, Raimund Dachselt, Maria Papendieck, Sven Apel, Michael Schulze, Christian Kästner, Thomas Leich, Gunter Saake
    Abstract:

    Software-product-line engineering aims at the development of variable and reusable software systems. In practice, software product lines are often implemented with preprocessors. Preprocessor directives are easy to use, and many mature tools are available for practitioners. However, preprocessor directives have been heavily criticized in academia and even referred to as “#ifdef hell”, because they introduce threats to Program Comprehension and correctness. There are many voices that suggest to use other implementation techniques instead, but these voices ignore the fact that a transition from preprocessors to other languages and tools is tedious, erroneous, and expensive in practice. Instead, we and others propose to increase the readability of preprocessor directives by using background colors to highlight source code annotated with ifdef directives . In three controlled experiments with over 70 subjects in total, we evaluate whether and how background colors improve Program Comprehension in preprocessor-based implementations. Our results demonstrate that background colors have the potential to improve Program Comprehension, independently of size and Programming language of the underlying product. Additionally, we found that subjects generally favor background colors. We integrate these and other findings in a tool called FeatureCommander, which facilitates Program Comprehension in practice and which can serve as a basis for further research.

  • toward measuring Program Comprehension with functional magnetic resonance imaging
    Foundations of Software Engineering, 2012
    Co-Authors: Janet Siegmund, Jörg Liebig, Sven Apel, Christian Kästner, Thomas Leich, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension is an often evaluated, internal cognitive process. In neuroscience, functional magnetic resonance imaging (fMRI) is used to visualize such internal cognitive processes. We propose an experimental design to measure Program Comprehension based on fMRI. In the long run, we hope to answer questions like What distinguishes good Programmers from bad Programmers? or What makes a good Programmer?

  • SIGSOFT FSE - Toward measuring Program Comprehension with functional magnetic resonance imaging
    Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering - FSE '12, 2012
    Co-Authors: Janet Siegmund, Jörg Liebig, Sven Apel, Christian Kästner, Thomas Leich, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension is an often evaluated, internal cognitive process. In neuroscience, functional magnetic resonance imaging (fMRI) is used to visualize such internal cognitive processes. We propose an experimental design to measure Program Comprehension based on fMRI. In the long run, we hope to answer questions like What distinguishes good Programmers from bad Programmers? or What makes a good Programmer?

  • ESEM - Exploring Software Measures to Assess Program Comprehension
    2011 International Symposium on Empirical Software Engineering and Measurement, 2011
    Co-Authors: Janet Feigenspan, Jörg Liebig, Sven Apel, Christian Kästner
    Abstract:

    Software measures are often used to assess Program Comprehension, although their applicability is discussed controversially. Often, their application is based on plausibility arguments, which, however, is not sufficient to decide whether software measures are good predictors for Program Comprehension. Our goal is to evaluate whether and how software measures and Program Comprehension correlate. To this end, we carefully designed an experiment. We used four different measures that are often used to judge the quality of source code: complexity, lines of code, concern attributes, and concern operations. We measured how subjects understood two comparable software systems that differ in their implementation, such that one implementation promised considerable benefits in terms of better software measures. We did not observe a difference in Program Comprehension of our subjects as the software measures suggested it. To explore how software measures and Program Comprehension could correlate, we used several variants of computing the software measures. This brought them closer to our observed result, however, not as close as to confirm a relationship between software measures and Program Comprehension. Having failed to establish a relationship, we present our findings as an open issue to the community and initiate a discussion on the role of software measures as comprehensibility predictors.

Sven Apel - One of the best experts on this subject based on the ideXlab platform.

  • Software Engineering - Experience from Measuring Program Comprehension - Toward a General Framework.
    2020
    Co-Authors: Janet Siegmund, Sven Apel, Christian Kästner, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension plays a crucial role during the software-development life cycle: Maintenance Programmers spend most of their time with comprehending source code, and maintenance is the main cost factor in software development. Thus, if we can improve Program Comprehension, we can save considerable amount of time and cost. To improve Program Comprehension, we have to measure it first. However, Program Comprehension is a complex, internal cognitive process that we cannot observe directly. Typically, we need to conduct controlled experiments to soundly measure Program Comprehension. However, empirical research is applied only reluctantly in software engineering. To close this gap, we set out to support researchers in planning and conducting experiments regarding Program Comprehension. We report our experience with experiments that we conducted and present the resulting framework to support researchers in planning and conducting experiments. Additionally, we discuss the role of teaching for the empirical researchers of tomorrow.

  • CodersMUSE: Multi-Modal Data Exploration of Program-Comprehension Experiments
    2019 IEEE ACM 27th International Conference on Program Comprehension (ICPC), 2019
    Co-Authors: Norman Peitek, Sven Apel, André Brechmann, Chris Parnin, Janet Siegmund
    Abstract:

    Program Comprehension is a central cognitive process in Programming. It has been in the focus of researchers for decades, but is still not thoroughly unraveled. Multi-modal psycho-physiological and neurobiological measurement methods have proved successful to gain a more holistic understanding of Program Comprehension. However, there is no proper tool support that lets researchers explore synchronized, conjoint multi-modal data, specifically designed for the needs in Program-Comprehension research. In this paper, we present CodersMUSE, a prototype implementation that aims to satisfy this crucial need.

  • ICPC - CodersMUSE: multi-modal data exploration of Program-Comprehension experiments
    2019 IEEE ACM 27th International Conference on Program Comprehension (ICPC), 2019
    Co-Authors: Norman Peitek, Sven Apel, André Brechmann, Chris Parnin, Janet Siegmund
    Abstract:

    Program Comprehension is a central cognitive process in Programming. It has been in the focus of researchers for decades, but is still not thoroughly unraveled. Multi-modal psycho-physiological and neurobiological measurement methods have proved successful to gain a more holistic understanding of Program Comprehension. However, there is no proper tool support that lets researchers explore synchronized, conjoint multi-modal data, specifically designed for the needs in Program-Comprehension research. In this paper, we present CodersMUSE, a prototype implementation that aims to satisfy this crucial need.

  • Do background colors improve Program Comprehension in the #ifdef hell?
    Empirical Software Engineering, 2013
    Co-Authors: Janet Feigenspan, Jörg Liebig, Raimund Dachselt, Maria Papendieck, Sven Apel, Michael Schulze, Christian Kästner, Thomas Leich, Gunter Saake
    Abstract:

    Software-product-line engineering aims at the development of variable and reusable software systems. In practice, software product lines are often implemented with preprocessors. Preprocessor directives are easy to use, and many mature tools are available for practitioners. However, preprocessor directives have been heavily criticized in academia and even referred to as “#ifdef hell”, because they introduce threats to Program Comprehension and correctness. There are many voices that suggest to use other implementation techniques instead, but these voices ignore the fact that a transition from preprocessors to other languages and tools is tedious, erroneous, and expensive in practice. Instead, we and others propose to increase the readability of preprocessor directives by using background colors to highlight source code annotated with ifdef directives . In three controlled experiments with over 70 subjects in total, we evaluate whether and how background colors improve Program Comprehension in preprocessor-based implementations. Our results demonstrate that background colors have the potential to improve Program Comprehension, independently of size and Programming language of the underlying product. Additionally, we found that subjects generally favor background colors. We integrate these and other findings in a tool called FeatureCommander, which facilitates Program Comprehension in practice and which can serve as a basis for further research.

  • toward measuring Program Comprehension with functional magnetic resonance imaging
    Foundations of Software Engineering, 2012
    Co-Authors: Janet Siegmund, Jörg Liebig, Sven Apel, Christian Kästner, Thomas Leich, André Brechmann, Gunter Saake
    Abstract:

    Program Comprehension is an often evaluated, internal cognitive process. In neuroscience, functional magnetic resonance imaging (fMRI) is used to visualize such internal cognitive processes. We propose an experimental design to measure Program Comprehension based on fMRI. In the long run, we hope to answer questions like What distinguishes good Programmers from bad Programmers? or What makes a good Programmer?

Yann-gaël Guéhéneuc - One of the best experts on this subject based on the ideXlab platform.

  • A Theory of Program Comprehension
    Software and Intelligent Sciences, 2020
    Co-Authors: Yann-gaël Guéhéneuc
    Abstract:

    There exists an extensive literature on vision science, on the one hand, and on Program Comprehension, on the other hand. However, these two domains of research have been so far rather disjoint. Indeed, several cognitive theories have been proposed to explain Program Comprehension. These theories explain the processes taking place in the software engineers’ minds when they understand Programs. They explain how software engineers process available information to perform their tasks but not how software engineers acquire this information. Vision science provides explanations on the processes used by people to acquire visual information from their environment. Joining vision science and Program Comprehension provides a more comprehensive theoretical framework to explain facts on Program Comprehension, to predict new facts, and to frame experiments. We join theories in vision science and in Program Comprehension; the resulting theory is consistent with facts on Program Comprehension and helps in predicting new facts, in devising experiments, and in putting certain Program Comprehension concepts in perspective.

  • Working session: Using eye-tracking to understand Program Comprehension
    2009 IEEE 17th International Conference on Program Comprehension, 2009
    Co-Authors: Yann-gaël Guéhéneuc, Huzefa Kagdi, Jonathan I. Maletic
    Abstract:

    The working session focuses on the use of eye-tracking technology to assess, understand, and evaluate tools and techniques for Program Comprehension. An introduction to the technology and tools of eye-tracking will be presented. A discussion of how these tools augment existing evaluation mechanism in the context of Program Comprehension will follow. Research directions and open problems will be a main topic.

  • ICPC - Working session: Using eye-tracking to understand Program Comprehension
    2009 IEEE 17th International Conference on Program Comprehension, 2009
    Co-Authors: Yann-gaël Guéhéneuc, Huzefa Kagdi, Jonathan I. Maletic
    Abstract:

    The working session focuses on the use of eye-tracking technology to assess, understand, and evaluate tools and techniques for Program Comprehension. An introduction to the technology and tools of eye-tracking will be presented. A discussion of how these tools augment existing evaluation mechanism in the context of Program Comprehension will follow. Research directions and open problems will be a main topic.

  • taupe towards understanding Program Comprehension
    Conference of the Centre for Advanced Studies on Collaborative Research, 2006
    Co-Authors: Yann-gaël Guéhéneuc
    Abstract:

    Program Comprehension is a very important activity during the development and the maintenance of Programs. This activity has been actively studied in the past decades to present software engineers with the most accurate and---hopefully---most useful pieces of information on the organisation, algorithms, executions, evolution, and documentation of a Program. Yet, only few work tried to understand concretely how software engineers obtain and use this information. Software engineers mainly use sight to obtain information about a Program, usually from source code or class diagrams. Therefore, we use eye-tracking to collect data about the use of class diagrams by software engineers during Program Comprehension. We introduce a new visualisation technique to aggregate and to present the collected data. We also report the results and surprising insights gained from two case studies.

  • CASCON - TAUPE: towards understanding Program Comprehension
    Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research - CASCON '06, 2006
    Co-Authors: Yann-gaël Guéhéneuc
    Abstract:

    Program Comprehension is a very important activity during the development and the maintenance of Programs. This activity has been actively studied in the past decades to present software engineers with the most accurate and---hopefully---most useful pieces of information on the organisation, algorithms, executions, evolution, and documentation of a Program. Yet, only few work tried to understand concretely how software engineers obtain and use this information. Software engineers mainly use sight to obtain information about a Program, usually from source code or class diagrams. Therefore, we use eye-tracking to collect data about the use of class diagrams by software engineers during Program Comprehension. We introduce a new visualisation technique to aggregate and to present the collected data. We also report the results and surprising insights gained from two case studies.