CSCI 680 - Software Maintenance and Evolution
Description
Software maintenance and evolution are essential activities in the development of a software system. They account for more than half of the resources invested in a project. To reduce such costs, software stakeholders can adopt different strategies.
In this course, students will be introduced to principles and techniques of software maintenance and evolution. The course will cover well-established techniques and recent advances in the following topics:
- Software change management
- Software quality measurement
- Software quality assurance
- Mining of software repositories
- Software refactoring
- Defect prediction
- Defect management
The course will mainly include lectures given by the instructor. The students will complete assignments related to the course topics, read and make presentations of a few research papers, and complete a term project. The students are expected to actively participate in class discussions.
Reference books
- Software Evolution and Maintenance – A Practitioner’s Approach - By Pruyadarshi Tripathy and Kshirasagar Naik (ISBN 978-0-470-60341-3)
- Effective Software Maintenance and Evolution: A Reuse-Based Approach - by Stanislaw Jarzabek (ISBN 0-8493-3592-2)
- Software Evolution - by Tom Mens & Serge Demeyer (ISBN 978-3-642-09529-0)
- Refactoring: Improving the Design of Existing Code - by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts (ISBN: 978-0201485677)