Download presentation
Presentation is loading. Please wait.
Published byDominic Alexander Modified over 9 years ago
1
Software Engineering CS3003 Lecture 3 Software maintenance and evolution
2
2 Structure of this lecture This lecture will answer the questions: What is software maintenance and evolution? What does software maintenance and evolution cost? What types of maintenance and evolution exist? What factors affect maintenance and evolution? How is software maintenance managed? What is configuration management? What is version control?
3
What is software maintenance and evolution? Changing and updating of systems throughout their lifetime Important to maintain expensive and valuable business assets Evolving software is: Unavoidable, continuous, essential Important to design for maintenance: Requirements, code structure, change control 3
4
Evolution is expensive: Sommerville reports 70% software costs Costs vary across application domain (eg real time, embedded systems = v. expensive to maintain) Classic example: US airforce project: $30 per line code to develop and $4000 per line code to maintain Evolution is difficult: 47% effort goes into understanding the system and identifying dependencies (Pfleeger) Making changes is risky because of side effects, ripple effects and dependencies E.g. Gould experiment with experienced programmers correcting 12 faults. Best found all 12 with average 5 minutes per fault. Worst found only 8, took 15 minutes per fault and introduced 11 more faults in the process. Can be a low morale job 4
5
Types of evolution (Sommerville) 5 Little change to these proportions since the 1980’s. 1.Fault repairs: The repair of requirement, design and coding errors 2.Environmental adaptation: Necessary when HW or OS changes 3.Functionality addition: In response to organisational or business change
6
Factors that affect maintenance 1. Team stability Normal for a different team to maintain a system. But even the original development team changes over time. 2. Poor development practice Original development team may not have implemented practices to make maintenance easier 3. Staff skills Maintainers may not have the domain experience that original developers had. They may also be more junior than original developers. The system may be implemented in an outdated language. 4. Program age and structure Over time the structure of the program de-grades making them harder to understand and change. Original documentation may not exist. May be difficult to locate the right versions. 6
7
How is software maintenance managed? Configuration Management… Four processes: Change management Keeping track of change requests and analysing impact Version management/control Tracking multiple versions of system artefacts System building Assembling components associated with an executable version Release management Preparing version for external release to customers Tracking which customer has what 7
8
Change management Many change requests are generated for all systems Need to ensure that change is implemented rationally Factors considered include: Urgency, Value, Impact, Benefit, Cost Usually companies have a team who analyse change requests In XP customers involved in prioritising changes 8
9
What is version control? A repository of the first version of the system and all subsequent changes made to it. Subsequent versions stored in the form of ‘diffs’ (deltas) All software has multiple versions Different platforms Different customer variants Different stages in the lifecycle Different families of software Need to be able to: Support multiple versions Recreate old versions Keep track of and control changes 9
10
Features of version control 1. Version and release identification 2. Storage management 3. Change history recording 4. Independent development Version control must allow checking-out and checking-in (committing) of working versions. 10
11
Families of software Companies often maintain a range of related products: Domains or customers Configurations include: Extensions: a single version from a single version Branching: multiple versions from a single version Merges: a single version from multiple versions Tagging: adding key words to describe a related collection of files 11 Ref: Wikipedia
12
Why is version control important? Stops changes being made to the wrong version Prevents the wrong version being delivered to a user Controlling change is a major issue Requirements creep Many change requests will be generated Allows the right files to be associated with the right version/release A change can be rolled back Concurrent changes by developers controlled The evolution of the system tracked New releases, versions, families of software can be developed in a more organised way Can help in fault identification Who and when made a particular change is recorded 12
13
13 Reading for the week Sommerville ed9 Chapter 9 Find out about Lehman’s laws of evolution. You need to know about these for your tutorial this week. Sommerville Ed 9, Chapter 25 Most popular OSS version control tools reviewed: http://www.smashingmagazine.com/2008/09/18/the-top- 7-open-source-version-control-systems/ http://www.smashingmagazine.com/2008/09/18/the-top- 7-open-source-version-control-systems/ A really good tutorial on version control: http://www.ericsink.com/scm/source_control.html http://www.ericsink.com/scm/source_control.html
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.