Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
System Development Life Cycle Process of creating and altering systems or software by using methodologies or models to develop the systems in a logical.
Ch 4 The Process page 1CS 368 Building Software is Difficult often delivered late often over budget always with errors must be a custom solution complexity.
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,
Slide 16.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Ch7: Software Production Process. 1 Questions  What is the life cycle of a software product?  Why do we need software process models?  What are the.
Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Software evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Test Driven Development Derived from Dr. Fawcett’s notes Phil Pratt-Szeliga Fall 2009.
Chapter 9 – Software Evolution and Maintenance
Ethics in Software Engineering
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
1 Advanced Computer Programming Project Management: Software Life Cycle Copyright © Texas Education Agency, 2013.
1 CMPT 275 Software Engineering Software life cycle.
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.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software – Acquisition & Testing. ICT5 How to acquire software There are several options: The software may be written by the end-user; A specialist department.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Program Development Life Cycle (PDLC)
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.
1 Ontology Summit 2011 Track 3 Value Metrics & Value Models Ontology Use - Maintenance Todd Schneider Raytheon 17 February 2011.
The Traditional System Development Life Cycle There are a number of important steps in the creation of a system, regardless of which approach you use.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
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.
Systems Development Life Cycle
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Introduction to Testing. Topics Who are we? Who are we? Software Testing Definition and Goals Software Testing Definition and Goals Facts and Numbers.
Software Life-Cycle and Models
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Building usable software through early testing. Objective Show the value of testing from the beginning of the development cycle. Consensus in the industry.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
System Analysis and Design Copyright © Genetic Computer School 2007 SAD14-1 CHAPTER OVERVIEW  Overview Of System Maintenance  Tasks Performed During.
Software Maintenance1 Software Maintenance.
MAINTENANCE GAME DESIGN. OBJECTIVES Name and identify the 3 types of maintenance Understand how maintenance was done before the use of networks Understand.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Overview Software Maintenance and Evolution Definitions
Maintenance Issues in Software Engineering
Testing More In CS430.
Software Quality Assurance Software Quality Factor
Chapter 18 Maintaining Information Systems
Software Development CMSC 202.
Software Engineering (CSE 314)
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Software life cycle models
Introduction to Software Process Models
Chapter 9 – Software Evolution and Maintenance
Chapter 27 Software Change.
Baisc Of Software Testing
Chapter 8 Software Evolution.
Requirements Engineering
Presentation transcript:

Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?

Categories of Maintenance Software maintenance: the of modification of a software product after it has been delivered. Three maintenance categories corrective adaptive perfective

Maintenance Categories :  Corrective maintenance: Overcoming existing faults in the delivered software :  Adaptive maintenance: Makes the software usable in a changed environment :  Perfective maintenance: Improves performance, maintainability or other software attributes

Successful software requires maintenance The only software that doesn't need maintenance is software that is so bad, it is never used.

Maintenance Costs n During the software life cycle, more time is spent on maintenance than on any other phase! n 67% of the total cost of a product can be attributed to maintenance

Maintenance is Difficult Some consider maintenance to be the most difficult of part of software development.

Maintenance is Difficult It incorporates all other design and development phases

Topics of Discussion n Maintenance is complex, it is hard to know what the problem really is! n Maintenance incorporates aspects of all the other phases of software development. n Maintenance is not viewed as “glamorous.”

Maintenance is complex How does maintenance start? A problem/fault is reported by the customer. In the opinion of the user the product is not working as specified. 1) There could be nothing wrong at all. Why? 2) There is a fault and it needs to be corrected.

Maintenance is complex: There is nothing wrong! n User misunderstands the documentation. n User is using the product incorrectly n The “problem” doesn’t lie with product. Rather, the user manual is misleading or badly worded.

Maintenance is complex: There IS something wrong n Where is the fault? Above average debugging skill is needed! n Fix the problem without adding new ones - Above average programming skill n Has the problem been fixed? - Above average testing skills n Process must be documented - Good documentation skills

Maintenance: Creation and Adaption n To adapt products to changing environments requires going back to the beginning -- Maintenance programmers must got through all the stages: requirements, specification, design, implementation and testing. n Creating new modules to satisfy the expanding needs of customers -- Maintenance programmers perform all the design and development stages on this new sections. And THEN, have to meld these additions seamlessly into existing code.

Thankless Job?! n Dealing with dissatisfied customers: if the user were happy with the product it wouldn’t need maintenance n User’s problems have been caused by the individuals who developed the product, not the maintainer. n The code may be badly written frustrating the maintainer. n Maintenance is often looked down upon by other developers.