Aftab Hussain

Peace be upon you

PhD Student, Department of Computer Science, UCI

> Preliminary version of Graspan paper accepted in ASPLOS 2017 available.
> Graspan codes released in Java and C++.
> Webpage launched for upcoming ASPLOS’17 Tutorial: ``Systemized'' Program Analyses – A ``Big Data'' Perspective on Static Analysis Scalability



My research focuses on merging the areas of systems and programming languages. In particular, I am interested in how graph systems could benefit scalability problems in program analysis. My advisor is Prof. Harry Xu.


Graspan August 2015 to present, Programming Languages and Systems Group, UCI

There is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most existing static analyses developed for these systems are simple checkers that find bugs based on pattern matching. Despite many sophisticated interprocedural analyses, few of them have been employed to improve checkers for systems code due to their complex implementations and their poor scalability and parallelizability.

In this project, we revisit the scalability problem of interprocedural static analysis from a “Big Data” perspective. That is, we turn Big Code analysis into Big Data analytics and leverage novel data processing techniques to solve this traditional programming language problem. We develop Graspan, a disk-based parallel graph system that uses an edge-pair centric computation model to compute dynamic transitive closures on large program graphs.

We implement fully context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations. Moreover, we show that these analyses can be used to augment existing checkers; these augmented checkers uncovered 132 new NULL pointer bugs and 1308 unnecessary NULL tests, as well as reported 401 fewer false positives in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.

Graspan has been accepted in ASPLOS 2017. Graspan's implementation is available in Java and C++.

Exploring Stack Overflow for automatic code generation March 2014 to February 2015, Big Data Mondego Lab, UCI

Enriched by natural language texts, Stack Overflow code snippets are an invaluable code-centric knowledge base of small units of source code. Besides being useful for software developers, these annotated snippets can potentially serve as the basis for automated tools that provide working code solutions to specific natural language queries. With the goal of developing automated tools with the Stack Overflow snippets and surrounding text, we investigate the usability of SOF snippets. A total of 3M code snippets are analyzed across four languages: C#, Java, JavaScript, and Python. Python and JavaScript proved to be the languages for which the most code snippets are usable. Conversely, Java and C# proved to be the languages with the lowest usability rate.

This work has been accepted in MSR 2016.

Code Restructuring via Graph Clustering 2012, Graph Drawing and Information Visualization Lab, BUET

Software restructuring techniques based on hierarchical agglomerative clustering (HAC) algorithms have been widely used to restructure large modules with low cohesion into smaller modules with high cohesion. These techniques generate clustering trees of modules, that are sliced at different cut-points in order to obtain desired restructurings. Choosing appropriate cut-points has always been a difficult problem in clustering. Previous HACs generate clustering trees that have large number of cut-points. Moreover, many of those cut-points return clusters of which only a few lead to meaningful restructurings.

We designed a new hierarchical clustering technique for restructuring software at the function level that generates clustering trees with lower number of cut-points, which yield a lower number of redundant clusters. Our technique yielded good restructurings in comparison with four previous HAC techniques, when applied on real-life industrial programs.

This work has been accepted in ISEC 2013.


* Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code, Kai Wang, Aftab Hussain, Zhiqiang Zuo, Guoqing Xu, Ardalan Amiri Sani, Architectural Support for Programming Languages and Operating Systems (ASPLOS '17), Xi'an, ACM, 2017 (to appear)

* From query to usable code: an analysis of stack overflow code snippets, Di Yang, Aftab Hussain, Cristina Videira Lopes, 13th International Workshop on Mining Software Repositories (MSR '16'), ACM, Austin, 2016

* L-Shaped Drawings of Series-Parallel Graphs, Md. Iqbal Hossain, Shaheena Sultana, Aftab Hussain, Nazmun Nessa Moon, Md. Saidur Rahman, Dhaka, 2013

* A new hierarchical clustering technique for restructuring software at the function level, Aftab Hussain, Md. Saidur Rahman, 6th India Software Engineering Conference (ISEC '13'), ACM, New Delhi, 2013

About Me

Hi! :)

I am a PhD student in Computer Science at UCI. Previously, I got my M.Sc in Software Engineering @UCI. Before coming to the US, I got my M.Sc in CSE from BUET in my home country, Bangladesh. Prior to that, I did my B.Tech in CSE from IEM, Kolkata, India.


  • Office:
    3241 Donald Bren Hall
    Bren School of Information and Computer Sciences
    University of California, Irvine
    Irvine, CA, 92697-3435
    aftabh at uci . edu