Software Engineering

The Software Engineering (SE) research in the School of Electrical Engineering and Computer Science targets key problems in effectively constructing and evolving modern complex software systems. This area is focused on understanding how developers create software and on developing new ways to enhance the development productivity and the quality of the resulting software product.

Key Topics

  • Human factors in SE:
    To understand how human factors impact the cost and quality of the software they develop, we employ methods and technologies from cognitive science and educational psychology.
  • Developers’ productivity:
    Leveraging techniques from Natural Language Processing (NLP) and Machine Learning (ML), we build techniques and tools to help developers in their daily tasks.
  • Program analysis techniques:
    Static, dynamic, and data-driven program analysis algorithms that provide practical scalability and cost-effectiveness so as to fundamentally empower quality assurance applications for industry-scale software systems.
  • Software and system security:
    Techniques and tools for defending against real-world security risks and threats in key software domains such as mobile applications and distributed systems.