1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,

Slides:



Advertisements
Similar presentations
Ch 3: Unified Process CSCI 4320: Software Engineering.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Chapter 7 Testing Class Hierarchies. SWE 415 Chapter 7 2 Reading Assignment  John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Use-case Modeling.
Slide 16.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
1 Software Testing and Quality Assurance Lecture 28 – Testing Class Hierarchies.
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
1 Reusability and Portability Xiaojun Qi. 2 Reuse Concepts Reuse is the use of components of one product to facilitate the development of a different.
12/06/20051 Software Configuration Management Configuration management (CM) is the process that controls the changes made to a system and manages the different.
Planning and Estimating
Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)
Slide 16.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Visual Basic Introduction IDS 306 from Shelly, Cashman & Repede Microsoft Visual Basic 5: Complete Concepts and Techniques.
Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?
Chapter 1 The Systems Development Environment
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.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
CSC 395 – Software Engineering Lecture 34: Post-delivery Maintenance -or- What’s Worse than Being a Code Monkey?
System Analysis and Design
Maintaining Information Systems Modern Systems Analysis and Design.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Ch 1: The Scope of Software Engineering
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
The Program Development Cycle
Lecture 12 Maintenance CSCI – 3350 Software Engineering II Fall 2014 Bill Pine.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Slide 15.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Slide 16.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
1 The Scope of Software Engineering Xiaojun Qi. 2 Software Engineering Software engineering is a discipline whose aim is the production of fault-free.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
Slide 20.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Agile Test-based Modeling 資工 聶順成. Outline  Introduction : Modeling meets Programming  Agile Modeling: Using Models in Agile Projects  Model-based.
Chapter 3: Software Project Management Metrics
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 11 Implementation Discipline. Purpose The implementation discipline has four purposes: –To define the organization of the code in terms of implementation.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
Object Oriented Programming
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
1 Object-Oriented and Classical Software Engineering Object-Oriented and Classical Software Engineering.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Configuration Management
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Ch 7: From Modules to Objects (Part Two) CSCI 4320.
Chapter 2 Principles of Programming and Software Engineering.
CS223: Software Engineering Lecture 32: Software Maintenance.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Software Maintenance1 Software Maintenance.
Software Design and Development Development Methodoligies Computing Science.
Software Configuration Management
8.4 Management of Postdelivery Maintenance
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach 1.
Software Testing and Maintenance Maintenance and Evolution Overview
Software Maintenance Main issues: why maintenance is such an issue
Lecture 06:Software Maintenance
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Introduction Software maintenance:
Presentation transcript:

1 Postdelivery Maintenance Xiaojun Qi

2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design, implementation, documentation, or any other type of faults Perfective maintenance: Client requests changes to improve product effectiveness –Add additional functionality –Make product run faster –Improve maintainability Adaptive maintenance: Responses to changes in the environment in which the product operates –The product is ported to a new compiler, operating system, and/or hardware –A change to the tax code –9-digit ZIP codes

3 What Is Required of Postdelivery Maintenance Programmers? At least 67 percent of the total cost of a product accrues during postdelivery maintenance Maintenance is a major income source Postdelivery maintenance is one of the most difficult aspects of software production because –Postdelivery maintenance incorporates aspects of all other workflows

4 Corrective Maintenance A maintenance programmer must have superb debugging skills –The fault could lie anywhere within the product –The original cause of the fault might lie in the by now non-existent specifications or design documents The maintenance programmer must –Deduce from the source code itself all the information needed to avoid introducing a regression fault –Test that the modification works correctly by using specially constructed test cases –Check for regression faults by using stored test data –Add the specially constructed test cases to the stored test data for future regression testing –Document all changes

5 Adaptive and Perfective Maintenance The maintenance programmer must go through the –Requirements –Specifications –Design –Implementation and integration workflows, using the existing product as a starting point A maintenance programmer must be an expert in all three areas, and also in testing and documentation

6 Management of Postdelivery Maintenance Various issues regarding management of postdelivery maintenance are considered –Defect reports: It must include enough information to enable the maintenance programmer to recreate the problem –Authorize changes to the product –Ensure maintainability: We must plan for maintenance over the entire life cycle Design workflow: use information-hiding techniques Implementation workflow: select variable names meaningful to future maintenance programmers Documentation must be complete and correct, and reflect the current version of every artifact

7 The Problem of Repeated Maintenance The moving target problem is frustrating to the development team Frequent changes have an adverse effect on the maintainability of the product. The more changes there are –The more the product deviates from its original design –The more difficult further changes become –Documentation becomes even less reliable than usual –Regression testing files are not up to date –A total rewrite may be needed for further maintenance

8 The Moving Target Problem Apparent solution –Freeze the specifications once they have been signed off until delivery of the product –After each request for perfective maintenance, freeze the specifications for (say) 3 months or 1 year In practice –The client can order changes the next day –If willing to pay the price, the client can order changes on a daily basis

9 Maintenance of Object-Oriented Software The object-oriented paradigm apparently promotes maintenance in four ways –The product consists of independent units –Encapsulation (conceptual independence) –Information hiding (physical independence) –Message-passing is the sole communication The reality is somewhat different

10 Maintenance of Object-Oriented Software (Cont.) Three obstacles –The complete inheritance hierarchy can be large –The consequences of polymorphism and dynamic binding Which version of function contains the fault? Polymorphism and dynamic binding can have –A positive effect on development, but –A negative effect on maintenance –The consequences of inheritance: All descendent subclasses are affected if the superclass is modified

11 Reverse Engineering When the only documentation for postdelivery maintenance is the code itself –Start with the code –Recreate the design –Recreate the specifications (extremely hard) –CASE tools can help (flowcharters, other visual aids) What if we have only the executable code? –Treat the product as a black box –Deduce the specifications from the behavior of the current product

12 Reengineering and Restruring Reengineering –Reverse engineering, followed by forward engineering –Lower to higher to lower levels of abstraction Restructuring –Improving the product without changing its functionality –Examples: Prettyprinting, Structuring code, Improving maintainability, Restructuring (XP, agile processes)