My research aims to build recommendation/assistance systems for software engineering (RecSys) to improve software reuse and maintenance using AI4SE and to support the quality-aware engineering of Machine Learning software systems (MLSys) using SE4AI.

SE4AI (MLSys). I study how we can efficiently design ML based software systems and operationalize those within real-world industrial needs (e.g., using low code approaches, following responsible AI principles like fairness, explainability, etc.)

AI4SE (RecSys). My research designs data-driven recommender and assistance tools for software engineering to assist in two types of software development tasks:

  • Quality Software Reuse (SR) and
  • Software Quality Maintenance (SM)

The tools aim to improve developer productivity and software quality. Emphasis is given on designing practical and usable tools for end users (developers, managers, etc.) with innovative design of user interfaces and the application of new techniques (e.g., large language models). Particular areas for which the tools are currently developed are as follows:

  • Software Library Reuse. Usage of online reviews and source code analysis to support the efficient and secure selection and reuse of software libraries like APIs (SR)
  • AIOps: Using ML and Natural Language Processing (NLP) to automate operational workflows in software/IT teams, e.g., log data management (SM)
  • Software Documentation Management. Automatic quality assurance and creation of software library and process documentation and the on-demand usage of library documentation to support programming tasks and software quality checks (SM)
  • Modernizing Bug Management. Using ML to automate and manage bug/issue processing in modern often ultra large-scale software systems (SM)

Research Funding

  • NSERC (Discovery, Alliance, EIDM)
  • Industrial Partnerships (IBM, YourArbor, etc.)
  • Alberta Innovates
  • University of Calgary Startup Fund