Software Change: Planning, Design & Evaluation

In the LSMR 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.

What is Software Evolution & Maintenance?

Software developers often need to make changes to existing software systems -- to add new features, to support new environments, and to correct errors. Software evolution refers to the study and management of the changes to software systems over their life cycle. While software maintenance generally describes all changes made to a program after its release.

The faculty and students at LSMR recognize the importance of software evolution and maintenance tasks facing software developers. Software systems are continually increasing in size, scope, and complexity and these evolutionary and maintenance tasks are still poorly supported.