Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2881297guideproceedingsBook PagePublication PagesConference Proceedingsacm-pubtype
ICSME '15: Proceedings of the 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME)
2015 Proceeding
Publisher:
  • IEEE Computer Society
  • 1730 Massachusetts Ave., NW Washington, DC
  • United States
Conference:
29 September 2015- 1 October 2015
ISBN:
978-1-4673-7532-0
Published:
29 September 2015

Reflects downloads up to 07 Mar 2025Bibliometrics
Abstract

No abstract available.

Article
Front cover
Article
Author index
Article
Messages
Article
Article
Software history under the lens: A study on why and how developers examine it

Despite software history being indispensable for developers, there is little empirical knowledge about how they examine software history. Without such knowledge, researchers and tool builders are in danger of making wrong assumptions and building ...

Article
To fix or to learn? How production bias affects developers' information foraging during debugging

Developers performing maintenance activities must balance their efforts to learn the code vs. their efforts to actually change it. This balancing act is consistent with the “production bias” that, according to Carroll's minimalist learning theory, ...

Article
Developers' perception of co-change patterns: An empirical study

Co-change clusters are groups of classes that frequently change together. They are proposed as an alternative modular view, which can be used to assess the traditional decomposition of systems in packages. To investigate developer's perception of co-...

Article
When and why developers adopt and change software licenses

Software licenses legally govern the way in which developers can use, modify, and redistribute a particular system. While previous studies either investigated licensing through mining software repositories or studied licensing through FOSS reuse, we aim ...

Article
Investigating naming convention adherence in Java references

Naming conventions can help the readability and comprehension of code, and thus the onboarding of new developers. Conventions also provide cues that help developers and tools extract information from identifier names to support software maintenance. ...

Article
Developing a model of loop actions by mining loop characteristics from a large code corpus

Some high level algorithmic steps require more than one statement to implement, but are not large enough to be a method on their own. Specifically, many algorithmic steps (e.g., count, compare pairs of elements, find the maximum) are implemented as loop ...

Article
Delta extraction: An abstraction technique to comprehend why two objects could be related

In an execution of a large scale program, even a simple observable behavior may be generated by a wide range of the source code. To comprehend how such a behavior is implemented in the code, a debugger would be helpful. However, when using a debugger, ...

Article
Modeling changeset topics for feature location

Feature location is a program comprehension activity in which a developer inspects source code to locate the classes or methods that implement a feature of interest. Many feature location techniques (FLTs) are based on text retrieval models, and in such ...

Article
Four eyes are better than two: On the impact of code reviews on software quality

Code review is advocated as one of the best practices to improve software quality and reduce the likelihood of introducing defects during code change activities. Recent research has shown how code components having a high review coverage (i.e., a high ...

Article
A comparative study on the bug-proneness of different types of code clones

Code clones are defined to be the exactly or nearly similar code fragments in a software system's code-base. The existing clone related studies reveal that code clones are likely to introduce bugs and inconsistencies in the code-base. However, although ...

Article
An empirical study of bugs in test code

Testing aims at detecting (regression) bugs in production code. However, testing code is just as likely to contain bugs as the code it tests. Buggy test cases can silently miss bugs in the production code or loudly ring false alarms when the production ...

Article
Investigating code review quality: Do people and participation matter?

Code review is an essential element of any mature software development project; it aims at evaluating code contributions submitted by developers. In principle, code review should improve the quality of code changes (patches) before they are committed to ...

Article
Inter-smell relations in industrial and open source systems: A replication and comparative analysis

The presence of anti-patterns and code smells can affect adversely software evolution and quality. Recent work has shown that code smells that appear together in the same file (i.e., collocated smells) can interact with each other, leading to various ...

Article
Evaluating clone detection tools with BigCloneBench

Many clone detection tools have been proposed in the literature. However, our knowledge of their performance in real software systems is limited, particularly their recall. In this paper, we use our big data clone benchmark, BigCloneBench, to evaluate ...

Article
Uncovering dependence clusters and linchpin functions

Dependence clusters are (maximal) collections of mutually dependent source code entities according to some dependence relation. Their presence in software complicates many maintenance activities including testing, refactoring, and feature extraction. ...

Article
Forked and integrated variants in an open-source firmware project

Code cloning has been reported both on small (code fragments) and large (entire projects) scale. Cloning-in-the-large, or forking, is gaining ground as a reuse mechanism thanks to availability of better tools for maintaining forked project variants, ...

Article
Towards automating dynamic analysis for behavioral design pattern detection

The detection of behavioral design patterns is more accurate when a dynamic analysis is performed on the candidate instances identified statically. Such a dynamic analysis requires the monitoring of the candidate instances at run-time through the ...

Article
Practical and accurate pinpointing of configuration errors using static analysis

Software misconfigurations are responsible for a substantial part of today's system failures, causing about one-quarter of all customer-reported issues. Identifying their root causes can be costly in terms of time and human resources. We present an ...

Article
Deterministic dynamic race detection across program versions

Dynamic race detectors operate by analyzing execution traces of programs to detect races in multithreaded programs. As the thread interleavings influence these traces, the sets of races detected across multiple runs of the detector can vary. This non-...

Article
Program specialization and verification using file format specifications

Programs that process data that reside in files are widely used in varied domains, such as banking, healthcare, and web-traffic analysis. Precise static analysis of these programs in the context of software transformation and verification tasks is a ...

Article
An empirical evaluation of ant build maintenance using Formiga

As a software project evolves, so does its build system. Significant effort is necessary to maintain the build system to cope with this evolution, in part because changes to source code often require parallel changes in the build system. Our tool, ...

Article
Scripting parametric refactorings in Java to retrofit design patterns

Retrofitting design patterns into a program by hand is tedious and error-prone. A programmer must distinguish refactorings that are provided by an Integrated Development Environment (IDE) from those that must be realized manually, determine a precise ...

Article
System specific, source code transformations

During its lifetime, a software system might undergo a major transformation effort in its structure, for example to migrate to a new architecture or bring some drastic improvements to the system. Particularly in this context, we found evidences that ...

Article
A decision support system to refactor class cycles

Many studies show that real-world systems are riddled with large dependency cycles among software classes. Dependency cycles are claimed to affect quality factors such as testability, extensibility, modifiability, and reusability. Recent studies reveal ...

Article
On the role of developer's scattered changes in bug prediction

The importance of human-related factors in the introduction of bugs has recently been the subject of a number of empirical studies. However, such factors have not been captured yet in bug prediction models which simply exploit product metrics or process ...

Article
How do developers react to API evolution? The Pharo ecosystem case

Software engineering research now considers that no system is an island, but it is part of an ecosystem involving other systems, developers, users, hardware, … When one system (e.g., a framework) evolves, its clients often need to adapt. Client ...

Recommendations