2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)最新文献

筛选
英文 中文
Indentation: Simply a Matter of Style or Support for Program Comprehension? 缩进:仅仅是风格问题还是对程序理解的支持?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00033
Jennifer Bauer, J. Siegmund, Norman Peitek, Johannes C. Hofmeister, S. Apel
{"title":"Indentation: Simply a Matter of Style or Support for Program Comprehension?","authors":"Jennifer Bauer, J. Siegmund, Norman Peitek, Johannes C. Hofmeister, S. Apel","doi":"10.1109/ICPC.2019.00033","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00033","url":null,"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.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"70 1","pages":"154-164"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78000531","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 20
Do Extracted State Machine Models Help to Understand Embedded Software? 抽取状态机模型有助于理解嵌入式软件吗?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00038
Wasim Said, Jochen Quante, R. Koschke
{"title":"Do Extracted State Machine Models Help to Understand Embedded Software?","authors":"Wasim Said, Jochen Quante, R. Koschke","doi":"10.1109/ICPC.2019.00038","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00038","url":null,"abstract":"Program understanding is a prerequisite for several software activities, such as maintenance, evolution, and reengineering. Code in itself is so detailed that it is often hard to understand. More abstract models describing its behaviour may ease program understanding. Manually building understandable abstractions from complex source code – as an explicit or just mental model – requires in-depth analysis of the code in the first place. Therefore, it is a time-consuming and tedious activity for developers. Model mining can support program comprehension by semi-automatically extracting high-level models from code. One helpful model is a state machine, which is an established formalism for specifying the behaviour of a software component. In this paper, we report on a controlled experiment that investigates the question: Do semi-automatically extracted state machines make understanding of complex embedded code more effective? The experiment was conducted with 30 participants on two industrial embedded C code functions. The results show that the share of correct answers increases and the required time to solve the tasks decreases significantly when extracted state machines are available. We conclude that mined state machines do in fact help in program understanding.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"51 1","pages":"191-196"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88420157","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Live Programming and Software Evolution: Questions During a Programming Change Task 现场编程和软件进化:编程变更任务中的问题
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00017
Juraj Kubelka, R. Robbes, Alexandre Bergel
{"title":"Live Programming and Software Evolution: Questions During a Programming Change Task","authors":"Juraj Kubelka, R. Robbes, Alexandre Bergel","doi":"10.1109/ICPC.2019.00017","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00017","url":null,"abstract":"Several studies provide the questions developers ask during software evolution tasks, providing foundations for subsequent work. Nevertheless, none of them focus on Live Programming environments that gain in popularity as they are perceived to have a positive effect on programming tasks. Studying the impact of a Live Programming environment on software development activities is thus the goal of this study. In a partial replication of the study by Sillito et al., we conducted 17 software evolution sessions in a Live Programming environment and report 1,161 developer questions asked during these sessions. We contrast our results with the results by Sillito et al., focusing on the question occurrences, question complexity and what information participants used to gain a required knowledge. We report eight new questions and observe that the Live Programming facilities do have an impact on the way developers ask questions about source code and use tools to gain corresponding knowledge.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"159 1","pages":"30-41"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76609738","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
What Goes on in Your Brain When You Read and Understand Code? 当你阅读和理解代码时,你的大脑在想什么?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00013
Westley Weimer
{"title":"What Goes on in Your Brain When You Read and Understand Code?","authors":"Westley Weimer","doi":"10.1109/ICPC.2019.00013","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00013","url":null,"abstract":"Within the last few years, high-resolution medical imaging technologies have grown in popularity for research in software engineering in general and program comprehension in particular. New approaches such function magnetic resonance imaging (fMRI) and functional near-infrared spectroscopy (fNIRS) complement more established approaches such as eye tracking and electroencephalograms (EEG), helping us to augment unreliable or subjective self-reporting with more objective measures of the neurobiological correlates of software engineering. This keynote summarizes recent exciting results using such techniques, from multiple authors, contrasting them to more traditional studies. We highlight the \"game changing\" areas of program comprehension that can be more rigorously targeted with these approaches (including expertise, efficiency, and problem difficulty, among others). We also lay out a number of the challenges associated with such studies (including experimental design, statistical analysis, regulatory compliance, reproducibility, and cost, among others). We conclude with a call to arms, surveying compelling ideas and experiments from psychology that have not yet been applied to program comprehension research.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"135 1","pages":"1-1"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74247577","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Replicating Novices' Struggles with Coding Style 复制新手在编码风格上的挣扎
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00015
E. Wiese, Anna N. Rafferty, D. Kopta, Jacqulyn M. Anderson
{"title":"Replicating Novices' Struggles with Coding Style","authors":"E. Wiese, Anna N. Rafferty, D. Kopta, Jacqulyn M. Anderson","doi":"10.1109/ICPC.2019.00015","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00015","url":null,"abstract":"Good style makes code easier for others to read and modify. Control flow is one element of style where experts expect particular structure, such as conjoining conditions rather than nesting if statements. Empirical work is necessary to understand why novices use poor style, so they can be taught to use good style. Previous work shows that many students know what control flows experts prefer, but may say that novice-styled code is more readable. Yet, these same students showed similarly high comprehension across both expert-and novice-styled code. We propose a replication of that work that more fully assesses students' code comprehension and code writing. Our replication focuses on students who are earlier in their computer science courses and are less likely to be majors, to determine whether the pattern of results is particular to students who are relatively attuned to style concerns. Our pilot of the proposed replication finds that: students in this new population are less able to identify expert code; expert style may reduce comprehension for some control flows; and writing with good style does not always predict a preference for reading code with good style.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"1 1","pages":"13-18"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84621675","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Using Frugal User Feedback with Closeness Analysis on Code to Improve IR-Based Traceability Recovery 使用节俭的用户反馈和代码的密切度分析来改进基于ir的可追溯性恢复
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00055
Hongyu Kuang, Hui Gao, Hao Hu, Xiaoxing Ma, Jian Lu, Patrick Mäder, Alexander Egyed
{"title":"Using Frugal User Feedback with Closeness Analysis on Code to Improve IR-Based Traceability Recovery","authors":"Hongyu Kuang, Hui Gao, Hao Hu, Xiaoxing Ma, Jian Lu, Patrick Mäder, Alexander Egyed","doi":"10.1109/ICPC.2019.00055","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00055","url":null,"abstract":"Traceability recovery allows developers to extract and comprehend the trace links among software artifacts (e.g., requirements and code). These trace links can provide important support to software maintenance and evolution tasks. Information Retrieval (IR) is now widely accepted as the key technique of semi-automatic tools to recover candidate trace links based on textual similarities among artifacts. However, the vocabulary mismatch problem between different artifacts hinders the performance of these IR-based approaches. Thus, a growing body of enhancing strategies were proposed based on user feedback. They allow to adjust the textual similarities of candidate links after users accept or reject part of these links. Recently, several approaches successfully used this strategy to improve the performance of IR-based traceability recovery. However, these approaches require a large amount of user feedback, which is infeasible in practice. In this paper, we propose to improve IR-based traceability recovery by introducing only a small amount of user feedback into the closeness analysis on call and data dependencies in code. Specifically, our approach iteratively asks users to verify a chosen candidate link based on the quantified functional similarity for each code dependency (called closeness) and the generated IR values. The verified link is then used as the input to re-rank the unverified candidate links. An empirical evaluation based on five real-world systems shows that our approach can outperform four baseline approaches by using only a small amount of user feedback.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"38 1","pages":"369-379"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83115006","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
How Does Feature Dependency Affect Configurable System Comprehensibility? 特征依赖如何影响可配置系统的可理解性?
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00016
Djan Santos, C. Sant'Anna
{"title":"How Does Feature Dependency Affect Configurable System Comprehensibility?","authors":"Djan Santos, C. Sant'Anna","doi":"10.1109/ICPC.2019.00016","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00016","url":null,"abstract":"Background: Conditional compilation is often used to implement variability in configurable systems. This technique relies on #ifdefs to delimit feature code. Previous studies have shown that #ifdefs may hinder code comprehensibility. However, they did not explicitly took feature dependencies into account. Feature dependency occurs when different features refer to the same program element, such as a variable. Comprehensibility may be even more affected in the presence of feature dependency, as the developer must reason about different scenarios affecting the same variable. Aim: Our goal is to understand how feature dependency affects the comprehensibility of configurable system source code. Method: We carried out an experiment in which 30 developers debugged programs with different types of feature dependency. We recorded the time each of them had spent to find a bug. Also, we used an eye-tracking device to record developers' gaze movements while they debugged programs. Results: Debugging programs with global and interprocedural dependency required more time and higher visual effort. Conclusion: Our study showed that #ifdefs affect comprehensibility in different degrees depending on the type of feature dependency. Therefore, when possible, developers should take more care when dealing with code with global and interprocedural dependencies.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"62 1","pages":"19-29"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89119794","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Measuring the Cognitive Load of Software Developers: A Systematic Mapping Study 测量软件开发人员的认知负荷:一个系统的映射研究
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00018
L. Gonçales, Kleinner Farias, Bruno Carreiro da Silva, Jonathan Fessler
{"title":"Measuring the Cognitive Load of Software Developers: A Systematic Mapping Study","authors":"L. Gonçales, Kleinner Farias, Bruno Carreiro da Silva, Jonathan Fessler","doi":"10.1109/ICPC.2019.00018","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00018","url":null,"abstract":"Context: In recent years, several studies explored different facets of the developers' cognitive load while executing tasks related to software engineering. Researchers have proposed and assessed different ways to measure developers' cognitive load at work and some studies have evaluated the interplay between developers' cognitive load and other attributes such as productivity and software quality. Problem: However, the body of knowledge about developers' cognitive load measurement is still dispersed. That hinders the effective use of developers' cognitive load measurements by industry practitioners and makes it difficult for researchers to build new scientific knowledge upon existing results. Objective: This work aims to pinpoint gaps providing a classification and a thematic analysis of studies on the measurement of cognitive load in the context of software engineering. Method: We carried out a Systematic Mapping Study (SMS) based on well-established guidelines to investigate nine research questions. In total, 33 articles (out of 2,612) were selected from 11 search engines after a careful filtering process. Results: The main findings are that (1) 55% of the studies adopted electroencephalogram (EEG) technology for monitoring the cognitive load; (2) 51% of the studies applied machine-learning classification algorithms for predicting cognitive load; and (3) 48% of the studies measured cognitive load in the context of programming tasks. Moreover, a taxonomy was derived from the answers of research questions. Conclusion: This SMS highlighted that the precision of machine learning techniques is low for realistic scenarios, despite the combination of a set of features related to developers' cognitive load used on these techniques. Thus, this gap makes the effective integration of the measure of developers' cognitive load in industry still a relevant challenge.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"8 1","pages":"42-52"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87552861","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 28
Analyzing Performance-Aware Code Changes in Software Development Process 分析软件开发过程中对性能敏感的代码更改
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00049
Jie Chen, Dongjin Yu, Haiyang Hu, Zhongjin Li, Hua Hu
{"title":"Analyzing Performance-Aware Code Changes in Software Development Process","authors":"Jie Chen, Dongjin Yu, Haiyang Hu, Zhongjin Li, Hua Hu","doi":"10.1109/ICPC.2019.00049","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00049","url":null,"abstract":"With the continuous expansion of software market and the updating of the maturity of the software development process, the performance requirements of software users have gradually become prominent. Performance issues are closely related to the source code. Thus, with the increasing complex of the software product, its performance changed during the evolution of the software product. Performance optimization related work has always been an important goal for developers who usually coding at a low-level. However, performance problems are well studied on architecture level. All too often, some developers are ignorant of the way their code modifications affect performance and simply to wait until performance drops to a point that is unacceptable to the business side. As software developers did a lot of daily work at code level, we think code level performance awareness can help developers in sight of the performance of the code that they are working with. To deal with this, we firstly build performance-aware code change model to identify the performance changes and its related code changes at the granularity of function between each two reversions of a program. Then, we analyzed the evolution history of the code performance and mined the frequent code change patterns that used to improve performance. We have build related tool to implement the proposed approach and applied it to 8 open source projects.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"37 1","pages":"300-310"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82538423","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Understanding Large-Scale Software – A Hierarchical View 理解大规模软件——层次视图
2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) Pub Date : 2019-05-25 DOI: 10.1109/ICPC.2019.00047
Omer Levy, D. Feitelson
{"title":"Understanding Large-Scale Software – A Hierarchical View","authors":"Omer Levy, D. Feitelson","doi":"10.1109/ICPC.2019.00047","DOIUrl":"https://doi.org/10.1109/ICPC.2019.00047","url":null,"abstract":"Program comprehension accounts for a large portion of software development costs and effort. The academic literature contains research on program comprehension of short code snippets, but comprehension at the system level is no less important. We claim that comprehending a software system is a distinct activity that differs from code comprehension. We interview experienced developers, architects, and managers in the software industry and open-source community, to uncover the meaning of program comprehension at the system level. The interviews demonstrate, among other things, that system comprehension is detached from code and programming language, and includes scope that is not captured in the code. It focuses on the structure of the system and less on the code itself. This is a continuous, iterative process, which mixes white-box and black-box approaches at different layers of the system, and combines both bottom-up and top-down comprehension strategies.","PeriodicalId":6853,"journal":{"name":"2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)","volume":"39 1","pages":"283-293"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88490841","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信