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.

Syed S. Islam

dblp:70/5271 · DBLP profile ↗
← Back
14ranked-venue papers
3as first author
0since 2021 · last 2020
—ORCID · none

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

Software engineering, systems software and programming languages · 14 · 3 first-authorArtificial intelligence and machine learning · 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
4 papers
Program analysis · 30% Empirical software engineering · 22% Requirements engineering and software design · 17%

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

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
program slicing
0.522017
Generalized observational slicing for tree-represented modelling languages · ESEC/SIGSOFT FSE 2017
ORBS: language-independent program slicing · SIGSOFT FSE 2014
Requirements engineering and software design
model-driven engineering
0.312017
Generalized observational slicing for tree-represented modelling languages · ESEC/SIGSOFT FSE 2017
Program verification
model slicing
0.312017
Generalized observational slicing for tree-represented modelling languages · ESEC/SIGSOFT FSE 2017
Empirical software engineering
mining software repositories
0.212016
An empirical study on dependence clusters for effort-aware fault-proneness prediction · ASE 2016
Empirical software engineering
software defect prediction
0.212016
An empirical study on dependence clusters for effort-aware fault-proneness prediction · ASE 2016
Program analysis
dynamic analysis
0.212014
ORBS: language-independent program slicing · SIGSOFT FSE 2014
Compilers and program optimization
dependence analysis
0.212013
Efficient Identification of Linchpin Vertices in Dependence Clusters · ACM Trans. Program. Lang. Syst. 2013
Requirements engineering and software design › model-driven engineering
simulink models
0.112017
Generalized observational slicing for tree-represented modelling languages · ESEC/SIGSOFT FSE 2017

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

tree-structured model slicing · 0.3observational slicing · 0.3segmented prediction model · 0.2statement deletion · 0.2parallelization · 0.2graph algorithms · 0.2empirical study · 0.2
YearPublicationVenuePosition
2020 Evaluating lexical approximation of program dependence
Seongmin Lee 0001, Dave W. Binkley, Nicolas E. Gold, Syed S. Islam, Jens Krinke, Shin Yoo
J. Syst. Softw.4
2019 A comparison of tree- and line-oriented observational slicing
Dave W. Binkley, Nicolas E. Gold, Syed S. Islam, Jens Krinke, Shin Yoo
Empir. Softw. Eng.3
2017 Tree-Oriented vs. Line-Oriented Observation-Based Slicing
abstract
Observation-based slicing is a recently-introduced, language-independent slicing technique based on the dependencies observable from program behavior.The original algorithm processed traditional source code at the line-of-text level.A recent variation was developed to slice the tree-based XML representation of executable models.We ported the model slicer to source code using srcML to construct a tree-based representation of traditional source code.We present the results of a comparison of the two slicers using four experiments involving seventeen different programs, including classic benchmarks and larger production systems.The resulting slices had essentially the same size and quite often the same content.Where they differ, the use of tree structure traded an ability to remove unnecessary parts of a statement for the requirement of maintaining aspect of the code structure.Comparing the slicers finds that each has its advantages.For example, when the tree representation facilitates the deletion of large chunks of code, the tree slicer was over eight times faster.In contrast, when slicing C++ code it was over nine times slower because of the multitude of small trees created to support C++ syntax.Given the pros and cons of the two, the results suggest the value of their hybrid combination.
Dave W. Binkley, Nicolas E. Gold, Syed S. Islam, Jens Krinke, Shin Yoo
SCAM3
2017 Generalized observational slicing for tree-represented modelling languages
abstract
Model-driven software engineering raises the abstraction level making complex systems easier to understand than if written in textual code. Nevertheless, large complicated software systems can have large models, motivating the need for slicing techniques that reduce the size of a model. We present a generalization of observation-based slicing that allows the criterion to be defined using a variety of kinds of observable behavior and does not require any complex dependence analysis. We apply our implementation of generalized observational slicing for tree-structured representations to Simulink models. The resulting slice might be the subset of the original model responsible for an observed failure or simply the sub-model semantically related to a classic slicing criterion. Unlike its predecessors, the algorithm is also capable of slicing embedded Stateflow state machines. A study of nine real-world models drawn from four different application domains demonstrates the effectiveness of our approach at dramatically reducing Simulink model sizes for realistic observation scenarios: for 9 out of 20 cases, the resulting model has fewer than 25% of the original model's elements.
Nicolas E. Gold, Dave W. Binkley, Mark Harman, Syed S. Islam, Jens Krinke, Shin Yoo
ESEC/SIGSOFT FSE4
2016 PORBS: A parallel observation-based slicer
abstract
This paper presents PORBS, a parallelised observation-based slicing tool. The tool itself is written in Java making it platform independent and leverages the build chain of the system being sliced to avoid the need to replicate complex compiler analysis. The target audience of PORBS is software engineers and researchers working with and on tools and techniques for software comprehension, debugging, re-engineering, and maintenance.
Syed S. Islam, Dave W. Binkley
ICPC1
2016 An empirical study on dependence clusters for effort-aware fault-proneness prediction
abstract
A dependence cluster is a set of mutually inter-dependent program elements. Prior studies have found that large dependence clusters are prevalent in software systems. It has been suggested that dependence clusters have potentially harmful effects on software quality. However, little empirical evidence has been provided to support this claim. The study presented in this paper investigates the relationship between dependence clusters and software quality at the function-level with a focus on effort-aware fault-proneness prediction. The investigation first analyzes whether or not larger dependence clusters tend to be more fault-prone. Second, it investigates whether the proportion of faulty functions inside dependence clusters is significantly different from the proportion of faulty functions outside dependence clusters. Third, it examines whether or not functions inside dependence clusters playing a more important role than others are more fault-prone. Finally, based on two groups of functions (i.e., functions inside and outside dependence clusters), the investigation considers a segmented fault-proneness prediction model. Our experimental results, based on five well-known open-source systems, show that (1) larger dependence clusters tend to be more fault-prone; (2) the proportion of faulty functions inside dependence clusters is significantly larger than the proportion of faulty functions outside dependence clusters; (3) functions inside dependence clusters that play more important roles are more fault-prone; (4) our segmented prediction model can significantly improve the effectiveness of effort-aware fault-proneness prediction in both ranking and classification scenarios. These findings help us better understand how dependence clusters influence software quality.
Yibiao Yang, Mark Harman, Jens Krinke, Syed S. Islam, Dave W. Binkley, Yuming Zhou, Baowen Xu
ASE4
2015 Uncovering dependence clusters and linchpin functions
abstract
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. Despite several studies finding them common in production code, their formation, identification, and overall structure are not well understood, partly because of challenges in approximating true dependences between program entities. Previous research has considered two approximate dependence relations: a fine-grained statement-level relation using control and data dependences from a program's System Dependence Graph and a coarser relation based on function-level control-flow reachability. In principal, the first is more expensive and more precise than the second. Using a collection of twenty programs, we present an empirical investigation of the clusters identified by these two approaches. In support of the analysis, we consider a hybrid cluster type that works at the coarser function-level but is based on the higher-precision statement-level dependences. The three types of clusters are compared based on their slice sets using two clustering metrics. We also perform extensive analysis of the programs to identify linchpin functions - functions primarily responsible for holding a cluster together. Results include evidence that the less expensive, coarser approaches can often be used as effective proxies for the more expensive, finer-grained approaches. Finally, the linchpin analysis shows that linchpin functions can be effectively and automatically identified.
Dave W. Binkley, Árpád Beszédes, Syed S. Islam, Judit Jász, Béla Vancsics
ICSME3
2015 ORBS and the limits of static slicing
abstract
Observation-based slicing is a recently-introduced, language-independent slicing technique based on the dependencies observable from program behaviour. Due to the well-known limits of dynamic analysis, we may only compute an under-approximation of the true observation-based slice. However, because the observation-based slice captures all possible dependence that can be observed, even such approximations can yield insight into the limitations of static slicing. For example, a static slice, S, that is strictly smaller than the corresponding observation based slice is potentially unsafe. We present the results of three sets of experiments on 12 different programs, including benchmarks and larger programs, which investigate the relationship between static and observation-based slicing. We show that, in extreme cases, observation-based slices can find the true minimal static slice, where static techniques cannot. For more typical cases, our results illustrate the potential for observation-based slicing to highlight limitations in static slicers. Finally, we report on the sensitivity of observation-based slicing to test quality.
Dave W. Binkley, Nicolas E. Gold, Mark Harman, Syed S. Islam, Jens Krinke, Shin Yoo
SCAM4
2014 ORBS: language-independent program slicing
abstract
Current slicing techniques cannot handle systems written in multiple programming languages. Observation-Based Slicing (ORBS) is a language-independent slicing technique capable of slicing multi-language systems, including systems which contain (third party) binary components. A potential slice obtained through repeated statement deletion is validated by observing the behaviour of the program: if the slice and original program behave the same under the slicing criterion, the deletion is accepted. The resulting slice is similar to a dynamic slice. We evaluate five variants of ORBS on ten programs of different sizes and languages showing that it is less expensive than similar existing techniques. We also evaluate it on bash and four other systems to demonstrate feasible large-scale operation in which a parallelised ORBS needs up to 82% less time when using four threads. The results show that an ORBS slicer is simple to construct, effective at slicing, and able to handle systems written in multiple languages without specialist analysis tools.
Dave W. Binkley, Nicolas E. Gold, Mark Harman, Syed S. Islam, Jens Krinke, Shin Yoo
SIGSOFT FSE4
2014 Less is More: Temporal Fault Predictive Performance over Multiple Hadoop Releases
Mark Harman, Syed S. Islam, Yue Jia 0001, Leandro L. Minku, Federica Sarro, Komsan Srivisut
SSBSE2
2014 Coherent clusters in source code
abstract
This paper presents the results of a large scale empirical study of coherent dependence clusters. All statements in a coherent dependence cluster depend upon the same set of statements and affect the same set of statements; a coherent cluster's statements have ‘coherent’ shared backward and forward dependence. We introduce an approximation to efficiently locate coherent clusters and show that it has a minimum precision of 97.76%. Our empirical study also finds that, despite their tight coherence constraints, coherent dependence clusters are in abundance: 23 of the 30 programs studied have coherent clusters that contain at least 10% of the whole program. Studying patterns of clustering in these programs reveals that most programs contain multiple substantial coherent clusters. A series of subsequent case studies uncover that all clusters of significant size map to a logical functionality and correspond to a program structure. For example, we show that for the program acct, the top five coherent clusters all map to specific, yet otherwise non-obvious, functionality. Cluster visualization also brings out subtle deficiencies in program structure and identifies potential refactoring candidates. A study of inter-cluster dependence is used to highlight how coherent clusters are connected to each other, revealing higher-level structures, which can be used in reverse engineering. Finally, studies are presented to illustrate how clusters are not correlated with program faults as they remain stable during most system evolution.
Syed S. Islam, Jens Krinke, Dave W. Binkley, Mark Harman
J. Syst. Softw.1
2013 Efficient Identification of Linchpin Vertices in Dependence Clusters
abstract
Several authors have found evidence of large dependence clusters in the source code of a diverse range of systems, domains, and programming languages. This raises the question of how we might efficiently locate the fragments of code that give rise to large dependence clusters. We introduce an algorithm for the identification of linchpin vertices, which hold together large dependence clusters, and prove correctness properties for the algorithm’s primary innovations. We also report the results of an empirical study concerning the reduction in analysis time that our algorithm yields over its predecessor using a collection of 38 programs containing almost half a million lines of code. Our empirical findings indicate improvements of almost two orders of magnitude, making it possible to process larger programs for which it would have previously been impractical.
Dave W. Binkley, Nicolas E. Gold, Mark Harman, Syed S. Islam, Jens Krinke, Zheng Li 0002
ACM Trans. Program. Lang. Syst.4
2010 Coherent dependence clusters
abstract
Large clusters of mutual dependence can cause problems for comprehension, testing and maintenance. This paper introduces the concept of coherent dependence clusters, techniques for their efficient identification, visualizations to better understand them, empirical results concerning their practical significance. As the paper will show, coherent dependence clusters facilitate a fine grained analysis of the subtle relationships between clusters of dependence.
Syed S. Islam, Jens Krinke, Dave W. Binkley, Mark Harman
PASTE1
2010 Assessing the impact of global variables on program dependence and dependence clusters
Dave W. Binkley, Mark Harman, Youssef Hassoun, Syed S. Islam, Zheng Li 0002
J. Syst. Softw.4