Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)

Slides:



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

Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
1 Managing the ISD (Chapter 10) The Issues: 1) What systems should be developed 2) In-house or Out-Source development 3) Buy or make 4) How do assess systems.
1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
Software Configuration Management
Chapter 10 Systems Operation, Support, and Security
Slide 16.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
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.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Slide 16.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
CSC 395 – Software Engineering Lecture 21: Overview of the Term & What Goes in a Data Dictionary.
Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?
Software Quality Assurance
Maintenance When the system is complete and deployed the system is operational. The work done on the operational system is called maintenance.
A Social Story for Students
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.
Ethics in Software Engineering
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
CSC 395 – Software Engineering Lecture 34: Post-delivery Maintenance -or- What’s Worse than Being a Code Monkey?
1 CMPT 275 Software Engineering Software life cycle.
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Object Oriented Analysis and Design Introduction.
Software Engineering Lecture 20 Software Maintenance.

Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
SOFTWARE REUSE 28 March 2013 William W. McMillan.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Lecture 12 Maintenance CSCI – 3350 Software Engineering II Fall 2014 Bill Pine.
This chapter is extracted from Sommerville’s slides. Text book chapter
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,
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
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.
Designing Classes. Software changes Software is not like a novel that is written once and then remains unchanged. Software is extended, corrected, maintained,
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 Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
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.
Evaluating Requirements
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Software Maintenance1 Software Maintenance.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
CS223: Software Engineering Lecture 34: Software Maintenance.
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.
Software Configuration Management
8.4 Management of Postdelivery Maintenance
Software Maintenance.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach 1.
Maintenance.
Software Maintenance Main issues: why maintenance is such an issue
Applying Use Cases (Chapters 25,26)
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Re-engineering and Reverse Engineering
Presentation transcript:

Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)

Why Maintenance? Correct faults in specification, design, coding, documentation This is corrective maintenance, maybe 20% of the job (according to one study) Perfective maintenance (60%) is adding functionality or improving operability Adaptive maintenance (20%) is reaction to changes in the operating environment Altogether, often 2/3 of the cost of software

Maintenance is Hard Yet organizations usually give it to newbies and incompetents Maintenance requires knowledge of all the skills in software development Maintenance requires knowledge of the complete program

Responding to a Fault Report User submits fault report: product doesn’t work like the manual says Is the user wrong? Is the manual wrong? Is it the code? What code? Can I fix the code without regression faults? Is there documentation (requirements, design, code, testing)?

Perfective Maintenance The programmer has to be expert in specs, design, coding, testing & documentation Less experienced programmers don’t belong here

The “Rewards” Thankless task; you only deal with unhappy users Someone else caused the problem, you have to fix it The code may be badly written Definitely not a high-status position But if you do a poor job, the client goes elsewhere (maybe you do too)

Temperate Fruit Committee The problem - no room for expansion - was caused by the developer, not the maintainer Clients don’t understand that maintenance can be difficult or impossible Development must consider future expansion

Maintenance Management Fault reports Keep a prioritized list of backlogged reports Try to find a workaround immediately Analyze, and add info (documentation, listings, etc.) to the fault report Circulate fault report with workaround to all users Sometimes cheaper & easier to fix several faults at once

Maintenance Management Know which modules need changing Use version control to ensure two modules aren’t simultaneously changed Ensure continued maintainability Beware the moving target

Maintenance of O-O Software Encapsulation is supposed to make some maintenance problems disappear But it can add new difficulties It may be hard to see all the methods of a class in a deep hierarchy. Solution: use tools Polymorphism may make it time consuming to check the effect of a change Changes to a class interior to a hierarchy are propagated to the leaf classes

Other Issues Reverse engineering may be necessary Case tools can help for O-O software Metrics can alert to especially fragile or sensitive classes Are changes being made to reused components? If so, should the reuse library be updated?