Demo Data from SIGIR 2026 / reviewers in the wild / expert
Ahmed Tamrawi
dblp:77/9102
· DBLP profile ↗
11ranked-venue papers
6as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 6 first-authorSecurity and privacy · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1
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 · 54% Empirical software engineering · 23% Program analysis · 16% |
Topics — the 11 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering
mining software repositories |
0.3 | 2 | 2012 | Graph-based pattern-oriented, context-sensitive source code completion · ICSE 2012 Fuzzy set and cache-based approach for bug triaging · SIGSOFT FSE 2011 |
Software maintenance and evolution
bug triage |
0.2 | 2 | 2011 | Fuzzy set and cache-based approach for bug triaging · SIGSOFT FSE 2011 Fuzzy set-based automatic bug triaging · ICSE 2011 |
Software maintenance and evolution › API usage
API usage pattern mining |
0.1 | 1 | 2012 | Graph-based pattern-oriented, context-sensitive source code completion · ICSE 2012 |
Program synthesis and code generation
code completion |
0.1 | 1 | 2012 | Graph-based pattern-oriented, context-sensitive source code completion · ICSE 2012 |
Software maintenance and evolution
code smell |
0.1 | 1 | 2012 | SYMake: a build code analysis and refactoring tool for makefiles · ASE 2012 |
Software maintenance and evolution
refactoring |
0.1 | 1 | 2012 | SYMake: a build code analysis and refactoring tool for makefiles · ASE 2012 |
Program analysis
static analysis |
0.1 | 1 | 2012 | Build code analysis with symbolic evaluation · ICSE 2012 |
Software maintenance and evolution
technical debt |
0.1 | 1 | 2012 | SYMake: a build code analysis and refactoring tool for makefiles · ASE 2012 |
Software maintenance and evolution › bug triage
automatic bug triage |
0.1 | 1 | 2011 | Fuzzy set-based automatic bug triaging · ICSE 2011 |
Empirical software engineering › mining software repositories
bug report analysis |
0.1 | 1 | 2011 | Fuzzy set and cache-based approach for bug triaging · SIGSOFT FSE 2011 |
Empirical software engineering › developer studies › developer expertise
developer expertise modeling |
0.0 | 1 | 2011 | Fuzzy set-based automatic bug triaging · ICSE 2011 |
Methods — techniques the papers use, named apart from their topics
fuzzy set · 0.2symbolic evaluation · 0.1static analysis · 0.1graph-based code completion · 0.1membership score · 0.1cache-based modeling · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Control flow equivalence method for establishing sanctity of compiling
Payas Awadhutkar, Ahmed Tamrawi, Ryan Goluch, Suresh C. Kothari |
Comput. Secur. | 2 |
| 2018 | Projected control graph for computing relevant program behaviors
Ahmed Tamrawi, Suresh C. Kothari |
Sci. Comput. Program. | 1 |
| 2016 | Projected Control Graph for Accurate and Efficient Analysis of Safety and Security VulnerabilitiesabstractThe goal of path-sensitive analysis (PSA) is to achieve accuracy by accounting precisely for the execution behavior along each path of a control flow graph (CFG). A practical adoption of PSA is hampered by two roadblocks: (a) the exponential growth of the number of CFG paths, and (b) the exponential complexity of a path feasibility check. We introduce projected control graph (PCG) as an optimal mathematical abstraction to address these roadblocks.The PCG follows from the simple observation that for any given analysis problem, the number of distinct relevant execution behaviors may be much smaller than the number of CFG paths. The PCG is a projection of the CFG to retain only the relevant execution behaviors and elide duplicate paths with identical execution behavior. A mathematical definition of PCG and an efficient algorithm to transform CFG to PCG are presented. We present an empirical study for three major versions of the Linux kernel to assess the practical benefit of using the optimal mathematical abstraction. As a measure of the efficiency gain, the study reports the reduction from CFG to PCG graphs for all relevant functions for pairing Lock and Unlock on all feasible execution paths. We built a tool to compute these graphs for 66,609 Lock instances. The CFG and PCG graphs with their source correspondence are posted on a website. We used these PCG graphs in a classroom project to audit the results of Lock and Unlock pairing done by the Linux Driver Verification (LDV) tool, the top-rated formal verification tool for the Linux kernel. Our audit has revealed complex Linux bugs missed by LDV. Ahmed Tamrawi, Suresh C. Kothari |
APSEC | 1 |
| 2016 | Human-machine resolution of Invisible Control Flow?abstractInvisible Control Flow (ICF) results from dynamic binding and asynchronous processing. For modern software replete with ICF, the ability to analyze and resolve ICF is crucial for verifying software. A fully automated analysis to resolve ICF suffers from imprecision and high computational complexity. As a practical alternative, we present a novel solution of interactive human-machine collaboration to resolve ICF. Our approach is comprised of interactive program analysis and comprehension to systematically capture and link the clues crucial for resolving ICF. We present the tool support we have developed using the query language and visualization capabilities of the Atlas Platform. We illustrate the approach using examples where resolving ICF is crucial to verify software and show a complex bug in the Linux kernel discovered by resolving ICF. Suresh C. Kothari, Ahmed Tamrawi, Jon Mathews |
ICPC | 2 |
| 2014 | A "Human-in-the-loop" approach for resolving complex software anomaliesabstractAutomated static analysis tools are widely used in identifying software anomalies, such as memory leak, unsafe thread synchronization and malicious behaviors in smartphone applications. Such anomaly-prone scenarios can be bifurcated into: “ordinary” (analysis requires relatively simple automation) and “complex” (analysis poses extraordinary automation challenges). While automated static analysis tools can resolve ordinary scenarios with high accuracy, automating the analysis of complex scenarios can be very challenging and, at times, infeasible. Even when feasible the cost for full automation can be exorbitant: either in implementing the automation or in sifting through the large number of erroneous results manually. Instead, we appeal for a “Human-in-the-loop” approach called “Amplified Reasoning Technique” (ART). While some of the existing approaches do involve human in the analysis process, the roles played by man and machine are mainly segregated. Whereas, ART puts man and machine in a “loop” in an interactive and visualization-based fashion. This paper makes an attempt to convince its readers to make their analysis of software anomalies ART-based by presenting real-world case studies of complex anomalies and how an ART based approach can be very effective in resolving them. The case studies highlight the desired characteristics of an ART based tool and the type of role it plays in amplifying human intelligence. Suresh C. Kothari, Akshay Deepak, Ahmed Tamrawi, Benjamin Holland, Sandeep Krishnan |
SMC | 3 |
| 2012 | Graph-based pattern-oriented, context-sensitive source code completionabstractCode completion helps improve developers' programming productivity. However, the current support for code completion is limited to context-free code templates or a single method call of the variable on focus. Using software libraries for development, developers often repeat API usages for certain tasks. Thus, a code completion tool could make use of API usage patterns. In this paper, we introduce GraPacc, a graph-based, pattern-oriented, context-sensitive code completion approach that is based on a database of such patterns. GraPacc represents and manages the API usage patterns of multiple variables, methods, and control structures via graph-based models. It extracts the context-sensitive features from the code under editing, e.g. the API elements on focus and their relations to other code elements. Those features are used to search and rank the patterns that are most fitted with the current code. When a pattern is selected, the current code will be completed via a novel graph-based code completion algorithm. Empirical evaluation on several real-world systems shows that GraPacc has a high level of accuracy in code completion. Anh Tuan Nguyen 0001, Tung Thanh Nguyen, Hoan Anh Nguyen, Ahmed Tamrawi, Hung Viet Nguyen, Jafar M. Al-Kofahi, Tien N. Nguyen |
ICSE | 4 |
| 2012 | Build code analysis with symbolic evaluationabstractBuild process is crucial in software development. However, the analysis support for build code is still limited. In this paper, we present SYMake, an infrastructure and tool for the analysis of build code in make. Due to the dynamic nature of make language, it is challenging to understand and maintain complex Makefiles. SYMake provides a symbolic evaluation algorithm that processes Makefiles and produces a symbolic dependency graph (SDG), which represents the build dependencies (i.e. rules) among files via commands. During the symbolic evaluation, for each resulting string value in an SDG that represents a part of a file name or a command in a rule, SYMake provides also an acyclic graph (called T-model) to represent its symbolic evaluation trace. We have used SYMake to develop algorithms and a tool 1) to detect several types of code smells and errors in Makefiles, and 2) to support build code refactoring, e.g. renaming a variable/target even if its name is fragmented and built from multiple substrings. Our empirical evaluation for SYMake's renaming on several real-world systems showed its high accuracy in entity renaming. Our controlled experiment showed that with SYMake, developers were able to understand Makefiles better and to detect more code smells as well as to perform refactoring more accurately. Ahmed Tamrawi, Hoan Anh Nguyen, Hung Viet Nguyen, Tien N. Nguyen |
ICSE | 1 |
| 2012 | SYMake: a build code analysis and refactoring tool for makefilesabstractSoftware building is an important task during software development. However, program analysis support for build code is still limited, especially for build code written in a dynamic language such as Make. We introduce SYMake, a novel program analysis and refactoring tool for build code in Makefiles. SYMake is capable of detecting several types of code smells and errors such as cyclic dependencies, rule inclusion, duplicate prerequisites, recursive variable loops, etc. It also supports automatic build code refactoring, e.g. rule extraction/removal, target creation, target/variable renaming, prerequisite extraction, etc. In addition, SYMake provides the analysis on defined rules, targets, prerequisites, and associated information to help developers better understand build code in a Makefile and its included files. Ahmed Tamrawi, Hoan Anh Nguyen, Hung Viet Nguyen, Tien N. Nguyen |
ASE | 1 |
| 2011 | Fuzzy set-based automatic bug triagingabstractAssigning a bug to the right developer is a key in reducing the cost, time, and efforts for developers in a bug fixing process. This assignment process is often referred to as bug triaging. In this paper, we propose Bugzie, a novel approach for automatic bug triaging based on fuzzy set-based modeling of bug-fixing expertise of developers. Bugzie considers a system to have multiple technical aspects, each is associated with technical terms. Then, it uses a fuzzy set to represent the developers who are capable/competent of fixing the bugs relevant to each term. The membership function of a developer in a fuzzy set is calculated via the terms extracted from the bug reports that (s)he has fixed, and the function is updated as new fixed reports are available. For a new bug report, its terms are extracted and corresponding fuzzy sets are union'ed. Potential fixers will be recommended based on their membership scores in the union'ed fuzzy set. Our preliminary results show that Bugzie achieves higher accuracy and efficiency than other state-of-the-art approaches. Ahmed Tamrawi, Tung Thanh Nguyen, Jafar M. Al-Kofahi, Tien N. Nguyen |
ICSE | 1 |
| 2011 | Fuzzy set and cache-based approach for bug triagingabstractBug triaging aims to assign a bug to the most appropriate fixer. That task is crucial in reducing time and efforts in a bug fixing process. In this paper, we propose Bugzie, a novel approach for automatic bug triaging based on fuzzy set and cache-based modeling of the bug-fixing expertise of developers. Bugzie considers a software system to have multiple technical aspects, each of which is associated with technical terms. For each technical term, it uses a fuzzy set to represent the developers who are capable/competent of fixing the bugs relevant to the corresponding aspect. The fixing correlation of a developer toward a technical term is represented by his/her membership score toward the corresponding fuzzy set. The score is calculated based on the bug reports that (s)he has fixed, and is updated as the newly fixed bug reports are available. For a new bug report, Bugzie combines the fuzzy sets corresponding to its terms and ranks the developers based on their membership scores toward that combined fuzzy set to find the most capable fixers. Our empirical results show that Bugzie achieves significantly higher accuracy and time efficiency than existing state-of-the-art approaches. Ahmed Tamrawi, Tung Thanh Nguyen, Jafar M. Al-Kofahi, Tien N. Nguyen |
SIGSOFT FSE | 1 |
| 2010 | Fuzzy set approach for automatic tagging in evolving softwareabstractSoftware tagging has been shown to be an efficient, lightweight social computing mechanism to improve different social and technical aspects of software development. Despite the importance of tags, there exists limited support for automatic tagging for software artifacts, especially during the evolutionary process of software development. We conducted an empirical study on IBM Jazz's repository and found that there are several missing tags in artifacts and more precise tags are desirable. This paper introduces a novel, accurate, automatic tagging recommendation tool that is able to take into account users' feedbacks on tags, and is very efficient in coping with software evolution. The core technique is an automatic tagging algorithm that is based on fuzzy set theory. Our empirical evaluation on the real-world IBM Jazz project shows the usefulness and accuracy of our approach and tool. Jafar M. Al-Kofahi, Ahmed Tamrawi, Tung Thanh Nguyen, Hoan Anh Nguyen, Tien N. Nguyen |
ICSM | 2 |