Information for

Software engineering


Contact person: Joanne Atlee,

Group members:



The University of Waterloo has one of the largest software engineering research groups in North America, with nine faculty whose primary research area is in software engineering, plus three to four faculty whose research overlaps with software engineering. Together, our research activities cover a wide spectrum of problems of how to build, verify, modify, and maintain large, complex software systems.

Research interests

  • Requirements engineering. Studying the economic impact of requirements engineering and requirements elicitation, including ambiguity in the natural-language requirements discovered during elicitation, creativity in requirements elicitation, elicitation of user interfaces, elicitation of user emotions that may affect system acceptability and usability, and the effect of domain knowledge or lack thereof on elicitation.
  • Software architecture and software evolution. Studying large-scale designs of software systems through analysis of source code and other development artifacts; empirical study of how and why software systems change over time; extracting and synthesizing models of software systems and their development from various kinds of available evidence.
  • Model-development engineering (MDE). Investigating how to improve MDE-based software-development methodologies, including new and configurable modelling notations, domain-specific languages, automated analyses of software models, model transformations, and code generation.
  • Formal methods. Using mathematical formalisms to model and analyze software designs. (See Formal Methods Group)
  • Software tools and methodologies. Studying industrial developers to identify problems they encounter in practice and finding new techniques to mitigate these difficulties. Past problems investigated include pragmatic reuse of code, code search, and change awareness.
  • Web-based systems. Investigating new models, theories and methods for the web that support emergent forms of digital media and connectivity, and component-based applications that are dynamic, evolutionary, mobile, and context-aware. The research includes dynamic services for asset-based geomatics, multi-agent approaches, model-driven software development and evolution, software quality, semantic and context-aware applications, novel databases for digital media, mobile event-based systems, mediated context-aware social media, and web-based user interfaces.