Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 1.

Slides:



Advertisements
Similar presentations
CIS 376 Bruce R. Maxim UM-Dearborn
Advertisements

MIS 2000 Class 20 System Development Process Updated 2014.
BUSINESS DRIVEN TECHNOLOGY
Chapter 4 Quality Assurance in Context
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
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
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CS 501: Software Engineering
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
Software evolution.
Introduction to Systems Analysis and Design
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
CHAPTER 19 Building Software.
The Vision Document 1. Importance of a Vision Document  It describes the application in general terms, including descriptions of the target market, the.
Introduction to Computer Technology
Chapter 9 – Software Evolution and Maintenance
Terms: Test (Case) vs. Test Suite
Lecture # 22 Software Evolution
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.

CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
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, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
© Andrew IrelandSoftware Design F28SD2 Function-oriented Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
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 9 – Software Evolution 1Chapter 9 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
JD Edwards Support & Tools Gillian Boshell Product Service Advisor, Oracle Australia.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Chapter 7: Delivery, Installation, and Documentation Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Software Reuse Introduction Page 1 Ronald J. Leach SOFTWARE REUSE: INTRODUCTION.
Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
The Major Continuing Software Development Project Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
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
Fundamentals of Information Systems, Sixth Edition
Chapter 18 Maintaining Information Systems
Introduction SOFTWARE ENGINEERING.
Software Maintenance PPT By :Dr. R. Mall.
CS 425/625 Software Engineering Software Evolution
Software Testing and Maintenance Maintenance and Evolution Overview
Gathering Systems Requirements
Chapter 8 Software Evolution.
Gathering Systems Requirements
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Introduction Software maintenance:
Function-oriented Design
Presentation transcript:

Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,

Software Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Hardware and software maintenance are different Copyright Ronald J. Leach, 1997, 2009, 2014, Typical “bathtub curve for hardware failures

Software must be maintained 1.Hardware platforms change or become obsolete. 2.Operating systems change or become obsolete. 3.Compilers change or become obsolete. 4.Language standards change or become obsolete. Copyright Ronald J. Leach, 1997, 2009, 2014,

Software must be maintained 5.Communications standards change or become obsolete. 6.Graphical user interfaces change or become obsolete. 7.Related applications software packages change or become obsolete. 8.Relationships with developers of other applications or systems software change. Copyright Ronald J. Leach, 1997, 2009, 2014,

Software must be maintained 9.Software defects noted by customers must be corrected. 10.Customers demand new features. 11.Software needs upgrades to be competitive with new competition. 12.Existing software errors must be prevented from occurring in new releases of the software. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015

How to Read Requirements, Design, and Source Code Copyright Ronald J. Leach, 1997, 2009, 2014,

Old adage: If the source code and any of the requirements, design, or documentation do not agree, they’re all wrong Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggestions Look for similar cases Look at the IDE or CASE tool where the software was created Copyright Ronald J. Leach, 1997, 2009, 2014,

Corrective Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Corrective Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014, Observation that a problem exists. Documentation of the problem. Determination of importance. Prioritizing problems in order of importance. Determining which problems will not be repaired, due to insufficient resources. Solution of the problem.

Corrective Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014, Testing the system to see if the fix to this problem causes any other faults. Documenting the solution in source code. Documenting changes have been made to the original system design. Updating a database of information about software errors.

Fred Brooks ’ View ”…as a consequence of the introduction of new bugs, program maintenance requires far more system testing per statement written than any other programming. “ (“The Mythical Man Month”) Copyright Ronald J. Leach, 1997, 2009, 2014,

Fred Brooks ’ View, cont. ”Theoretically, after each fix, one must run the entire batch of test cases previously run against the system, to ensure that it has not been damaged in an obscure way. In practice, such regression testing must indeed approximate this theoretical idea, and it is very costly." (The Mythical Man Month”) Copyright Ronald J. Leach, 1997, 2009, 2014,

Adaptive Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Need to respond to changes In technology In the marketplace Even worse if the technology is disruptive Copyright Ronald J. Leach, 1997, 2009, 2014,

Software Evolution Copyright Ronald J. Leach, 1997, 2009, 2014,

Software Evolution Some software is so long-lived that its maintenance changes are best described as “evolution.” Especially true for rapidly changing technology environments Even true for COTS products and large-scale components Copyright Ronald J. Leach, 1997, 2009, 2014,

Buy vs. Build vs. Reuse vs. Reengineer Copyright Ronald J. Leach, 1997, 2009, 2014,

Always the decision to be made Factors include: – Total life cycle costs to date (presumed known) – Total life cycle costs expected in the future (only meaningful if the cost models used have been reasonably accurate – Technology assessment predictions Copyright Ronald J. Leach, 1997, 2009, 2014,

Always the decision to be made Factors include: – Total life cycle costs to date – Expected costs to buy – Expected costs to reuse – Expected costs to reengineer – Balancing the decision against the commitment of resources that could be used elsewhere Copyright Ronald J. Leach, 1997, 2009, 2014,

Typical cost allocation for short- lived software systems with minimal maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Typical cost allocation for short- lived software systems with some maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Typical cost allocation for short- lived COTS-based software systems with minimal maintenance Copyright Ronald J. Leach, 1997, 2009, 2014,

Typical cost allocation for COTS- based software systems that have to be replaced every few years Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggestions Collect data on how projects spend money. Map this data over time to get a graphical image of how costs increased when new releases of COTS products occurred and had to be incorporated into a system. Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggestions, cont. Keep data on how much up-front systems analysis and COTS evaluation costs and how long they take. Consider the use of some less-expensive, junior-level personnel as part of the COTS evaluation team, at least for the second or third iteration of the COTS-based system. Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggestions, cont. Plan to reduce the number of senior-level people kept on long-term projects, by phasing in some of the more junior personnel. You’ll probably have to do it anyway, because talented people want professional growth! Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggestions, cont. Make sure there are at least a few domain experts and senior software engineers always available, even if you have to pay more. Consultants may be of assistance in filling some portion, but not all, of this role. Learn from your mistakes! Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile Development Case Study: Maintenance and Evolution Copyright Ronald J. Leach, 1997, 2009, 2014,

The nature of agile development Rapid development of well-tested software in cooperation with a “customer.” It is highly unlikely that any significant portion of the agile development team will be around the organization during maintenance. Copyright Ronald J. Leach, 1997, 2009, 2014,

Agile development and maintenace Few agile developers work on software maintenance Maintenance requires considerable effort understanding programs before systems can be maintained. Little reliable data on the cost of maintaining agile systems. Copyright Ronald J. Leach, 1997, 2009, 2014,

An opportunity Software developed using agile processes is often created faster than faster than similar projects using other methods. Are the agile projects “better?” Are total life cycle costs lower, higher, or the same? How can we tell what’s best for our organization? Copyright Ronald J. Leach, 1997, 2009, 2014,

The solution Use maintenance information to analyze quality and other metrics on different types of software development processes. The goal is process improvement. NOTE: this analysis of maintenance data is not part of an agile process, but it is part of software engineering! Copyright Ronald J. Leach, 1997, 2009, 2014,

Maintenance of the Major Continuing Software Development Project Copyright Ronald J. Leach, 1997, 2009, 2014,

Maintenance occurs after delivery What happens next in a software engineering course after the semester is over? New features Improved design Increased security … Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggested new features Migrate to a new operating system Move to a new platform Copyright Ronald J. Leach, 1997, 2009, 2014,

Suggested new design Move to a Macintosh Move to a Linux or UNIX system Move some data to a tablet or smart phone Improve visualization Copyright Ronald J. Leach, 1997, 2009, 2014,

Improve security Always! Copyright Ronald J. Leach, 1997, 2009, 2014,

An opportunity The major continuing software development project used a particular software development process, perhaps different ones for different teams using other methods. How can we tell what worked best? Copyright Ronald J. Leach, 1997, 2009, 2014,

The solution Use maintenance information to analyze quality and other metrics on different types of software development processes. The goal is process improvement. NOTE: this analysis of maintenance data is a critical part of software engineering! Copyright Ronald J. Leach, 1997, 2009, 2014,