Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Configuration Management
Chapter 11 Software Evolution
Software Regression Testing Speaker: Jerry Gao Ph.D. San Jose State University URL:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
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
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
1 Software Engineering II Presentation Software Maintenance.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Introduction to Software Testing
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
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.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
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.
CH11: Maintaining the System maintenance process can be difficult * The Changing System * The Nature of Maintenance * Maintenance Problems * Measuring.
Software – Acquisition & Testing. ICT5 How to acquire software There are several options: The software may be written by the end-user; A specialist department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
©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.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
CS223: Software Engineering Lecture 32: Software Maintenance.
1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,
 System Requirement Specification and System Planning.
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.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 18 Maintaining Information Systems
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Introduction to Software Testing
Chapter 9 – Software Evolution and Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
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:
Presentation transcript:

Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001

Topic: Software Maintenance - Introduction to Software Maintenance - Software Maintenance Process - Software Changes and Impacts - Software Evolution - Software Maintenance Management Jerry Gao Ph.D.9/2001 Presentation Outline All Rights Reserved

Topic: Software Maintenance What is Software Maintenance? Software maintenance is the general process of changing a system after it has been delivered. Changes are implemented by modifying existing system components and, where necessary, by adding new components to the system. There are three different types of software maintenance: - Maintenance to repair software faults - Maintenance to adapt the software to a different operating environment - Maintenance to add to or modify the system’s functionality Why Software Maintenance ? After delivering a software product, usually it is necessary to change the program to repair the problems, meet new requirements, and adapt new technology and environment. How to accomplish the changes in a cost-effective way? Jerry Gao Ph.D.9/2001 Introduction To Software Maintenance All Rights Reserved

Topic: Software Maintenance Who are involved in software maintenance? - Customer supporters - Technical supporters - Software maintenance engineers and managers Who do it? A software maintenance team often is responsible for software maintenance. Typical cases which need software maintenance: - bug fixing and feature enhancement - change technologies and environments - new business/market changes --> new business rules & requirements - new customer needs new functions and services - organization/business structural changes lead product change requests - budgetary/scheduling constraints cause the redefinition of the product Jerry Gao Ph.D.9/2001 Introduction To Software Maintenance All Rights Reserved

Jerry Gao Ph.D.9/2001 Distribution of Software Maintenance Effort Topic: Software Maintenance Perfective 50% Adaptive 25% Corrective 21% Preventive 4%

Topic: Software Maintenance Jerry Gao Ph.D.9/2001 Software Maintenance Process All Rights Reserved Change requests Impact Analysis Release Planning System Release Change Implementation System Re-testing Fault repairPlatform Adaptation System Enhancement

Jerry Gao Ph.D.9/2001 Software Change Implementation Topic: Software Maintenance Requirements analysis Requirements Updating Software development Proposed changes

Jerry Gao Ph.D.9/2001 Software Maintenance Activities Topic: Software Maintenance Manage software maintenance Understand software under change Implement maintenance change Account for ripple effect Retest affected software Analyze software change impact New system Existing system AdaptabilityComplexity Modularity Documentation Self-descriptiveness Stability Consistency Testability Verifiability Completeness Impact/scope Traceability roadmap Change requests

Topic: Software Maintenance System development phaseTypes of product changes - Requirements analysis- Requirements Spec. Changes - System Design- System architecture changes - High-level design doc. changes - Low-level design doc. Changes - System implementation- Component changes - internal data and logic - internal functions - Component interface changes - Technology and/or language changes - System testing- Test case, test procedures, test data changes - Test scripts changes - Test specification changes - Document changes- changes in user manual, reference doc. - changes in system admin, doc. Jerry Gao Ph.D.9/2001 Software Changes and Impacts All Rights Reserved

Topic: Software Maintenance Types of system changes Types of product impacts Requirements changesAffect design, coding, and testing Document update Design changesAffect coding and tests Affect associated components Affect system architecture Affect related component interactions Implementation changesAffect test cases, test data, test scripts Affect test specification. Code change impact s - Test changesAffect other tests. Affect test documentation Document changesAffect other documents. Jerry Gao Ph.D.9/2001 Software Changes and Impacts All Rights Reserved

Jerry Gao Ph.D.9/2001 Software Changes and Impacts Topic: Software Maintenance

According to Lehman (1980), there are five laws of software evolution: - Continuing change - Increasing complexity - Large program evolution Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors are approximately invariant for each system release. - Organizational stability Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development. - Conservation of familiarity(perceived complexity) Over the lifetime of a system, the incremental change in each release is approximately constant. Jerry Gao Ph.D.9/2001 Software Evolution - Laws of Software Evolution All Rights Reserved

Jerry Gao Ph.D.9/2001 Software Maintenance Prediction Topic: Software Maintenance What parts of the system will be the most expensive to maintain? What will be the lifetime maintenance costs of this system? What will be the costs of maintaining this system over the next year? What parts of the system are most likely to be affected by change requests? How many change requests can be expected? Predicting maintainability Predicting maintenance costs Predicting system changes

Topic: Software Maintenance Configuration status reporting (called status accounting) is a SCM task that answer the following questions: - What happened? - Who did it? - when did it happened? - What else will be affected? Status reporting plays a vital role in the success of a large software development project. When many people are involved in a project, “the left hand does not know what the right hand is doing”. Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

Jerry Gao Ph.D.9/2001 Development Cost vs. Maintenance Cost Topic: Software Maintenance System 1 System Development costs Maintenance costs

Topic: Software Maintenance Key factors for higher maintenance costs are: - Team stability - Contractual responsibility - Staff skills - Program age and structure Other factors affecting maintenance effort: - Product quality, (requirements, design, code, and documentation) - Target environment (HW/SW) - Domain applications - System complexity Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

Topic: Software Maintenance Major team responsibility: Faults repairs: - Understand and analyze the problems - Locate the faults and their causes - Find the solutions, made the correction - Answer the questions from customer - Update documents Enhancements and environment update: - Understand product, including program, documents,... - Change analysis and impact analysis - Add new modules for new functions - Made changes for new features - Made changes for upgrading new technology and environment - Retest the product - Update documents Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

Topic: Software Maintenance Major maintenance problems: Managerial issues: - Hard to find the qualified staff - Hard to plan and schedule a project (in terms of cost and time) - Low morale and productivity - Tight schedules and demanding customers - High demands on communication and negotiation skills with customers. - Not easy to make the right decisions and priorities Technical problems: - Documents do not match with the products - Limited understanding of the product - Hard to conduct change analysis and impact analysis - Difficult to performance regression testing - Not easy to make correct changes without system degradation Jerry Gao Ph.D.9/2001 Software Maintenance Management All Rights Reserved

Topic: Software Maintenance Major automated software maintenance tools: Management tools: - Problem management tool - System configuration management tool Static tools: - Static code analyzers - Cross-reference generators - Change analysis and impact identification tool Dynamic tools: - Program tracking tool (for program behaviors) - Performance monitoring tool - Debugging tool Testing tools: - Regression testing tool, automatic GUI replay Jerry Gao Ph.D.9/2001 Software Maintenance Tools All Rights Reserved

Jerry Gao Ph.D.9/2001 Measurements for Software Maintenance Topic: Software Maintenance