EDBT 2026 Demo / reviewers in the wild / expert
Mohsen Vakilian
dblp:05/6486
· DBLP profile ↗
11ranked-venue papers
6as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 6 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
7 papers |
Program analysis · 28% Software maintenance and evolution · 26% Concurrent programming · 19% | |
| Human-computer interaction and pervasive computing
1 paper |
Usability and user experience research · 100% |
Topics — the 18 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming › deterministic execution
deterministic parallelism |
0.3 | 3 | 2015 | Region and Effect Inference for Safe Parallelism (T) · ASE 2015 A type and effect system for deterministic parallel Java · OOPSLA 2009 Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Software maintenance and evolution
refactoring |
0.3 | 2 | 2014 | Alternate refactoring paths reveal usability problems · ICSE 2014 Use, disuse, and misuse of automated refactorings · ICSE 2012 |
Program verification
annotation inference |
0.2 | 1 | 2015 | Region and Effect Inference for Safe Parallelism (T) · ASE 2015 |
Software maintenance and evolution
build systems |
0.2 | 1 | 2015 | Automated Decomposition of Build Targets · ICSE (1) 2015 |
Program analysis › static analysis
dependency analysis |
0.2 | 1 | 2015 | Automated Decomposition of Build Targets · ICSE (1) 2015 |
Concurrent programming › concurrency correctness
safe parallelism |
0.2 | 1 | 2015 | Region and Effect Inference for Safe Parallelism (T) · ASE 2015 |
Software maintenance and evolution
software modularity |
0.2 | 1 | 2015 | Automated Decomposition of Build Targets · ICSE (1) 2015 |
Program analysis
static analysis |
0.2 | 1 | 2015 | Region and Effect Inference for Safe Parallelism (T) · ASE 2015 |
Programming languages and type systems
type inference |
0.2 | 1 | 2015 | Region and Effect Inference for Safe Parallelism (T) · ASE 2015 |
Program analysis › type-based analysis
type qualifier inference |
0.2 | 1 | 2015 | Cascade: A Universal Programmer-Assisted Type Qualifier Inference Tool · ICSE (1) 2015 |
Usability and user experience research › evaluation methodology
critical incident method |
0.2 | 1 | 2014 | Alternate refactoring paths reveal usability problems · ICSE 2014 |
Usability and user experience research › usability evaluation
usability problem detection |
0.2 | 1 | 2014 | Alternate refactoring paths reveal usability problems · ICSE 2014 |
Empirical software engineering
developer studies |
0.1 | 1 | 2012 | Use, disuse, and misuse of automated refactorings · ICSE 2012 |
Program analysis
effect analysis |
0.1 | 1 | 2009 | Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Program analysis › effect analysis
effect inference |
0.1 | 1 | 2009 | Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Programming languages and type systems › computational effects
type and effect systems |
0.1 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Programming languages and type systems
type systems |
0.1 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Programming languages and type systems
object-oriented programming |
0.0 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Methods — techniques the papers use, named apart from their topics
field study · 0.5interaction log analysis · 0.4critical incident technique · 0.4type qualifier inference · 0.2strongly connected component analysis · 0.2interactive inference · 0.2greedy algorithm · 0.2constraint satisfaction · 0.2interviews · 0.1interaction data collection · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Region and effect inference for safe parallelism
Alexandros Tzannes, Stephen Heumann, Lamyaa Eloussi, Mohsen Vakilian, Vikram S. Adve, Michael Han 0003 |
Autom. Softw. Eng. | 4 |
| 2015 | Cascade: A Universal Programmer-Assisted Type Qualifier Inference ToolabstractType qualifier inference tools usually operate in batch mode and assume that the program must not be changed except to add the type qualifiers. In practice, programs must be changed to make them type-correct, and programmers must understand them. Cascade is an interactive type qualifier inference tool that is easy to implement and universal (i.e., it can work for any type qualifier system for which a checker is implemented). It shows that qualifier inference can achieve better results by involving programmers rather than relying solely on automation. Mohsen Vakilian, Amarin Phaosawasdi, Michael D. Ernst, Ralph E. Johnson |
ICSE (1) | 1 |
| 2015 | Automated Decomposition of Build TargetsabstractA (build) target specifies the information that is needed to automatically build a software artifact. This paper focuses on underutilized targets - an important dependency problem that we identified at Google. An underutilized target is one with files not needed by some of its dependents. Underutilized targets result in less modular code, overly large artifacts, slow builds, and unnecessary build and test triggers. To mitigate these problems, programmers decompose underutilized targets into smaller targets. However, manually decomposing a target is tedious and error-prone. Although we prove that finding the best target decomposition is NP-hard, we introduce a greedy algorithm that proposes a decomposition through iterative unification of the strongly connected components of the target. Our tool found that 19,994 of 40,000 Java library targets at Google can be decomposed to at least two targets. The results show that our tool is (1) efficient because it analyzes a target in two minutes on average and (2) effective because for each of 1,010 targets, it would save at least 50% of the total execution time of the tests triggered by the target. Mohsen Vakilian, Raluca Sauciuc, J. David Morgenthaler, Vahab S. Mirrokni |
ICSE (1) | 1 |
| 2015 | Region and Effect Inference for Safe Parallelism (T)abstractIn this paper, we present the first full regions-and-effects inference algorithm for explicitly parallel fork-join programs. We infer annotations inspired by Deterministic Parallel Java (DPJ) for a type-safe subset of C++. We chose the DPJ annotations because they give the strongest safety guarantees of any existing concurrency-checking approach we know of, static or dynamic, and it is also the most expressive static checking system we know of that gives strong safety guarantees. This expressiveness, however, makes manual annotation difficult and tedious, which motivates the need for automatic inference, but it also makes the inference problem very challenging: the code may use region polymorphism, imperative updates with complex aliasing, arbitrary recursion, hierarchical region specifications, and wildcard elements to describe potentially infinite sets of regions. We express the inference as a constraint satisfaction problem and develop, implement, and evaluate an algorithm for solving it. The region and effect annotations inferred by the algorithm constitute a checkable proof of safe parallelism, and it can be recorded both for documentation and for fast and modular safety checking. Alexandros Tzannes, Stephen Heumann, Lamyaa Eloussi, Mohsen Vakilian, Vikram S. Adve, Michael Han 0003 |
ASE | 4 |
| 2014 | Alternate refactoring paths reveal usability problemsabstractModern Integrated Development Environments (IDEs) support many refactorings. Yet, programmers greatly underuse automated refactorings. Recent studies have applied traditional usability testing methodologies such as surveys, lab studies, and interviews to find the usability problems of refactoring tools. However, these methodologies can identify only certain kinds of usability problems. The critical incident technique (CIT) is a general methodology that uncovers usability problems by analyzing troubling user interactions. We adapt CIT to refactoring tools and show that alternate refactoring paths are indicators of the usability problems of refactoring tools. We define an alternate refactoring path as a sequence of user interactions that contains cancellations, reported messages, or repeated invocations of the refactoring tool. We evaluated our method on a large corpus of refactoring usage data, which we collected during a field study on 36 programmers over three months. This method revealed 15 usability problems, 13 of which were previously unknown. We reported these problems and proposed design improvements to Eclipse developers. The developers acknowledged all of the problems and have already fixed four of them. This result suggests that analyzing alternate paths is effective at discovering the usability problems of interactive program transformation (IPT) tools. Mohsen Vakilian, Ralph E. Johnson |
ICSE | 1 |
| 2013 | A Comparative Study of Manual and Automated Refactorings
Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph E. Johnson, Danny Dig |
ECOOP | 3 |
| 2013 | A Compositional Paradigm of Automating Refactorings
Mohsen Vakilian, Nicholas Chen, Roshanak Zilouchian Moghaddam, Stas Negara, Ralph E. Johnson |
ECOOP | 1 |
| 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 |
ECOOP | 2 |
| 2012 | Use, disuse, and misuse of automated refactoringsabstractThough 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 |
ICSE | 1 |
| 2009 | Inferring Method Effect Summaries for Nested Heap RegionsabstractEffect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations that they require. A tool that infers effects automatically can make effect systems practical. We present an effect inference algorithm and an Eclipse plug-in, DPJizer, which alleviate the burden of writing effect annotations for a language called Deterministic Parallel Java (DPJ). The key novel feature of the algorithm is the ability to infer effects on nested heap regions. Besides DPJ, we also illustrate how the algorithm can be used for a different effect system based on object ownership. Our experience shows that DPJizer is both useful and effective: (i) inferring effect annotations automatically saves significant programming burden; and (ii) inferred effects are more precise than those written manually, and are fine-grained enough to enable the compiler to prove determinism of the program. Mohsen Vakilian, Danny Dig, Robert L. Bocchino Jr., Jeffrey Overbey, Vikram S. Adve, Ralph E. Johnson |
ASE | 1 |
| 2009 | A type and effect system for deterministic parallel JavaabstractToday's shared-memory parallel programming models are complex and error-prone.While many parallel programs are intended to be deterministic, unanticipated thread interleavings can lead to subtle bugs and nondeterministic semantics. In this paper, we demonstrate that a practical type and effect system can simplify parallel programming by guaranteeing deterministic semantics with modular, compile-time type checking even in a rich, concurrent object-oriented language such as Java. We describe an object-oriented type and effect system that provides several new capabilities over previous systems for expressing deterministic parallel algorithms.We also describe a language called Deterministic Parallel Java (DPJ) that incorporates the new type system features, and we show that a core subset of DPJ is sound. We describe an experimental validation showing thatDPJ can express a wide range of realistic parallel programs; that the new type system features are useful for such programs; and that the parallel programs exhibit good performance gains (coming close to or beating equivalent, nondeterministic multithreaded programs where those are available). Robert L. Bocchino Jr., Vikram S. Adve, Danny Dig, Sarita V. Adve, Stephen Heumann, Rakesh Komuravelli, Jeffrey Overbey, Patrick Simmons, Hyojin Sung, Mohsen Vakilian |
OOPSLA | 10 |