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.
By the end of the course:
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
The next textbooks are recommended, but they are not required. Additional online reading will be made available.
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.
Next are the formally graded elements of the course and associated weighting:
|Class presentations||20 %|
|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|
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.
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.
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.
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:
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.
Please visit http://catalog.colostate.edu/general-catalog/policies/students-responsibilities/ for other policies.