Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 27 Software Change.
Making the System Operational
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Configuration Management
Software Evolution Managing the processes of software system change
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
SE 555 Software Requirements & Specification Requirements Management.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Software maintenance Managing the processes of system change.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
Lecture # 22 Software Evolution
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CLEANROOM SOFTWARE ENGINEERING.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Software Maintenance.
Computing and SE II Chapter 13: Software Maintenance
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software Maintenance1 Software Maintenance.
1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Advanced Software Engineering Dr. Cheng
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 18 Maintaining Information Systems
IEEE Std 1074: Standard for Software Lifecycle
Software Engineering (CSI 321)
Chapter 9 – Software Evolution
CS 425/625 Software Engineering Software Evolution
Chapter 9 – Software Evolution and Maintenance
Chapter 9 Software Maintenance
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Presentation transcript:

Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville

2 Topic Covered Maintenance Types Maintenance Prediction Maintenance Process

3 Maintenance Types Corrective Maintenance: correcting errors and bugs Adaptive Maintenance: adapting to changes in the environment (both hardware and software)  Example: Porting KDE system from Qt3 to Qt4 Perfective Maintenance: adapting to changing user requirements  Example: performance improvements, new requirements Preventive Maintenance: increasing the system’s maintainability  Example: Re-Engineering, Refactoring, and updating documentation

4 Maintenance Types

5 Distribution of Maintenance Types(Lientz and Swanson) corrective 21% adaptive 25% preventive 4% perfective 50%

Maintenance Prediction Maintenance prediction is concerned with assessing which parts of the system may cause problems and have high maintenance costs  Change acceptance depends on the maintainability of the components affected by the change  Implementing changes degrades the system and reduces its maintainability  Maintenance costs depend on the number of changes and costs of change depend on maintainability

Maintenance Prediction

Change Prediction  The number of required changes  Understanding of the relationships between a system and its environment Tightly coupled systems require changes whenever the environment is changed  Factors influencing this relationship are Number and complexity of system interfaces Number of inherently volatile system requirements The business processes where the system is used

9 Maintenance Process Request for change Planning phase Software comprehension Impact analysis Implementation of the change Focus of the change Change propagation Verification Documentation

Maintenance Process

Change Requests Change requests are requests for system changes from users, customers or management In principle, all change requests should be carefully analysed as part of the maintenance process and then implemented In practice, some change requests must be implemented urgently  Fault repair  Changes to the system’s environment  Urgently required business changes

Change Request Management Change Management to uniquely identify, describe and track the status of each requested change Change requests and their status are recorded and tracked in a Change Management Tracking System  Manage the system release  Analysis of the types and frequency of defects  Communicate to maintainers, managers and clients Project Management and the Quality Assurance team receive information about the status of the Change Requests More details in Chapter 4

Impact of Change Evaluate Change Requests  Identify all systems/system components affected by a change request  Evaluation of many risks associated with the change  Complexity of the change Estimate Resources  develops an estimate of the Resources needed to accomplish the change Time and schedule Cost and efforts

Measuring Impact of Change To measure the impact of a change, you need:  Program (Software ) Comprehension  Size of required changes LOC Number of functions, routine, and classes that will be touched  Historical information Productivity Rate, Average LOC per Routine  Time required to complete the system changes

Measuring Impact of Change Types of System Changes Types of Change Impacts Requirements changesAffect design, coding, and testing Document update Design changesAffect coding and tests Affect associated components Affect system architecture Affect related component interactions Implementation changesAffect test cases, test data, test scripts Affect test specification. Code change impact s - Test changes Affect other tests. Affect test documentation Document changesAffect other documents.

Measuring Impact of Change Program Comprehension (Covered in Chapters 8,9, &10)  The words "understanding" and "comprehension" are used as synonyms  50-90% of the maintenance time is spent in comprehension Fjelstad-Hamlen found that programmers:  studied the program 3.5 times longer than the documents  Spent more time in comprehension than in implementing enhancements  Comprehension is affected by Comprehensibility of the program Skills of the maintainer Information needs and sources

Measuring Impact of Change Methodologies:  Work product: any development artifact whose change is significant  Horizontal traceability: relationships of components across collections of work products  Vertical traceability: relationships among parts of a work product More details in Chapters: 8,9, & 10

Measuring Impact of Change Example: Horizontal Traceability

Change Implementation

Example: Corrective Maintenance includes all repairs of defects in an existing system

Change Implementation Example: Corrective Maintenance  Defects types: Requirements specification errors Design errors Coding errors  Facts: 80% of all problems stem from requirements and design Repairing a defect has a 20-50% change of introducing another defect Person who makes the repair is not generally the person who wrote the code

Change Implementation Example: Preventive Maintenance  Polish or refine the quality of the software or the documentation  Re-engineering ( Chapters 6 & 7) Rewriting and upgrading documentation Restructuring poorly written code  Fact Preventive maintenance reduces the system future maintenance costs

Change Implementation Example: Adaptive Maintenance  Modify software to adapt to changes in the hardware or software environment  Real Examples: Porting the KDE (K Desktop Environment) system from Qt3 to support Qt4 Modifying ABB industrial systems to deal with changes in the VxWorks and Microsoft Visual Studio (2003 to 2005)

Change Implementation Example: Adaptive Maintenance

Change Testing Only modified components need to be reviewed Develop new test cases that exercise the changes Existing and new test cases are required to test the changes Test results are compared against previous test results (Regression Testing)  More details in Chapters 11 & 12

System Release Deliver the system to the user System release includes:  Documentation  Source code  Hardware  Training materials  Backup procedures

System Release Planning Determine the contents of a system release (incremental approach) Establish the schedule of system releases Communicates between maintainers and users Plan hardware, operational procedures and backup procedures More details in Chapter 4