Search for courses or information

Dr Syed Islam

Lecturer

    Syed Islam is a Lecturer with the School of Architecture, Computing and Engineering (ACE). He has a Ph.D. in Advanced Computing Research (Program Analysis) from University College London (UCL). He also has an MSc. in Advanced Software Engineering from King's College London (KCL). Syed is also a Cisco Certified Networking Associate (CCNA) and has completed courses in Graduate Certificate in Academic Practices.

    Syed has previously worked as Research Associate at Centre for Health Informatics and Multiprofessional Education (CHIME) at UCL where he worked on Software Visualisation and Big Data. Prior to this, he was a Research Associate at Centre for Research on Evolution Search and Testing (CREST) under the Computer Science department at UCL where his research incorporated areas of software engineering, dependence analysis, program analysis and program slicing. Syed has also been a Lecturer at BRAC University in Bangladesh where he taught undergraduate and professional courses.



    Overview

    Dependence Analysis

    Dependence analysis is a vital part of program analysis and has applications in a wide range of software engineering activities . My research has uncovered the existence of highly inter-dependent clusters (coherent clusters) in production source code and identified reasons for their formation. These clusters have been shown to map directly to program structure, which can aid in program comprehension and understanding, as well as, identifying structural defects in code.

    Code Metrics & Machine Learning

    I have done research into identifying unique and useful code metrics for certain applications using principal component analysis. Such analysis helps identify metics that can be used as predictors for code quality and has been successfully used in supervised learning models to predict software faults.

    Dependence Clusters

    A dependence cluster is a maximal set of program statements that are mutually inter-dependent. My research has focused on quantitative analysis to show the existence of these clusters in production source code and qualitative study of the underlying reason for their formation. My research has introduced coherent dependence clusters, a specialised form of dependence clusters. These clusters have been shown to map directly to program structure, which can aid in program comprehension and understanding, as well as, identifying structural defects in code.

    Program Slicing

    Current program slicing techniques cannot handle systems written in multiple programming languages. Observation-based slicing (ORBS) is a novel 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. We have developed ORBS to take advantage of the existing build tool chains to achieve observation-based slicing. I have also created a parallel version of ORBS to reduce slicing times and make the entire process usable in practice.

    Software Visualisation

    As part of my research on clusters, I have also developed a multi-level visualisation tool (deCluVi) for mapping software metrics visualization is created from System Dependence Graphs and static backward/forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers.to program statements using colour and dimension. The visualization is created from System Dependence Graphs and static backward/forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers. is created from System Dependence Graphs and static /forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers.

    I am also working on ApiNATOMY a graphical toolkit for knowledge management with particular applications in multi-scale anatomy.

    Search-based Software Engineering (SBSE)

    Many software engineering problems are complex and their resolution requires unbounded resources. I am interested in the application of meta-heuristic search techniques and in particular evolutionary algorithms to these complex problems in order to find near-optimal solutions. My research has applied search-based techniques along with supervised machine learning for temporal fault-prediction and also for automatic bug triaging and assignment.


    Collaborators

    • test

    Research

    B. de Bono, M. Helvensteijn, N. Kokash, I. Martorelli, D. Sarwar, S. Islam, P. Grenon and P. Hunter: Requirements for the formal representation of pathophysiology mechanisms by clinicians. Interface Focus, 6(2), p.20150099.

    S. Islam, J. Krinke, D. Binkley and M. Harman: Coherent Clusters in Source Code. Journal of Systems and Software, 88: February 2014.

    Adel Noureddine, Syed Islam and Rabih Bashroush: Jolinar: Analysing the energy footprint of Software ApplicationsInternational Symposium on Software Testing and Analysis (ISSTA), Saarland, Germany, July 2016.

    Syed Islam and David Binkley: PORBS: A Parallel Observation-based SlicerIEEE International Conference on Program Comprehension (ICPC), Austin, USA, May 2016.

    D. Binkley, A Beszedes, S. Islam, J. Jasz and B. Vancsics: Uncovering Dependence Clusters and Linchpin FunctionsInternational Conference on Software Maintenance and Evolution (ICSME), Bremen, Germany, 2015.

    David Binkley, Nicolas Gold, Mark Harman, Syed Islam, Jens Krinke, and Shin Yoo: ORBS and the Limits of Static SlicingInternational Working Conference on Source Code Analysis and Manipulation (SCAM), Bremen, Germany, 2015.

    Syed Islam, Adel Noureddine and Rabih Bashroush: Measuring Energy Footprint of Software FeaturesIEEE International Conference on Program Comprehension (ICPC),Austin, USA, May 2016.

    Publications

    Syed was awarded $40,000 and $20,000 from Microsoft Research to use Microsoft Azure Cloud Computing Infrastructure to advance the state of program slicing using Observation-based Slicing and to advance software energy measurement on the cloud, respectively.



    Funding

    Dependence Analysis

    Dependence analysis is a vital part of program analysis and has applications in a wide range of software engineering activities . My research has uncovered the existence of highly inter-dependent clusters (coherent clusters) in production source code and identified reasons for their formation. These clusters have been shown to map directly to program structure, which can aid in program comprehension and understanding, as well as, identifying structural defects in code.

    Code Metrics & Machine Learning

    I have done research into identifying unique and useful code metrics for certain applications using principal component analysis. Such analysis helps identify metics that can be used as predictors for code quality and has been successfully used in supervised learning models to predict software faults.

    Dependence Clusters

    A dependence cluster is a maximal set of program statements that are mutually inter-dependent. My research has focused on quantitative analysis to show the existence of these clusters in production source code and qualitative study of the underlying reason for their formation. My research has introduced coherent dependence clusters, a specialised form of dependence clusters. These clusters have been shown to map directly to program structure, which can aid in program comprehension and understanding, as well as, identifying structural defects in code.

    Program Slicing

    Current program slicing techniques cannot handle systems written in multiple programming languages. Observation-based slicing (ORBS) is a novel 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. We have developed ORBS to take advantage of the existing build tool chains to achieve observation-based slicing. I have also created a parallel version of ORBS to reduce slicing times and make the entire process usable in practice.

    Software Visualisation

    As part of my research on clusters, I have also developed a multi-level visualisation tool (deCluVi) for mapping software metrics visualization is created from System Dependence Graphs and static backward/forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers.to program statements using colour and dimension. The visualization is created from System Dependence Graphs and static backward/forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers. is created from System Dependence Graphs and static /forward slices extracted from an industry standard static analysis tool called CodeSurfer. The dataset and the tool have been made freely available to other researchers.

    I am also working on ApiNATOMY a graphical toolkit for knowledge management with particular applications in multi-scale anatomy.

    Search-based Software Engineering (SBSE)

    Many software engineering problems are complex and their resolution requires unbounded resources. I am interested in the application of meta-heuristic search techniques and in particular evolutionary algorithms to these complex problems in order to find near-optimal solutions. My research has applied search-based techniques along with supervised machine learning for temporal fault-prediction and also for automatic bug triaging and assignment.


    Interests

    University of East London

    University College London

    King's College London

    • Programming Applications (4CCS1PRA)
    • Data Structures (4CCS1DST)
    • Introduction to Artificial Intelligence (4CCS1IAI)
    • Practical Experiences of Programming (4CCS1PEP)
    • Programming Practices (4CCS1PRP)

    Stamford College UK

    • Information Systems
    • Software Development
    • Computer and Network Technologies
    • Computer Networks
    • Object Oriented Programming
    • Software Engineering
    • Software Development
    • Systems Analysis and Design

    Brac University

    • Operating Systems (CSE321)
    • Microporcessors (CSES341)
    • Programming for Business (MSC142)
    • Introduction to Programming (CSE110)
    • Data Communications (CSE320)
    • Computer Networks (CSE421)
    • Undergraduate Final Year Project Supervision

    Teaching