Janet Siegmund

dblp:88/7055 · also Janet Feigenspan · DBLP profile ↗
← Back
49ranked-venue papers
16as first author
10since 2021 · last 2026
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 47 · 16 first-author · 9 since 2021Human-computer interaction and ubiquitous computing · 2 · 1 since 2021Artificial intelligence and machine learning · 1Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2026 On the Influence of the Baseline in Neuroimaging Experiments on Program Comprehension
abstract
Background : Neuroimaging methods have been proved insightful in program-comprehension research. A key problem is that different baselines have been used in different experiments. A baseline is a task during which the “normal” brain activation is captured as a reference compared to the task of interest. Unfortunately, the influence of the choice of the baseline is still unclear. Aims : We investigate whether and to what extent the selected baseline influences the results of neuroimaging experiments on program comprehension. This helps to understand the tradeoffs in baseline selection with the ultimate goal of making the baseline selection informed and transparent. Method : We have conducted a pre-registered program-comprehension study with 20 participants using multiple baselines (i.e., reading, calculations, problem solving, and cross-fixation). We monitored brain activation with a 64-channel electroencephalography (EEG) device. We compared how the different baselines affect the results regarding brain activation of program comprehension. Results and Implications : We found significant differences in mental load across baselines suggesting that selecting a suitable baseline is critical. Our results show that a standard problem-solving task, operationalized by the Raven-Progressive Matrices, is a well-suited default baseline for program-comprehension studies. Our results highlight the need for carefully designing and selecting a baseline in program-comprehension studies.
Annabelle Bergum, Norman Peitek, Maurice Rekrut, Janet Siegmund, Sven Apel
ACM Trans. Softw. Eng. Methodol.4
2025 Knowledge Transfer and False Friends: Insights on Transitioning from C to Java
abstract
Background: When acquiring new programming languages, learners typically transfer their knowledge from previous languages to the new one. Recent studies demonstrate that this transfer is similar to the process of learning a second language, so learning can be more efficient, but also interference can take place, similar to false friends. While these studies demonstrate the existence of transfer, they have focused on programming languages with rather larger differences, such as Python versus Java. Objective: Our goal is to understand how students transfer between two similar programming languages, that is, from$\mathbf{C}$to Java, adding a different angle to how transfer takes place. Method and Results: To this end, we gave students a Java comprehension test in the first week of a CS2 course, after they have completed a CS1 course based on C. We could confirm that students transfer knowledge from$\mathbf{C}$to Java, including false friends. We repeated this study a year later, but included a dedicated Java tutorial before conducting the Java comprehension test. With these explicit instructions, students experienced less interference when learning Java, demonstrating that they profit from being made explicitly aware of the syntactical intricacies of Java. However, we also observed persistent interference for some concepts, indicating the need for more in-depth instructions.
Yifan Du 0005, Belinda Schantong, Janet Siegmund
CSEE&T3
2025 "Ok Pal, we have to code that now": interaction patterns of programming beginners with a conversational chatbot
Alina Mailach, Dominik Gorgosch, Norbert Siegmund, Janet Siegmund
Empir. Softw. Eng.4
2025 Toward a theory on programmer's block inspired by writer's block
abstract
Abstract Context Programmer’s block, akin to writer’s block, is a phenomenon where capable programmers struggle to create code. Despite anecdotal evidence, no scientific studies have explored the relationship between programmer’s block and writer’s block. Objective The primary objective of this study is to study the presence of blocks during programming and their potential causes. Method We conducted semi-structured interviews with experienced programmers to capture their processes, the problems they face, and potential causes. Subsequently, we analyzed the responses through the lens of writing. Results We found that among the programmer’s problems during programming, several display strong similarities to writer’s block. Moreover, when investigating possible causes of such blocks, we found a strong relationship between programming and writing activities as well as typical writing strategies employed by programmers. Conclusions Strong similarities between programming and writing challenges, processes, and strategies confirm the existence of programmer’s block with similar causes to writer’s block. Thus, strategies from writing used to resolve blocks should be applicable in programming, helping developers to overcome phases of being stuck. Research at the intersection of both areas could lead to productivity gains through reduced developer downtimes.
Belinda Schantong, Norbert Siegmund, Janet Siegmund
Empir. Softw. Eng.3
2025 Understanding the low inter-rater agreement on aggressiveness on the Linux Kernel Mailing List
abstract
Communication among software developers plays an essential role in open-source software (OSS) projects. Not unexpectedly, previous studies have shown that the conversational tone and, in particular, aggressiveness influence the participation of developers in OSS projects. Therefore, we aimed at studying aggressive communication behavior on the Linux Kernel Mailing List (LKML), which is known for aggressive e-mails of some of its contributors. To that aim, we attempted to assess the extent of aggressiveness of 720 e-mails from the LKML with a human annotation study, involving multiple annotators, to select a suitable sentiment analysis tool. The results of our annotation study revealed that there is substantial disagreement, even among humans, which uncovers a deeper methodological challenge of studying aggressiveness in the software-engineering domain. Adjusting our focus, we dug deeper and investigated why the agreement among humans is generally low, based on manual investigations of ambiguously rated e-mails. Our results illustrate that human perception is individual and context dependent, especially when it comes to technical content. Thus, when identifying aggressiveness in software-engineering texts, it is not sufficient to rely on aggregated measures of human annotations. Hence, sentiment analysis tools specifically trained on human-annotated data do not necessarily match human perception of aggressiveness, and corresponding results need to be taken with a grain of salt. By reporting our results and experience, we aim at confirming and raising additional awareness of this methodological challenge when studying aggressiveness (and sentiment, in general) in the software-engineering domain.
Thomas Bock 0002, Niklas Schneider, Angelika Schmid, Sven Apel, Janet Siegmund
J. Syst. Softw.5
2023 Hierarchical and Hybrid Organizational Structures in Open-source Software Projects: A Longitudinal Study
abstract
Despite the absence of a formal process and a central command-and-control structure, developer organization in open-source software (OSS) projects are far from being a purely random process. Prior work indicates that, over time, highly successful OSS projects develop a hybrid organizational structure that comprises a hierarchical part and a non-hierarchical part. This suggests that hierarchical organization is not necessarily a global organizing principle and that a fundamentally different principle is at play below the lowest positions in the hierarchy. Given the vast proportion of developers are in the non-hierarchical part, we seek to understand the interplay between these two fundamentally differently organized groups, how this hybrid structure evolves, and the trajectory individual developers take through these structures over the course of their participation. We conducted a longitudinal study of the full histories of 20 popular OSS projects, modeling their organizational structures as networks of developers connected by communication ties and characterizing developers’ positions in terms of hierarchical (sub)structures in these networks. We observed a number of notable trends and patterns in the subject projects: (1) hierarchy is a pervasive structural feature of developer networks of OSS projects; (2) OSS projects tend to form hybrid organizational structures, consisting of a hierarchical and a non-hierarchical part; and (3) the positional trajectory of a developer starts loosely connected in the non-hierarchical part and then tightly integrate into the hierarchical part, which is associated with the acquisition of experience (tenure), in addition to coordination and coding activities. Our study (a) provides a methodological basis for further investigations of hierarchy formation, (b) suggests a number of hypotheses on prevalent organizational patterns and trends in OSS projects to be addressed in further work, and (c) may ultimately guide the governance of organizational structures.
Mitchell Joblin, Barbara Eckl, Thomas Bock 0002, Angelika Schmid, Janet Siegmund, Sven Apel
ACM Trans. Softw. Eng. Methodol.5
2022 Correlates of programmer efficacy and their link to experience: a combined EEG and eye-tracking study
abstract
Background: Despite similar education and background, programmers can exhibit vast differences in efficacy. While research has identified some potential factors, such as programming experience and domain knowledge, the effect of these factors on programmers' efficacy is not well understood. Aims: We aim at unraveling the relationship between efficacy (speed and correctness) and measures of programming experience. We further investigate the correlates of programmer efficacy in terms of reading behavior and cognitive load. Method: For this purpose, we conducted a controlled experiment with 37 participants using electroencephalography (EEG) and eye tracking. We asked participants to comprehend up to 32 Java source-code snippets and observed their eye gaze and neural correlates of cognitive load. We analyzed the correlation of participants' efficacy with popular programming experience measures. Results: We found that programmers with high efficacy read source code more targeted and with lower cognitive load. Commonly used experience levels do not predict programmer efficacy well, but self-estimation and indicators of learning eagerness are fairly accurate. Implications: The identified correlates of programmer efficacy can be used for future research and practice (e.g., hiring). Future research should also consider efficacy as a group sampling method, rather than using simple experience measures.
Norman Peitek, Annabelle Bergum, Maurice Rekrut, Jonas Mucke, Matthias Nadig, Chris Parnin, Janet Siegmund, Sven Apel
ESEC/SIGSOFT FSE7
2022 Correction to: Preface to the special issue on program comprehension
Janet Siegmund, Chanchal Kumar Roy
Empir. Softw. Eng.1
2021 Program Comprehension and Code Complexity Metrics: An fMRI Study
abstract
Background: Researchers and practitioners have been using code complexity metrics for decades to predict how developers comprehend a program. While it is plausible and tempting to use code metrics for this purpose, their validity is debated, since they rely on simple code properties and rarely consider particularities of human cognition. Aims: We investigate whether and how code complexity metrics reflect difficulty of program comprehension. Method: We have conducted a functional magnetic resonance imaging (fMRI) study with 19 participants observing program comprehension of short code snippets at varying complexity levels. We dissected four classes of code complexity metrics and their relationship to neuronal, behavioral, and subjective correlates of program comprehension, overall analyzing more than 41 metrics. Results: While our data corroborate that complexity metrics can-to a limited degree-explain programmers' cognition in program comprehension, fMRI allowed us to gain insights into why some code properties are difficult to process. In particular, a code's textual size drives programmers' attention, and vocabulary size burdens programmers' working memory. Conclusion: Our results provide neuro-scientific evidence supporting warnings of prior research questioning the validity of code complexity metrics and pin down factors relevant to program comprehension. Future Work: We outline several follow-up experiments investigating fine-grained effects of code complexity and describe possible refinements to code complexity metrics.
Norman Peitek, Sven Apel, Chris Parnin, André Brechmann, Janet Siegmund
ICSE5
2021 Mastering Variation in Human Studies: The Role of Aggregation
abstract
The human factor is prevalent in empirical software engineering research. However, human studies often do not use the full potential of analysis methods by combining analysis of individual tasks and participants with an analysis that aggregates results over tasks and/or participants. This may hide interesting insights of tasks and participants and may lead to false conclusions by overrating or underrating single-task or participant performance. We show that studying multiple levels of aggregation of individual tasks and participants allows researchers to have both insights from individual variations as well as generalized, reliable conclusions based on aggregated data. Our literature survey revealed that most human studies perform either a fully aggregated analysis or an analysis of individual tasks. To show that there is important, non-trivial variation when including human participants, we reanalyze 12 published empirical studies, thereby changing the conclusions or making them more nuanced. Moreover, we demonstrate the effects of different aggregation levels by answering a novel research question on published sets of fMRI data. We show that when more data are aggregated, the results become more accurate. This proposed technique can help researchers to find a sweet spot in the tradeoff between cost of a study and reliability of conclusions.
Janet Siegmund, Norman Peitek, Sven Apel, Norbert Siegmund
ACM Trans. Softw. Eng. Methodol.1
2020 What Drives the Reading Order of Programmers?: An Eye Tracking Study
abstract
Background: The way how programmers comprehend source code depends on several factors, including the source code itself and the programmer. Recent studies showed that novice programmers tend to read source code more like natural language text, whereas experts tend to follow the program execution flow. But, it is unknown how the linearity of source code and the comprehension strategy influence programmers' linearity of reading order.
Norman Peitek, Janet Siegmund, Sven Apel
ICPC2
2020 Community expectations for research artifacts and evaluation processes
abstract
Background. Artifact evaluation has been introduced into the software engineering and programming languages research community with a pilot at ESEC/FSE 2011 and has since then enjoyed a healthy adoption throughout the conference landscape. Objective. In this qualitative study, we examine the expectations of the community toward research artifacts and their evaluation processes. Method. We conducted a survey including all members of artifact evaluation committees of major conferences in the software engineering and programming language field since the first pilot and compared the answers to expectations set by calls for artifacts and reviewing guidelines. Results. While we find that some expectations exceed the ones expressed in calls and reviewing guidelines, there is no consensus on quality thresholds for artifacts in general. We observe very specific quality expectations for specific artifact types for review and later usage, but also a lack of their communication in calls. We also find problematic inconsistencies in the terminology used to express artifact evaluation’s most important purpose – replicability. Conclusion. We derive several actionable suggestions which can help to mature artifact evaluation in the inspected community and also to aid its introduction into other communities in computer science.
Ben Hermann, Stefan Winter 0001, Janet Siegmund
ESEC/SIGSOFT FSE3
2020 Dimensions of software configuration: on the configuration context in modern software development
abstract
With the rise of containerization, cloud development, and continuous integration and delivery, configuration has become an essential aspect not only to tailor software to user requirements, but also to configure a software system’s environment and infrastructure. This heterogeneity of activities, domains, and processes blurs the term configuration, as it is not clear anymore what tasks, artifacts, or stakeholders are involved and intertwined. However, each re- search study and each paper involving configuration places their contributions and findings in a certain context without making the context explicit. This makes it difficult to compare findings, translate them to practice, and to generalize the results. Thus, we set out to evaluate whether these different views on configuration are really distinct or can be summarized under a common umbrella. By interviewing practitioners from different domains and in different roles about the aspects of configuration and by analyzing two qualitative studies in similar areas, we derive a model of configuration that provides terminology and context for research studies, identifies new research opportunities, and allows practitioners to spot possible challenges in their current tasks. Although our interviewees have a clear view about configuration, it substantially differs due to their personal experience and role. This indicates that the term configuration might be overloaded. However, when taking a closer look, we see the interconnections and dependencies among all views, arriving at the conclusion that we need to start considering the entire spectrum of dimensions of configuration.
Norbert Siegmund, Nicolai Ruckel, Janet Siegmund
ESEC/SIGSOFT FSE3
2020 On the fulfillment of coordination requirements in open-source software projects: An exploratory study
Claus Hunsen, Janet Siegmund, Sven Apel
Empir. Softw. Eng.2
2020 Preface to the special issue on program comprehension
abstract
We are excited to present six selected papers of the 26th IEEE/ACM International Conference on Program Comprehension 2018, which took place in Gothenburg, Sweden, together with the 40th International Conference on Software Engineering.We received 69 submissions in total, of which we could accept 26.Each paper received at least three reviews and was discussed online, following a triple blind model, such that the reviewers did not know the identities of the authors, and that reviewers even did not know the identities of the other reviewers.The PC chairs selected papers to be invited for the special issue, such that all nominees for a distinguished paper award were invited.Furthermore, papers with a positive average score (1.0 on a 4 point scale from -2 to 2) and discussions among the PC members were also considered, as well as suggestions from the PC members.This resulted in the invitation of six papers, which all could be accepted for publication after considerable extension according to EMSE standard.This first invited paper, which received a distinguished paper award, evaluated the cognitive load of developers.The author team of Sarah Fakhoury, Devjeet Roy, Yuzhan Ma, Venera Arnaoudova, and Olusola Adesope contribute an extended version entitled "Measuring the Impact of Lexical and Structural Inconsistencies on Developers' Cognitive Load during Bug Localization".The paper presents a multi-modal approach to assess developers cognitive load based on a combination of functional near-infrared spectroscopy (fNIRS) and eye tracking.In addition to demonstrating the reliability of their multimodal approach by comparing the selfestimated cognitive load of participants with sensor information, the authors found evidence that changing the structure of code (e.g., violating coding conventions) does not increase cognitive load, but violating naming conventions for identifiers does.Additionally, the modalities to assess cognitive load all seem to capture different aspects of task difficulty.The second invited paper also received a distinguished paper award.The author team of Xing Hu, Ge Li, Xin Xia, David Lo, and Zhi Jin contribute their extended version entitled "Deep Code Comment Generation with Hybrid Lexical and Syntactical Information".In their paper, the authors develop an approach to automatically generate comments to Java methods,
Janet Siegmund, Chanchal Kumar Roy
Empir. Softw. Eng.1
2020 A Look into Programmers' Heads
abstract
Program comprehension is an important, but hard to measure cognitive process. This makes it difficult to provide suitable programming languages, tools, or coding conventions to support developers in their everyday work. Here, we explore whether functional magnetic resonance imaging (fMRI) is feasible for soundly measuring program comprehension. To this end, we observed 17 participants inside an fMRI scanner while they were comprehending source code. The results show a clear, distinct activation of five brain regions, which are related to working memory, attention, and language processing, which all fit well to our understanding of program comprehension. Furthermore, we found reduced activity in the default mode network, indicating the cognitive effort necessary for program comprehension. We also observed that familiarity with Java as underlying programming language reduced cognitive effort during program comprehension. To gain confidence in the results and the method, we replicated the study with 11 new participants and largely confirmed our findings. Our results encourage us and, hopefully, others to use fMRI to observe programmers and, in the long run, answer questions, such as: How should we train programmers? Can we train someone to become an excellent programmer? How effective are new languages and tools for program comprehension?
Norman Peitek, Janet Siegmund, Sven Apel, Christian Kästner, Chris Parnin, Anja Bethmann, Thomas Leich, Gunter Saake, André Brechmann
IEEE Trans. Software Eng.2
2019 Indentation: simply a matter of style or support for program comprehension?
abstract
An early study showed that indentation is not a matter of style, but provides actual support for program comprehension. In this paper, we present a non-exact replication of this study. Our aim is to provide empirical evidence for the suggested level of indentation made by many style guides. Following Miara and others, we also included the perceived difficulty, and we extended the original design to gain additional insights into the influence of indentation on visual effort by employing an eye-tracker. In the course of our study, we asked 22 participants to calculate the output of Java code snippets with different levels of indentation, while we recorded their gaze behavior. We did not find any indication that the indentation levels affect program comprehension or visual effort, so we could not replicate the findings of Miara and others. Nevertheless, our modernization of the original experiment design is a promising starting point for future studies in this field.
Jennifer Bauer, Janet Siegmund, Norman Peitek, Johannes C. Hofmeister, Sven Apel
ICPC2
2019 CodersMUSE: multi-modal data exploration of program-comprehension experiments
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.
Norman Peitek, Sven Apel, André Brechmann, Chris Parnin, Janet Siegmund
ICPC5
2019 Shorter identifier names take longer to comprehend
Johannes C. Hofmeister, Janet Siegmund, Daniel V. Holt
Empir. Softw. Eng.2
2019 Comparing the influence of using feature-oriented programming and conditional compilation on comprehending feature-oriented software
Alcemir Rodrigues Santos, Ivan do Carmo Machado, Eduardo Santana de Almeida, Janet Siegmund, Sven Apel
Empir. Softw. Eng.4
2018 Simultaneous measurement of program comprehension with fMRI and eye tracking: a case study
abstract
Background Researchers have recently started to validate decades-old program-comprehension models using functional magnetic resonance imaging (fMRI). While fMRI helps us to understand neural correlates of cognitive processes during program comprehension, its comparatively low temporal resolution (i.e., seconds) cannot capture fast cognitive subprocesses (i.e., milliseconds).
Norman Peitek, Janet Siegmund, Chris Parnin, Sven Apel, Johannes C. Hofmeister, André Brechmann
ESEM2
2018 Indicators for merge conflicts in the wild: survey and empirical study
Olaf Leßenich, Janet Siegmund, Sven Apel, Christian Kästner, Claus Hunsen
Autom. Softw. Eng.2
2017 Comprehending studies on program comprehension
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.
Ivonne von Nostitz-Wallwitz, Jacob Krüger, Janet Siegmund, Thomas Leich
ICPC3
2017 Renaming and shifted code in structured merging: looking ahead for precision and performance
abstract
Diffing and merging of source-code artifacts is an essential task when integrating changes in software versions. While state-of-the-art line-based merge tools (e.g., git merge) are fast and independent of the programming language used, they have only a low precision. Recently, it has been shown that the precision of merging can be substantially improved by using a language-aware, structured approach that works on abstract syntax trees. But, precise structured merging is NP hard, especially, when considering the notoriously difficult scenarios of renamings and shifted code. To address these scenarios without compromising scalability, we propose a syntax-aware, heuristic optimization for structured merging that employs a lookahead mechanism during tree matching. The key idea is that renamings and shifted code are not arbitrarily distributed, but their occurrence follows patterns, which we address with a syntax-specific lookahead. Our experiments with 48 real-world open-source projects (4,878 merge scenarios with over 400 million lines of code) demonstrate that we can significantly improve matching precision in 28 percent of cases while maintaining performance.
Olaf Leßenich, Sven Apel, Christian Kästner, Georg Seibt, Janet Siegmund
ASE5
2017 Measuring neural efficiency of program comprehension
abstract
Most modern software programs cannot be understood in their entirety by a single programmer. Instead, programmers must rely on a set of cognitive processes that aid in seeking, filtering, and shaping relevant information for a given programming task. Several theories have been proposed to explain these processes, such as ``beacons,' for locating relevant code, and ``plans,'' for encoding cognitive models. However, these theories are decades old and lack validation with modern cognitive-neuroscience methods. In this paper, we report on a study using functional magnetic resonance imaging (fMRI) with 11 participants who performed program comprehension tasks. We manipulated experimental conditions related to beacons and layout to isolate specific cognitive processes related to bottom-up comprehension and comprehension based on semantic cues. We found evidence of semantic chunking during bottom-up comprehension and lower activation of brain areas during comprehension based on semantic cues, confirming that beacons ease comprehension.
Janet Siegmund, Norman Peitek, Chris Parnin, Sven Apel, Johannes C. Hofmeister, Christian Kästner, Andrew Begel, Anja Bethmann, André Brechmann
ESEC/SIGSOFT FSE1
2017 Shorter identifier names take longer to comprehend
abstract
Developers spend the majority of their time comprehending code, a process in which identifier names play a key role. Although many identifier naming styles exist, they often lack an empirical basis and it is not quite clear whether short or long identifier names facilitate comprehension. In this paper, we investigate the effect of different identifier naming styles (letters, abbreviations, words) on program comprehension, and whether these effects arise because of their length or their semantics. We conducted an experimental study with 72 professional C# developers, who looked for defects in source-code snippets. We used a within-subjects design, such that each developer saw all three versions of identifier naming styles and we measured the time it took them to find a defect. We found that words lead to, on average, 19% faster comprehension speed compared to letters and abbreviations, but we did not find a significant difference in speed between letters and abbreviations. The results of our study suggest that defects in code are more difficult to detect when code contains only letters and abbreviations. Words as identifier names facilitate program comprehension and can help to save costs and improve software quality.
Johannes C. Hofmeister, Janet Siegmund, Daniel V. Holt
SANER2
2016 Modernizing Plan-Composition Studies
abstract
Plan composition is an important but under-studied topic in programming education. Most studies were done three decades ago, under assumptions that miss important issues that today's students must confront. This paper presents rationale and details for a modernized study of plan composition that accommodates a broader range of programming languages and problem features. Our study design has two novelties: the problems require students to deal with data-processing challenges (such as noisy data), and the questions ask students to not only produce but also evaluate programs. We present preliminary results from using our study in multiple courses from different linguistic paradigms. We discuss several future studies that are prompted by these results.
Kathi Fisler, Shriram Krishnamurthi, Janet Siegmund
SIGCSE3
2016 Efficiency of projectional editing: a controlled experiment
abstract
Projectional editors are editors where a user's editing actions directly change the abstract syntax tree without using a parser. They promise essentially unrestricted language com position as well as flexible notations, which supports aligning languages with their respective domain and constitutes an essential ingredient of model-driven development. Such editors have existed since the 1980s and gained widespread attention with the Intentional Programming paradigm, which used projectional editing at its core. However, despite the benefits, programming still mainly relies on editing textual code, where projectional editors imply a very different -- typically perceived as worse -- editing experience, often seen as the main challenge prohibiting their widespread adoption. We present an experiment of code-editing activities in a projectional editor, conducted with 19 graduate computer-science students and industrial developers. We investigate the effects of projectional editing on editing efficiency, editing strategies, and error rates -- each of which we also compare to conventional, parser-based editing. We observe that editing is efficient for basic-editing tasks, but that editing strategies and typical errors differ. More complex tasks require substantial experience and a better understanding of the abstract-syntax-tree structure -- then, projectional editing is also efficient. We also witness a tradeoff between fewer typing mistakes and an increased complexity of code editing.
Thorsten Berger, Markus Völter, Hans Peter Jensen, Taweesap Dangprasert, Janet Siegmund
SIGSOFT FSE5
2016 Product-line maintenance with emergent contract interfaces
abstract
A software product line evolves whenever one of its products need to evolve. Maintenance of preprocessor-based product lines is a difficult task, as changes to the code base may unintentionally influence the behavior of uninvolved products. Hence, developers should be supported during maintenance. We present emergent contract interfaces to make product-line development more efficient and less error-prone. The key idea is that for a given maintenance point (i.e., an assignment), we calculate (a) features in the source code that may be affected and (b) assertions based on contracts defined in the code base. By means of a controlled experiment, we provide empirical evidence regarding efficiency and error-avoidance with emergent contract interfaces.
Thomas Thüm, Márcio Ribeiro 0001, Reimar Schröter, Janet Siegmund, Francisco Dalton
SPLC4
2016 Preprocessor-based variability in open-source and industrial software systems: An empirical study
Claus Hunsen, Bo Zhang 0014, Janet Siegmund, Christian Kästner, Olaf Leßenich, Martin Becker 0002, Sven Apel
Empir. Softw. Eng.3
2015 From Developer Networks to Verified Communities: A Fine-Grained Approach
abstract
Effective software engineering demands a coordinated effort. Unfortunately, a comprehensive view on developer coordination is rarely available to support software-engineering decisions, despite the significant implications on software quality, software architecture, and developer productivity. We present a fine-grained, verifiable, and fully automated approach to capture a view on developer coordination, based on commit information and source-code structure, mined from version-control systems. We apply methodology from network analysis and machine learning to identify developer communities automatically. Compared to previous work, our approach is fine-grained, and identifies statistically significant communities using order-statistics and a community-verification technique based on graph conductance. To demonstrate the scalability and generality of our approach, we analyze ten open-source projects with complex and active histories, written in various programming languages. By surveying 53 open-source developers from the ten projects, we validate the authenticity of inferred community structure with respect to reality. Our results indicate that developers of open-source projects form statistically significant community structures and this particular view on collaboration largely coincides with developers' perceptions of real-world collaboration.
Mitchell Joblin, Wolfgang Mauerer, Sven Apel, Janet Siegmund, Dirk Riehle
ICSE (1)4
2015 Views on Internal and External Validity in Empirical Software Engineering
abstract
Empirical methods have grown common in software engineering, but there is no consensus on how to apply them properly. Is practical relevance key? Do internally valid studies have any value? Should we replicate more to address the tradeoff between internal and external validity? We asked the community how empirical research should take place in software engineering, with a focus on the tradeoff between internal and external validity and replication, complemented with a literature review about the status of empirical research in software engineering. We found that the opinions differ considerably, and that there is no consensus in the community when to focus on internal or external validity and how to conduct and review replications.
Janet Siegmund, Norbert Siegmund, Sven Apel
ICSE (1)1
2015 Confounding parameters on program comprehension: a literature survey
Janet Siegmund, Jana Schumann
Empir. Softw. Eng.1
2014 Understanding understanding source code with functional magnetic resonance imaging
abstract
Program comprehension is an important cognitive process that inherently eludes direct measurement. Thus, researchers are struggling with providing suitable programming languages, tools, or coding conventions to support developers in their everyday work. In this paper, we explore whether functional magnetic resonance imaging (fMRI), which is well established in cognitive neuroscience, is feasible to soundly measure program comprehension. In a controlled experiment, we observed 17 participants inside an fMRI scanner while they were comprehending short source-code snippets, which we contrasted with locating syntax errors. We found a clear, distinct activation pattern of five brain regions, which are related to working memory, attention, and language processing---all processes that fit well to our understanding of program comprehension. Our results encourage us and, hopefully, other researchers to use fMRI in future studies to measure program comprehension and, in the long run, answer questions, such as: Can we predict whether someone will be an excellent programmer? How effective are new languages and tools for program understanding? How should we train programmers?
Janet Siegmund, Christian Kästner, Sven Apel, Chris Parnin, Anja Bethmann, Thomas Leich, Gunter Saake, André Brechmann
ICSE1
2014 Towards User-Friendly Projectional Editors
Markus Völter, Janet Siegmund, Thorsten Berger, Bernd Kolb
SLE2
2014 Measuring and modeling programming experience
Janet Siegmund, Christian Kästner, Jörg Liebig, Sven Apel, Stefan Hanenberg
Empir. Softw. Eng.1
2013 Does the discipline of preprocessor annotations matter?: a controlled experiment
abstract
The C preprocessor (CPP) is a simple and language-independent tool, widely used to implement variable software systems using conditional compilation (i.e., by including or excluding annotated code). Although CPP provides powerful means to express variability, it has been criticized for allowing arbitrary annotations that break the underlying structure of the source code. We distinguish between disciplined annotations, which align with the structure of the source code, and undisciplined annotations, which do not. Several studies suggest that especially the latter type of annotations makes it hard to (automatically) analyze the code. However, little is known about whether the type of annotations has an effect on program comprehension. We address this issue by means of a controlled experiment with human subjects. We designed similar tasks for both, disciplined and undisciplined annotations, to measure program comprehension. Then, we measured the performance of the subjects regarding correctness and response time for solving the tasks. Our results suggest that there are no differences between disciplined and undisciplined annotations from a program-comprehension perspective. Nevertheless, we observed that finding and correcting errors is a time-consuming and tedious task in the presence of preprocessor annotations.
Sandro Schulze, Jörg Liebig, Janet Siegmund, Sven Apel
GPCE3
2013 Dark Knowledge and Graph Grammars in Automated Software Design
Don S. Batory, Rui C. Gonçalves, Bryan Marker, Janet Siegmund
SLE4
2013 Do background colors improve program comprehension in the #ifdef hell?
Janet Siegmund, Christian Kästner, Sven Apel, Jörg Liebig, Michael Schulze, Raimund Dachselt, Maria Papendieck, Thomas Leich, Gunter Saake
Empir. Softw. Eng.1
2012 Is the derivation of a model easier to understand than the model itself?
abstract
Software architectures can be presented by graphs with components as nodes and connectors as edges. These graphs, or models, typically encode expert domain knowledge, which makes them difficult to understand. Hence, instead of presenting a complete complex model, we can derive it from a simple, easy-to-understand model by a set of easy-to-understand transformations. In two controlled experiments, we evaluate whether a derivation of a model is easier to understand than the model itself.
Janet Siegmund, Don S. Batory, Taylor L. Riché
ICPC1
2012 Measuring programming experience
abstract
Programming experience is an important confounding parameter in controlled experiments regarding program comprehension. In literature, ways to measure or control programming experience vary. Often, researchers neglect it or do not specify how they controlled it. We set out to find a well-defined understanding of programming experience and a way to measure it. From published comprehension experiments, we extracted questions that assess programming experience. In a controlled experiment, we compare the answers of 128 students to these questions with their performance in solving program-comprehension tasks. We found that self estimation seems to be a reliable way to measure programming experience. Furthermore, we applied exploratory factor analysis to extract a model of programming experience. With our analysis, we initiate a path toward measuring programming experience with a valid and reliable tool, so that we can control its influence on program comprehension.
Janet Siegmund, Christian Kästner, Jörg Liebig, Sven Apel, Stefan Hanenberg
ICPC1
2012 Supporting comprehension experiments with human subjects
abstract
Experiments with human subjects become more and more important in software engineering. To support planning, conducting, and replicating experiments targeting program comprehension, we developed PROPHET. It allows experimenters to easily define and customize experimental settings as well as to export settings such that others can replicate their results. Furthermore, PROPHET provides extension points, which allow users to integrate additional functionality.
Janet Siegmund, Norbert Siegmund
ICPC1
2012 Toward measuring program comprehension with functional magnetic resonance imaging
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?
Janet Siegmund, André Brechmann, Sven Apel, Christian Kästner, Jörg Liebig, Thomas Leich, Gunter Saake
SIGSOFT FSE1
2011 Using background colors to support program comprehension in software product lines
abstract
Background: Software product line engineering provides an effective mechanism to implement variable software.However, the usage of preprocessors, which is typical in industry, is heavily criticized, because it often leads to obfuscated code.Using background colors to support comprehensibility has shown effective, however, scalability to large software product lines (SPLs) is questionable.Aim: Our goal is to implement and evaluate scalable usage of background colors for industrial-sized SPLs.Method: We designed and implemented scalable concepts in a tool called FeatureCommander.To evaluate its effectiveness, we conducted a controlled experiment with a large real-world SPL with over 160,000 lines of code and 340 features.We used a within-subjects design with treatments colors and no colors.We compared correctness and response time of tasks for both treatments.Results: For certain kinds of tasks, background colors improve program comprehension.Furthermore, subjects generally favor background colors.Conclusion: We show that background colors can improve program comprehension in large SPLs.Based on these encouraging results, we will continue our work improving program comprehension in large SPLs.Difficulty U value 20.5 24.5 17.5 18 10.
Janet Siegmund, Michael Schulze, Maria Papendieck, Christian Kästner, Raimund Dachselt, Veit Köppen, Mathias Frisch
EASE1
2011 Exploring Software Measures to Assess Program Comprehension
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.
Janet Siegmund, Sven Apel, Jörg Liebig, Christian Kästner
ESEM1
2011 View infinity: a zoomable interface for feature-oriented software development
abstract
Software product line engineering provides efficient means to develop variable software. To support program comprehension of software product lines (SPLs), we developed View Infinity, a tool that provides seamless and semantic zooming of different abstraction layers of an SPL. First results of a qualitative study with experienced SPL developers are promising and indicate that View Infinity is useful and intuitive to use.
Michael Stengel, Mathias Frisch, Sven Apel, Janet Siegmund, Christian Kästner, Raimund Dachselt
ICSE4
2011 Analyzing the Effect of Preprocessor Annotations on Code Clones
abstract
The C preprocessor cpp is a powerful and language-independent tool, widely used to implement variable software in different programming languages (C, C++) using conditional compilation. Preprocessor annotations can used on different levels of granularity such as functions or statements. In this paper, we investigate whether there is a relation between code clones and preprocessor annotations. Specifically, we address the question whether the discipline of annotation has an effect on code clones. To this end, we perform a case study on fifteen different C programs and analyze them regarding code clones and #ifdef occurrences. We found only minor effects of annotations on code clones, but a relationship between annotations that align with the code structure (and code clones). With this work, we provide new insights why code clones occur in C programs. Furthermore, the results can support the decision whether or not it is beneficial to remove clones.
Sandro Schulze, Elmar Jürgens, Janet Siegmund
SCAM3
2010 Visual Support for Understanding Product Lines
abstract
The C preprocessor is often used in practice to implement variability in software product lines. Using #ifdef statements provokes problems such as obfuscated source code, yet they will still be used in practice at least in the medium-term future. With CIDE, we demonstrate a tool to improve understanding and maintaining code that contains #ifdef statements by visualizing them with colors and providing different views on the code.
Janet Siegmund, Christian Kästner, Mathias Frisch, Raimund Dachselt, Sven Apel
ICPC1
2009 FeatureIDE: A tool framework for feature-oriented software development
abstract
Tools support is crucial for the acceptance of a new programming language. However, providing such tool support is a huge investment that can usually not be provided for a research language. With FeatureIDE, we have built an IDE for AHEAD that integrates all phases of feature-oriented software development. To reuse this investment for other tools and languages, we refactored FeatureIDE into an open source framework that encapsulates the common ideas of feature-oriented software development and that can be reused and extended beyond AHEAD. Among others, we implemented extensions for FeatureC++ and FeatureHouse, but in general, FeatureIDE is open for everybody to showcase new research results and make them usable to a wide audience of students, researchers, and practitioners.
Christian Kästner, Thomas Thüm, Gunter Saake, Janet Siegmund, Thomas Leich, Fabian Wielgorz, Sven Apel
ICSE4