Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Stas Negara

dblp:15/959 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
0since 2021 · last 2014
—ORCID · none

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

Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Software maintenance and evolution · 32% Empirical software engineering · 32% Software testing · 23%

Topics — the 12 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › program differencing
fine-grained source code change extraction
0.212014
Mining fine-grained code changes to detect unknown change patterns · ICSE 2014
Empirical software engineering
mining software repositories
0.212014
Mining fine-grained code changes to detect unknown change patterns · ICSE 2014
Software testing
regression testing
0.212014
An empirical evaluation and comparison of manual and automated test selection · ASE 2014
Software testing › regression testing
regression test selection
0.212014
An empirical evaluation and comparison of manual and automated test selection · ASE 2014
Empirical software engineering › mining software repositories › commit analysis
repetitive code changes
0.212014
Mining fine-grained code changes to detect unknown change patterns · ICSE 2014
Software maintenance and evolution
refactoring
0.222012
Use, disuse, and misuse of automated refactorings · ICSE 2012
ReBA: refactoring-aware binary adaptation of evolving libraries · ICSE 2008
Empirical software engineering
developer studies
0.112012
Use, disuse, and misuse of automated refactorings · ICSE 2012
Program analysis
static analysis
0.112011
Inferring ownership transfer for efficient message passing · PPoPP 2011
Software maintenance and evolution › software evolution
library API evolution
0.112008
ReBA: refactoring-aware binary adaptation of evolving libraries · ICSE 2008
Software maintenance and evolution
software evolution
0.112008
ReBA: refactoring-aware binary adaptation of evolving libraries · ICSE 2008
Concurrent programming › concurrency models
actor model
0.012011
Inferring ownership transfer for efficient message passing · PPoPP 2011
Concurrent programming
message passing
0.012011
Inferring ownership transfer for efficient message passing · PPoPP 2011

Methods — techniques the papers use, named apart from their topics

pattern mining · 0.2empirical study · 0.2interviews · 0.1interaction data collection · 0.1field study · 0.1static analysis · 0.1program transformation · 0.1binary rewriting · 0.1
YearPublicationVenuePosition
2014 Mining fine-grained code changes to detect unknown change patterns
abstract
Identifying repetitive code changes benefits developers, tool builders, and researchers. Tool builders can automate the popular code changes, thus improving the productivity of developers. Researchers can better understand the practice of code evolution, advancing existing code assistance tools and benefiting developers even further. Unfortunately, existing research either predominantly uses coarse-grained Version Control System (VCS) snapshots as the primary source of code evolution data or considers only a small subset of program transformations of a single kind - refactorings.
Stas Negara, Mihai Codoban, Danny Dig, Ralph E. Johnson
ICSE1
2014 An empirical evaluation and comparison of manual and automated test selection
abstract
Regression test selection speeds up regression testing by re-running only the tests that can be affected by the most recent code changes. Much progress has been made on research in automated test selection over the last three decades, but it has not translated into practical tools that are widely adopted. Therefore, developers either re-run all tests after each change or perform manual test selection. Re-running all tests is expensive, while manual test selection is tedious and error-prone. Despite such a big trade-off, no study assessed how developers perform manual test selection and compared it to automated test selection.
Milos Gligoric 0001, Stas Negara, Owolabi Legunsen, Darko Marinov
ASE2
2013 A Comparative Study of Manual and Automated Refactorings
Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph E. Johnson, Danny Dig
ECOOP1
2013 A Compositional Paradigm of Automating Refactorings
Mohsen Vakilian, Nicholas Chen, Roshanak Zilouchian Moghaddam, Stas Negara, Ralph E. Johnson
ECOOP4
2012 Is It Dangerous to Use Version Control Histories to Study Source Code Evolution?
Stas Negara, Mohsen Vakilian, Nicholas Chen, Ralph E. Johnson, Danny Dig
ECOOP1
2012 Use, disuse, and misuse of automated refactorings
abstract
Though refactoring tools have been available for more than a decade, research has shown that programmers underutilize such tools. However, little is known about why programmers do not take advantage of these tools. We have conducted a field study on programmers in their natural settings working on their code. As a result, we collected a set of interaction data from about 1268 hours of programming using our minimally intrusive data collectors. Our quantitative data show that programmers prefer lightweight methods of invoking refactorings, usually perform small changes using the refactoring tool, proceed with an automated refactoring even when it may change the behavior of the program, and rarely preview the automated refactorings. We also interviewed nine of our participants to provide deeper insight about the patterns that we observed in the behavioral data. We found that programmers use predictable automated refactorings even if they have rare bugs or change the behavior of the program. This paper reports some of the factors that affect the use of automated refactorings such as invocation method, awareness, naming, trust, and predictability and the major mismatches between programmers' expectations and automated refactorings. The results of this work contribute to producing more effective tools for refactoring complex software.
Mohsen Vakilian, Nicholas Chen, Stas Negara, Balaji Ambresh Rajkumar, Brian P. Bailey, Ralph E. Johnson
ICSE3
2011 Automatic Handling of Global Variables for Multi-threaded MPI Programs
abstract
Conventional implementations of the MPI standard tend to associate one MPI process per processor, which limits their support for modern multi-core platforms. An increasingly popular approach is to combine MPI with threads where MPI "processes" are light-weight threads. Global variables in legacy MPI applications, however, present a challenge because they may be accessed by multiple MPI threads simultaneously. Thus, transforming legacy MPI applications to become thread-safe in such MPI execution environments requires proper handling of global variables. In this paper, we present three approaches to automatically eliminate global variables to ensure thread-safety for an MPI program. These approaches include: (a) a compiler-based refactoring technique, using a Photran-based tool as an example, which automates the source-to-source transformation for programs written in Fortran, (b) a technique based on a global offset table (GOT); and (c) a technique based on thread local storage (TLS). The second and third methods automatically detect global variables and privatize them for each thread at runtime. We discuss the advantages and disadvantages of these approaches and compare their performance using both synthetic benchmarks, such as the NAS Benchmarks, and a real scientific application, the FLASH code.
Gengbin Zheng, Stas Negara, Celso L. Mendes, Laxmikant V. Kalé, Eduardo Rocha Rodrigues
ICPADS2
2011 Inferring ownership transfer for efficient message passing
abstract
One of the more popular paradigms for concurrent programming is the Actor model of message passing; it has been adopted in one form or another by a number of languages and frameworks. By avoiding a shared local state and instead relying on message passing, the Actor model facilitates modular programming. An important challenge for message passing languages is to transmit messages efficiently. This requires retaining the pass-by-value semantics of messages while avoiding making a deep copy on sequential or shared memory multicore processors. A key observation is that many messages have an ownership transfer semantics; such messages can be sent efficiently using pointers without introducing shared state between concurrent objects. We propose a conservative static analysis algorithm which infers if the content of a message is compatible with an ownership transfer semantics. Our tool, called SOTER (for Safe Ownership Transfer enablER) transforms the program to avoid the cost of copying the contents of a message whenever it can infer the content obeys the ownership transfer semantics. Experiments using a range of programs suggest that our conservative static analysis method is usually able to infer ownership transfer. Performance results demonstrate that the transformed programs execute up to an order of magnitude faster than the original programs.
Stas Negara, Rajesh K. Karmani, Gul A. Agha
PPoPP1
2008 ReBA: refactoring-aware binary adaptation of evolving libraries
abstract
Although in theory the APIs of software libraries and frameworks should be stable, they change in practice. This forces clients of the library API to change as well, making software maintenance expensive. Changing a client might not even be an option if its source code is missing or certain policies forbid its change. By giving a library both the old and the new API, clients can be shielded from API changes and can run with the new version of the library.
Danny Dig, Stas Negara, Vibhu Mohindra, Ralph E. Johnson
ICSE2