University of Calgary

SENG Focus Area: Evolutionary Software Engineering

Submitted by admin on Mon, 07/16/2007 - 15:46.

Software systems evolve over time. This evolution can be caused by changes in user needs and expectations as well as by changes to the technological or business conditions. An evolving system will be most successful if it is implemented in small increments where each increment has a clear measure of success (for example, by following agile development approaches). Evolutionary Software Engineering refers to the application of a systematic, disciplined, quantifiable approach to development, operation, and maintenance of evolving software systems.


click on images below

Agile Planner

Frank Maurer:
Dr. Maurer's Agile Software Engineering Lab investigates agile software methodologies, executable acceptance test driven development, integrating agile methods and interaction design, tools for agile teams (specifically for globally distributed software development), web engineering and experience & knowledge management.
Guenther Ruhe:
The laboratory for Software Engineering Decision Support is a team of students and researchers who look at the early phases of evolutionary software system development from a decision-making perspective. We are following a multi-disciplinary research approach and have integrated concepts and approaches from decision science, artificial intelligence, knowledge management, and computational intelligence to achieve novel results in software engineering. An example of the research and development done in the lab is the decision support system ReleasePlanner (see For any interested students, researchers or representatives from industry, further details and points of contact can be obtained from
Jonathan Sillito:
My research interests include empirical software engineering, program comprehension and programming tool support. I am currently researching how archived project information can be used to improve software development.
Craig Schock:
Software Engineering Education
Robert Walker:
In the Laboratory for Software Modification Research, we are interested in the evolutionary nature of software systems: how they are designed, how they are implemented, and how they are changed. This involves two key elements: (1) the properties of real software systems, and (2) the constraints of real people. Research in the lab focuses on helping people make better software, through tool support, improved design and implementation techniques, and better means of planning for the future. Some keywords and phrases include: aspect-oriented software development, heuristic software search, lightweight software analysis, pragmatic software reuse, developer-oriented tools.
Tom Zimmermann:
Tom Zimmermann's research focusses on mining the history of software projects in order to help managers and developers learning from past successes and failures. In addition, he is interested in program analysis and development tools.

Associated Faculty

Jörg Denzinger:
Dr. Denzinger works on intelligence-based threat-testing of systems and agent-based requirements negotiation.
Robert Kremer:
Dr. Kremer's research interests include agent-based systems and visual languages. He is currently working on using commitment-based conversations as the basis for a new agent infrastructure, which gives a much greater degree of flexibility to conversation composition than what was previously available.

Adjunct Professors

Hakan Erdogmus:
Agile & Collaborative Practices and Software Economics
Shari Lawrence-Pfleeger:
Empirical Software Engineering
Michael M. Richter:
Experience Management & Case-Based Reasoning