CSCI 4980/8920: Special Topics: Software Maintenance and Evolution
Fall 2008
| Meeting time: | MW 7:00-8:15 |
| Classroom: | PKI 270 |
| Instructors: | Dr. Harvey Siy, PKI 281B, 402-554-2834, hsiy at unomaha dot edu, Office hours: By appointment |
| Dr. Parvathi Chundi, PKI 281A, 402-554-4987, pchundi at unomaha dot edu, Office hours: |
| Dr. Mahadevan Subramaniam, PKI 173C, 402-554-4984, msubramaniam at unomaha dot edu, Office hours: |
|
| Recommended textbook: | Software Evolution, Tom Mens and Serge Demeyer, editors, Springer, 2008 |
| Optional textbook: | Software Visualization, Stephan Diehl, Springer, 2007 |
| Prerequisites: | CSCI 4830 (Introduction to Software Engineering) or equivalent |
Course Description:
Organizations across all industries have huge investments in their software systems. These systems must be continually adapted to the changing needs of the organizations. Software maintenance and evolution refers to the process of modifying existing software systems to maintain their usefulness. Some studies have estimated that up to 75% of all technical software professionals are involved in some form of software maintenance activity.
This course builds on basic software engineering concepts by expanding the discussion of the issues involved in maintaining and evolving software systems. It covers advanced technical aspects of the software maintenance and evolution process including reverse engineering, reengineering, change management, mining software repositories, and semantic analysis of changes.
It is intended for students looking for practical instruction on dealing with issues of maintaining legacy software systems. Also intended for students wishing to do fundamental research in software evolution.
Course content:
- Overview of Software Maintenance and Evolution
- Introduction
- Change management
- Version control systems
- Release planning
- Regression testing
- Analysis of Software Artifacts
- Program slicing
- Change impact analysis
- Refactoring
- Introduction to Mining Techniques
- Data mining
- Machine learning
- Text mining
- Temporal mining
- Mining Software Repositories
- Statistical background and metrics
- Visualization
- Defect prediction
- Mining process and social data
- Research directions
- Empirical Studies of Software Evolution
- Semantic Change Analysis
- Time Series Segmentation
Most of the course materials will be presented by lectures in a team teaching format.
Lecture slides
Please go to Blackboard to download the most recent slides.
Evaluation
Students will be evaluated as follows:
| Projects and exercises | 50% |
| Paper presentations | 30% |
| Term paper | 10% |
| Class participation | 10% |
Projects and exercises
There will be several projects and exercises to practice the principles and techniques learned from the lectures. These may include exerices with version control systems (e.g., Subversion), software analysis tools (e.g., BLAST), data mining tools, etc.
Paper presentations
Students will be required to present papers from a pool of selected research papers in software evolution.
Term paper
Graduate students will also write a term paper in an area of research relevant to software evolution.
Academic Integrity
Cheating will not be tolerated for project assignments, exams and other assignments. Consult the UNO Student Handbook and Department of Computer Science Policies and Procedures for formal policies about plagiarism.