Software Maintenance Main issues: why maintenance is such an issue

Slides:



Advertisements
Similar presentations
Software Maintenance Main issues: why maintenance is such an issue
Advertisements

Chapter 11 Software Evolution
Testing and Quality Assurance
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
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
TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”
Introduction to Software Evolution and Maintenance
Software Evolution Managing the processes of software system change
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
1 Software Engineering II Presentation Software Maintenance.
Software evolution.
Software maintenance Managing the processes of system change.
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
Software Engineering Lecture 20 Software Maintenance.

Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
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.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Making the System Operational Implementation & Deployment
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
CS223: Software Engineering Lecture 32: Software Maintenance.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
Introduction Text Books:
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Maintenance Issues in Software Engineering
8.4 Management of Postdelivery Maintenance
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
Software Maintenance PPT By :Dr. R. Mall.
Software Engineering Rekayasa Perangkat Lunak
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Making the System Operational Implementation & Deployment
Maintenance.
Chapter 9 – Software Evolution and Maintenance
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Software Re-Engineering
Software Engineering Rekayasa Perangkat Lunak
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Introduction Software maintenance:
Software Engineering Rekayasa Perangkat Lunak
Software Re-engineering and Reverse Engineering
Presentation transcript:

Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance Note that the book is misleadingly simple. Just reading the book is like learning to swim without getting wet. © SE, Maintenance, Hans van Vliet

Relative distribution of software/hardware costs 100 Hardware Development 60 Percent of total cost Software 20 Maintenance 1955 1970 1985 Year

Software Maintenance, definition The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment

Maintenance is thus concerned with: correcting errors found after the software has been delivered adapting the software to changing requirements, changing environments, ... - IBM OS 360: 1000 errors per release, and this number did not really go down over time - quick and dirty bug fixes increase the system’s entropy - maintenance is usually done under pressure © SE, Maintenance, Hans van Vliet

Kinds of maintenance activities corrective maintenance: correcting errors adaptive maintenance: adapting to changes in the environment (both hardware and software) perfective maintenance: adapting to changing user requirements preventive maintenance: increasing the system’s maintainability - adaptive maintenance does not change the functionality of the system - people often have trouble distinguishing between adaptive and perfective maintenance - since most present-day development does not start from scratch, part of maintenance resembles development: both concern the evolution of a system; see also exercise 10 of chapter 14. © SE, Maintenance, Hans van Vliet

Distribution of maintenance activities corrective 21% perfective 50% adaptive 25% preventive 4%

Major causes of maintenance problems Unstructured code Insufficient domain knowledge Insufficient documentation

Restructuring Functionality does not change From one representation to another, at the same level of abstraction, such as: From spaghetti code to structured code Refactoring after a design step in agile approaches Black box restructuring: add a wrapper With platform change: migration

Software maintenance tools Tools to ease perceptual processes (reformatters) Tools to gain insight in static structure Tools to gain insight in dynamic behavior Tools that inspect version history