1,721,011 research outputs found
Recommended from our members
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 inadequate tools.
In this paper we present an in-depth empirical study about the motivations developers have for examining software history, the strategies they use, and the challenges they encounter. To learn these, we interviewed 14 experienced developers from industry, and then extended our findings by surveying 217 developers. We found that history does not begin with the latest commit but with uncommitted changes. Moreover, we found that developers had different motivations for examining recent and old history. Based on these findings we propose 3-LENS HISTORY, a novel unified model for reasoning about software history
Concurrencer: a tool for retrofitting concurrency into sequential Java applications via concurrent libraries
Parallelizing existing sequential programs to run efficiently on multicores is hard. The Java 5 package java.util.concurrent (j.u.c.) supports writing concurrent programs. To use this package, programmers still need to refactor existing code. This is tedious, error-prone, and omission-prone. This demo presents our tool, CONCURRENCER, which enables programmers to refactor sequential code into parallel code that uses j.u.c. concurrent utilities. CONCURRENCER does not require any program annotations, although the transformations span several, non-adjacent, program statements and use custom program analysis. A find-and-replace tool can not perform such transformations. Empirical evaluation shows that CONCURRENCER refactors code effectively: CONCURRENCER correctly identifies and applies transformations that some open-source developers overlooked, and the converted code exhibits good speedup
Going Beyond Counting First Authors in Author Co-citation Analysis
The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation
counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings
are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that
only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into
account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed
Automated Upgrading of Component-Based Applications
Software developers like to reuse software components such as libraries or frameworks because it lets them build a system more quickly, but then the system depends on the components that they reused. Ideally, the programming interface (API) to a component never changes. In practice, components change their APIs. Upgrading an application to the new API is error-prone, tedious, and disruptive to the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most upgrades are done manually. This makes maintaining software expensive. Our goal is to automate the upgrading and make it practical.
Our study of the API changes in five components revealed that over 80% of the changes that break existing applications are caused by refactorings. Refactorings are program transformations that improve the structure of existing components. We suggest that refactoring-based upgrading tools can be used to effectively upgrade applications. We propose an approach that is both automated and safe, without any overhead on the component producers. First, component refactorings are automatically detected (either inferred or recorded), then they are incorporated into applications by replaying. This is the process used to automate the upgrading of applications: along with the new version of the component, component developers ship the log of refactorings applied to create the new version. An application developer can then upgrade the application to the new version by using a refactoring tool to replay the log of refactorings.
We developed a toolset to automatically upgrade applications in response to component refactorings. First, we developed a record-and-replay extension to a refactoring engine which records component refactorings and replays them on the applications. To handle those cases when component refactorings are not recorded, we developed RefactoringCrawler, a tool that detects refactorings in Java components. The empirical evaluation of RefactoringCrawler shows that it scales to real-world components, and its accuracy in detecting refactorings is over 85%, a significant improvement over existing solutions.
Not only components evolve, but applications evolve too. Besides refactorings, components and applications evolve through edits. Refactorings and edits can interfere with each other thus impeding the replay. To address this, we developed MolhadoRef, the first software merging system that intelligently merges refactorings and edits from components and applications, therefore upgrading the applications. Experimental evaluation shows that MolhadoRef automatically resolves more merge conflicts than traditional text-based systems while producing fewer merge errors.
To address those cases when the source code of the application cannot be changed in response to component refactorings, we developed a tool, RefactoringBinaryAdapter (ReBA). ReBA automatically generates an adapter between component and application thus enabling old binary applications to run with the latest version of the component without requiring changes in the application.
Not only does our toolset reduce the burden of manual upgrades, but it will influence component designers as well. Without fear that they break the existing applications, designers will be bolder in the kind of changes they can make to their designs. Given this new found freedom, designers will continue to refactor the design of software components to make them easier to understand and use.Submitted by Mark Faust ([email protected]) on 2009-04-22T18:36:09Z
No. of bitstreams: 1
Automated Upgrading of Component-Based Applications.pdf: 1404825 bytes, checksum: b9e4e9f271a08d56c96bf61e92715171 (MD5)Made available in DSpace on 2009-04-22T18:36:09Z (GMT). No. of bitstreams: 1
Automated Upgrading of Component-Based Applications.pdf: 1404825 bytes, checksum: b9e4e9f271a08d56c96bf61e92715171 (MD5)
Previous issue date: 2007-1
Variations on the Author
“Variations on the Author” discusses two of Eduardo Coutinho’s recent films (Um Dia na Vida, from 2010, and Últimas Conversas, posthumously released in 2015) and their contribution to the general question of documentary authorship. The director’s filmography is characterized by a consistent yet self-effacing form of authorial self-inscription: Coutinho often features as an interviewer that rather than express opinions propels discourses; an interviewer that is good at listening. This mode of self-inscription characterizes him as an author who is not expressive but who is nonetheless markedly present on the screen. In Um Dia na Vida, however, Coutinho is completely absent form the image, while Últimas Conversas, on the contrary, includes a confessional prologue that moves the director from the margins to the center of his films. This article examines the ways in which these works stand out in the filmography of a director who offers new insights into the notion of cinematic authorship
A Refactoring Approach to Parallelism
In the multicore era, a major programming task will be to make
programs more parallel. This is tedious because it requires changing many lines
of code, and it is error-prone and non-trivial because programmers need to ensure
non-interference of parallel operations. Fortunately, refactoring tools can help
reduce the analysis and transformation burden.
We present our vision on how refactoring tools can improve
programmer productivity, program performance, and program portability.
We also present the current incarnation of this vision: a toolset that
supports several refactorings for (i) making programs thread-safe, (ii) threading
sequential programs for throughput, and (iii) improving scalability of
parallel programs.is peer reviewedSubmitted by Daniel Dig ([email protected]) on 2010-07-06T21:47:09Z
No. of bitstreams: 1
RefactoringForParallelism.pdf: 279920 bytes, checksum: dfb7b31488255f663f81ec4abf7b55a2 (MD5)Approved for entry into archive by Sarah Shreeves([email protected]) on 2010-07-06T21:54:19Z (GMT) No. of bitstreams: 1
RefactoringForParallelism.pdf: 279920 bytes, checksum: dfb7b31488255f663f81ec4abf7b55a2 (MD5)Made available in DSpace on 2010-07-06T21:54:19Z (GMT). No. of bitstreams: 1
RefactoringForParallelism.pdf: 279920 bytes, checksum: dfb7b31488255f663f81ec4abf7b55a2 (MD5)
Previous issue date: 2010-07-01Microsoft/Intel through UPCRC Illinoispublished or submitted for publicatio
Appropriate Similarity Measures for Author Cocitation Analysis
We provide a number of new insights into the methodological discussion about author cocitation analysis. We first argue that the use of the Pearson correlation for measuring the similarity between authors’ cocitation profiles is not very satisfactory. We then discuss what kind of similarity measures may be used as an alternative to the Pearson correlation. We consider three similarity measures in particular. One is the well-known cosine. The other two similarity measures have not been used before in the bibliometric literature. Finally, we show by means of an example that our findings have a high practical relevance.information science;Pearson correlation;cosine;similarity measure;author cocitation analysis
- …
