Ali Shokri

Ali Shokri

PhD Student & Graduate Research Assistant
Global Cybersecurity Institute | Software Engineering
Rochester Institute of Technology (RIT)

Home    Research    Publications    Services    Awards    Education    Experience

About Me

As a software engineer with 14 years of experience in software industry, Ali is currently pursuing his PhD studies in the department of Software Engineering at Rochester Institute of Technology (RIT), Rochester, NY, US. He is also a Graduate Reseatch Assistant at the Software Design and Productivity Lab (SDPL).

Being advised by Dr. Mirakhorli, Ali's main research interest is to help programmers develop sound and complete programs. In that regard, in a collaboration with other researchers, he aims to leverage Program Analysis, API Recommendation, Program Synthesis, Formal Methods, and other techniques to automatically generate a program that is syntactically and semantically correct. Ali has a M.Sc. in Information Technology from Tarbiat Modares University (Iran) and a B.Sc. in Software Engineering from University of Tehran (Iran).

Ali's paper "A Program Synthesis Approach for Adding Architectural Tactics to An Existing Code Base" is the Award Winner of the Research Competition at the 36th IEEE/ACM International Conference on Automated Software Engineering (ASE’21).

Latest Research Projects

Latest Published Papers

project name

A Program Synthesis Approach for Adding Architectural Tactics to An Existing Code Base

In this paper, we introduce a novel program synthesis approach for architectural tactic implementation task. This paper is accepted in the 36th IEEE/ACM International Conference on Automated Software Engineering (ASE 2021) and is on its way to be published.
This paper won the research competition award at ASE'21.

project name

DepRes: A Tool for Resolving Fully Qualified Names and Their Dependencies

One important barrier in front of static program analyzers is to correctly identify fully qualified names (FQN) of identifiers in a code snippet, as well as third-party libraries used in the code. Moreover, resolving the correct versioin of liibraries plays an important role in an accurate program analysis task. In this paper, we introduce a learning-based approach to address such needs.

project name

ArCode: A Tool for Supporting Architectural Concerns Comprehension and Implementation

Based on our ArCode ICSA21 paper, we implemented a tool as a plugin for IntelliJ IDEA. This tool aims to realize ArCode approach and support programmers in practice. This paper is accepted in 29th IEEE/ACM International Conference on Program Comprehension (ICPC 2021) and is on its way to be published by June 2021.

project name

ArCode: Facilitating the Use of Application Frameworks to Implement Tactics and Patterns

Programmers and software designers are increasingly incorporating framework APIs to correctly implement architectures and tactics. However, based on studies, they can not rely on frameworks' documentations nor available tutorials. In this paper, we introduce ArCode, an approach that learns the correct usage of APIs from a limited code samples. This paper is accepted in 2021 IEEE International Conference on Software Architecture (ICSA) and is on its way to be published by May 2021

project name

SHERLOCK: An integrated environment to facilitate the rapid and continuous certification of software systems

Establishing links between concerns needed to be addressed, artifacts, and evidences in a software system is crucial for software certification tasks. Tracing these links though is not a trivial process. In this paper, we introduce SHERLOCK, an integrated environment that facilitate the rapid and continuous certification of software systems. This paper is published as a preceeding of 2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)

Full Publication List

Work Experience

Please find an overview of my experiences as follows: Experience Overview
You may find more deails of my work experience from my CV.

Contributions to SE Community

Paper Reviewer - Conferences/Journals

  • Reviewer for the IEEE Software Journal (IEEE Softw.)
  • Reviewer for the Journal of Systems & Software (JSS)
  • Reviewer for the e-Informatica Software Engineering Journal (EISEJ)
  • Sub-reviewer for ACM Transactions on Software Engineering and Methodology (ToSEM)
  • Sub-reviewer at 42nd International Conference on Software Engineering (ICSE 2020)

PC Member - Conferences

  • 37th International Conference on Software Maintenance and Evolution (ICSME 2021)
  • 35th European Conference on Object-Oriented Programming (ECOOP 2021)

Lecturer - Academic/Industry


Ph.D. Computer Science

Rochester Institute of Technology (2018-Present)

M.Sc. Information Technology

Tarbiat Modares University (2014)

B.Sc. Software Engineering

University of Tehran (2007)

I was fortunate enough to be able to attend a couple of great PhD level summer schools:

International Software Architecture PhD School (2021)

PL+HCI “Swimmer” School (2020)


ASE'21 Research Competition

The winner of the Research Competition at ACM ASE'21, an A* conference in the field of software engineering. (2021)

Data61 Research Scholarship

Recipient of a prestigious scholarship for conducting my research at Data61, a world leader in data science research and engineering. (2018)

University of Melbourne

Admitted as a fully funded PhD student at the University of Melbourne (worldwide ranked 25th) with a prestigious fellowship. (2018)

Monash University

Admitted as a PhD student at Monash University (worldwide ranked 40th) as a PhD student. (2017)