Computer Science 280:

Software Engineering

Gregory M. Kapfhammer


flickr photo by vpickering shared under a Creative Commons (BY-NC-ND) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in SETP or MMM

Maintaining the System

What does maintenance entail?

Time for development and maintenance

More than half of effort spent on maintenance

System evolution versus decline

Technical debt

Find an example of technical debt

Laws of Evolution

Continuing Change

Increasing Complexity

Predictable evolution

Conservation of organizational characteristics

Conservation of software characteristics

What does this tell us about maintenance? Why?

Types of Maintenance

Corrective Maintenance

Adaptive Maintenance

Perfective Maintenance

Preventative Maintenance

Who should perform maintenance? Why?

Maintenance Challenges

Limited Understanding

Management Priorities

Lack of Interest

System Inflexibility

Cost of Testing

Why are engineers reluctant to performance maintenance?

Software rejuvenation

Refactoring code and documentation

Reverse engineering

Re-engineering

Any questions about software maintenance?