Research Area – Software Engineering

Our software engineering group works on development and maintenance of software, with the overall goal of creating high-quality software. To achieve this goal, we perform research in software testing, program analysis, program understanding, modeling and design, failure analysis, fault localization, debugging, remote monitoring, human and social aspects of software engineering, and software engineering education.

Faculty members include professors Mary Jean Harrold, Mayur NaikAlessandro Orso and Spencer Rugaber, as well as about 15 graduate students and several visiting researchers.

The overall goal of Dr. Harrold’s research is to develop efficient techniques and tools that will automate (or partially automate) development, testing and maintenance tasks. Her research to date has involved program analysis based software engineering, with an emphasis on analysis and testing of large, evolving software, fault localization and failure identification using statistical analysis, machine learning, and visualization, monitoring deployed software to improve quality, and software self-awareness through real-time assessment and response.

Dr. Naik's research focuses on algorithms and systems for improving programmer productivity and software quality in a broad sense, encompassing reliability, security, performance, scalability, and energy efficiency.  His current projects address these issues in the context of modern computing platforms, including parallel, mobile, and cloud computing.

Dr. Orso’s research focuses on software testing, static and dynamic program analysis, and analysis-based security. He develops techniques and tools for improving software reliability, security and trustworthiness, as well as the validation of such techniques on real systems. His current projects target testing and analysis of software after deployment, testing of evolving software systems, and security and reliability of web applications.

Dr. Rugaber’s examines the understandability of computer programs and factors that determine that understandability. These include human factors, sources of complexity, abstraction and modeling.  His current projects are studying the adaptability of computer game software, automatic generation of infrastructural components for simulation software, and the development of conceptual and technical tools to assist middle school students in understanding complex scientific systems.

Coordinator: Mayur Naik