Laura Moreno
Office: CSB 458
Office Hours: Tue & Thur, 3:15pm - 4:15pm
Lecture Time and Place:
2:00pm - 3:15pm, Tue, Thur, CSB 425

General course information


Software systems continuously change and, eventually, they become difficult and costly to comprehend and maintain. Consequently, software maintenance and evolution are essential activities that account for more than half of the resources invested in the development of a software system. To reduce such costs, different strategies can be adopted by software practitioners.

In this course, students will be introduced to the principles and techniques of software maintenance and evolution.

Topics covered: software change management, software quality, mining software repositories, software refactoring, defect prediction and effort estimation, software (re)documentation, etc.

Learning outcomes

By the end of the course:

  • The student will be able to explain theories, models, tools and processes related to the maintenance and evolution of large software systems.
  • The student will be able to apply state-of-the-art techniques when maintaining and/or evolving large software systems.

Course credits

4 semester hours (3 lecture, 1 lab

Lab hour to be arranged by teams to work on assignments and project deliverables.


CS 314 (Software Engineering) or consent of instructor (you should have a previous software engineering course taken or experience)


This course is geared towards graduate students in Computer Science

Reference texts

The next textbooks are recommended, but they are not required. Additional online reading will be made available.

  • 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)
  • Making Software - What Really Works, and Why We Believe It
    by Andy Oram, Greg Wilson (Print ISBN:978-0-596-80832-7; Ebook ISBN:978-0-596-80829-7)

Important dates

Project updates and presentations will be held in the same classroom as the regular lectures.

January 24* Assignment 1 posted
February 7* Assignment 1 due
Assignment 2 posted
February 23* Assignment 2 due
Assignment 3 posted
March 21* Assignment 3 due
Assignment 4 posted
April 6* Assignment 4 due
Project posted
March 14, 16 No class (Spring break)
April 18*, 27* Project updates
May 9* Final project due

* Subject to changes. A detailed class schedule will be made available.

Course policies


Next are the formally graded elements of the course and associated weighting:

Activity Weight
Assignments 40 %
Project 25 %
Class presentations 20 %
Readings 10 %
Class participation 10 %

Calculation of the final class score is the average of grades for the category times the weight for the category shown in table above. The final point score will not be curved. The assignment of letter grades will be made as follows:

Letter grade Point range
A 95-105
A- 90-94
B+ 86-89
B 82-85
B- 78-81
C+ 74-77
C 70-73
F below 70

Makeup policy

There will be no makeup for missed assignments or in-class activities, and students will receive a zero. If a student is unable to deliver an assignment due to a documented illness, accommodations will be made by the instructor according to university policy.

Late work policy

Assignments are to be submitted through Canvas, presentend in class or stored in a repository. Specifics will be included in each assignment. Always check the assignment information for due dates. You lose 15% of the maximum possible grade per day for any late submissions; no late submissions accepted two weeks after original due date.

Class attendance

Students are expected to attend every class. Students should not ask for special considerations to allow them to miss classes or not take examinations, including finals, at appointed times.

Classroom citizenship

Respect for your classmates is necessary at all times. We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular, unless otherwise directed for an in-class activity:

  • Put away your cellphone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
  • In class use of electronic devices in general, and laptops specifically, is permitted as a courtesy so that you may better participate and learn. If at any time the instructor judges that your use of an electronic device is becoming a distraction to others, you may be asked to to turn it off and put it away. Laptop/tablet users must sit in the back row starting from the corners.

Professional Conduct

All students are expected to conduct themselves professionally. . Students are assumed to be familiar with the policies in the student information sheet for the department.

This course will adhere to CSU Academic Integrity Policy as found in the the General Catalog and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

students are considered computing professionals, albeit perhaps just starting. Students should be familiar with the code of conduct for the primary professional society, ACM. The ACM Code of Conduct can be found HERE.

Other policies