4,951 papers · page 67 of 248
Christoph Hannebauer, Marc Hesenius, Volker Gruhn
Program comprehension is an important skill for programmers - extending and debugging existing source code is part of the daily routine. Syntax highlighting is one of the most common tools used to support developers in understanding algorithms. However, most research on code high…
Safwat Hassan, Chakkrit Tantithamthavorn, Cor-Paul Bezemer, Ahmed E. Hassan
The popularity of mobile apps continues to grow over the past few years. Mobile app stores, such as the Google Play Store and Apple's App Store provide a unique user feedback mechanism to app developers through app reviews. In the Google Play Store (and most recently in the Apple…
Foyzul Hassan, Xiaoyin Wang
Advancements in software build tools such as Maven reduce build management effort, but developers still need specialized knowledge and long time to maintain build scripts and resolve build failures. More recent build tools such as Gradle give developers greater extent of customiz…
Andrew Head, Caitlin Sadowski, Emerson R. Murphy-Hill, Andrea Knight
Without usable and accurate documentation of how to use an API, developers can find themselves deterred from reusing relevant code. In C++, one place developers can find documentation is in a header file. When information is missing, they may look at the corresponding implementat…
Brian Hempel, Justin Lubin, Grace Lu, Ravi Chugh
We present a structure-aware code editor, called Deuce, that is equipped with direct manipulation capabilities for invoking automated program transformations. Compared to traditional refactoring environments, DEUCE employs a direct manipulation interface that is tightly integrate…
Steffen Herbold, Alexander Trautsch, Jens Grabowski
Cross-Project Defect Prediction (CPDP) as a means to focus quality assurance of software projects was under heavy investigation in recent years. However, within the current state-of-the-art it is unclear which of the many proposals performs best due to a lack of replication of re…
André C. Hora, Danilo Silva, Marco Túlio Valente, Romain Robbes
While refactoring is extensively performed by practitioners, many Mining Software Repositories (MSR) approaches do not detect nor keep track of refactorings when performing source code evolution analysis. In the best case, keeping track of refactorings could be unnecessary work; …
Jinru Hua, Mengshi Zhang, Kaiyuan Wang, Sarfraz Khurshid
Effective program repair techniques, which modify faulty programs to fix them with respect to given test suites, can substantially reduce the cost of manual debugging. A common repair approach is to iteratively first generate candidate programs with possible bug fixes and then va…
Xin Huang, He Zhang, Xin Zhou, Muhammad Ali Babar, Song Yang
Synthesizing data extracted from primary studies is an integral component of the methodologies in support of Evidence Based Software Engineering (EBSE) such as System Literature Review (SLR). Since a large and increasing number of studies in Software Engineering (SE) incorporate …
Eirini Kalliamvakou, Christian Bird, Thomas Zimmermann, Andrew Begel, Robert DeLine, Daniel M. Germán
Having great managers is as critical to success as having a good team or organization. A great manager is seen as fuelling the team they manage, enabling it to use its full potential. Though software engineering research studies factors that may affect the performance and product…
Miryung Kim, Thomas Zimmermann, Robert DeLine, Andrew Begel
The demand for analyzing large scale telemetry, machine, and quality data is rapidly increasing in software industry. Data scientists are becoming popular within software teams. For example, Face-book, LinkedIn and Microsoft are creating a new career path for data scientists. In …
Yunho Kim, Yunja Choi, Moonzoo Kim
Automated unit testing reduces manual effort to write unit test drivers/stubs and generate unit test inputs. However, automatically generated unit test drivers/stubs raise false alarms because they often over-approximate real contexts of a target function f and allow infeasible e…
Kisub Kim, Dongsun Kim, Tegawendé F. Bissyandé, Eunjong Choi, Li Li, Jacques Klein, Yves Le Traon
Code search is an unavoidable activity in software development. Various approaches and techniques have been explored in the literature to support code search tasks. Most of these approaches focus on serving user queries provided as natural language free-form input. However, there…
Wieslaw Kopec, Bartlomiej Balcerzak, Radoslaw Nielek, Grzegorz Kowalik, Adam Wierzbicki, Fabio Casati
Globally observed trends in aging indicate that older adults constitute a growing share of the population and an increasing demographic in the modern technologies marketplace. Therefore, it has become important to address the issue of participation of older adults in the process …
Sebastian Krieter, Thomas Thüm, Sandro Schulze, Reimar Schröter, Gunter Saake
Highly-configurable systems encompass thousands of interdependent configuration options, which require a non-trivial configuration process. Decision propagation enables a backtracking-free configuration process by computing values implied by user decisions. However, employing dec…
Jacob Krüger, Jens Wiemann, Wolfram Fenske, Gunter Saake, Thomas Leich
Being familiar with the source code of a program comprises knowledge about its purpose, structure, and details. Consequently, familiarity is an important factor in many contexts of software development, especially for maintenance and program comprehension. As a result, familiarit…
Juraj Kubelka, Romain Robbes, Alexandre Bergel
Live Programming environments allow programmers to get feedback instantly while changing software. Liveness is gaining attention among industrial and open-source communities; several IDEs offer high degrees of liveness. While several studies looked at how programmers work during …
Jung-Hyun Kwon, In-Young Ko, Gregg Rothermel
When testing client-side web applications, it is important to consider different web-browser environments. Different properties of these environments such as web-browser types and underlying platforms may cause a web application to exhibit different types of failures. As web appl…
Katsiaryna Labunets, Fabio Massacci, Federica Paci, Sabrina Marczak, Flávio Moreira de Oliveira
Context: Tabular and graphical representations are used to communicate security risk assessments for IT systems. However, there is no consensus on which type of representation better supports the comprehension of risks (such as the relationships between threats, vulnerabilities a…
Leen Lambers, Daniel Strüber, Gabriele Taentzer, Kristopher Born, Jevgenij Huebert
Conflict and dependency analysis (CDA) of graph transformation has been shown to be a versatile foundation for understanding interactions in many software engineering domains, including software analysis and design, model-driven engineering, and testing. In this paper, we propose…