Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.

Slides:



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

Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
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 Evolution Managing the processes of software system change
Software evolution.
4 types of implementing information systems
Software maintenance Managing the processes of system change.
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.
Lecture # 22 Software Evolution
System Analysis and Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.

What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
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.
Installation and Maintenance of Health IT Systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Chapter 3: Software Project Management Metrics
©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.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
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.
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,
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.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Engineering — Software Life Cycle Processes — Maintenance
Advanced Software Engineering Dr. Cheng
CompSci 280 S Introduction to Software Development
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Regression Testing with its types
Maintenance Issues in Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 18 Maintaining Information Systems
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Software Maintenance
Software Maintenance PPT By :Dr. R. Mall.
Software Engineering (CSI 321)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
CS 425/625 Software Engineering Software Evolution
Chapter 2 – Software Processes
Software life cycle models
Software Testing and Maintenance Maintenance and Evolution Overview
Chapter 9 – Software Evolution and Maintenance
Modern Systems Analysis and Design Third Edition
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Chapter 27 Software Change.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8 Software Evolution.
Software Maintenance Main issues: why maintenance is such an issue
Unit 5 15SE202 Software engineering Principles
Lecture 06:Software Maintenance
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Introduction Software maintenance:
System Analysis and Design:
To Brihaspathi. Software Development Services
Presentation transcript:

Software Maintenance Part1 Introduction

Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips Maintenance team responsibilities Maintenance Plan Maintenance Types Cost of Maintenance Process of Maintenance Software Maintenance Models Maintenance Techniques Summary References

Introduction Nowadays, Software maintenance constitutes a major phase of the software development life cycle. Studies indicate that software maintenance is responsible for a significant percentage of a system’s overall cost and effort.

Introduction cont… It is an essential part of software development process, Even if we assume that we can design and build a perfect system matching all requirements.

Basic Concepts Evolution - a process of continuous change from a lower, simpler, or worse to a higher, more complex, or better state. Maintenance - the act of keeping an entity in an existing state of repair, efficiency, or validity; to preserve from failure or decline. Maintainability - the ease with which maintenance can be carried out.. Software - the programs, documentation and operating procedures by which computers can be made useful to man

What Is Software Maintenance ? Maintenance is the term for any effort that is put into a piece of software after it has been written and put into operation. Software engineering for students by Douglas Bell

What Is Software Maintenance ? Is the set of activities, both technical and managerial, ensures that software continues to meet organizational and business objectives in a cost effective way.

Maintenance ≠ Evolution Evolution of software systems means creating new but related designs from existing ones. Software evolution is the need of the software currently used or running to be developed, improved or adjusted.

Maintenance ≠ Evolution Maintenance does not involve making major changes to the architecture of the system. means keeping system running with no change to its design. Maintenance means to let the software system run as to what it should supposed to be.

Purposes of Maintenance Providing continuity of service Supporting mandatory upgrades Improving the software to support user requirements Preserve the value of software over time

Software Maintenance There are two main issues: 1. Management Issues 2. Technical Issues There are two main strategies: 1. As-Needed 2. Systematic

Why We Need It ? It is impossible to produce system of any size which do not need to be changed. Software Maintenance is performed in order to: 1. Correct faults or Fixing bugs. 2. Improve the performance or the design. 3. Implement enhancements and remove of Outdated Functions. 4. Enhance the capability for changing environment.

Why We Need It ? Some other reasons due to changes: Market Conditions - Policies, which changes over the time, such as taxation and newly introduced constraints like, how to maintain bookkeeping, may trigger need for modification. Client Requirements - Over the time, customer may ask for new features or functions in the software. Host Modifications - If any of the hardware and/or platform (such as operating system) of the target host changes, software changes are needed to keep adaptability. Organization Changes - If there is any business level change at client end, such as reduction of organization strength, acquiring another company, organization venturing into new business, need to modify in the original software may arise Government Regulations & Policies

Maintenance Difficilties Maintenance usually costs alot. Changes made to a program may introduce new faults. The program to be maintained are not well documented.

Maintenance Difficilties The system was not designed for maintenance. The program being maintained may have been developed many years ago without modern software engineering techniques.

Some Tips It is suggested that more time and resources should be invested to develop a system that is easy to maintain. Complete Replacement of an exist System if the cost for maintaining as much as developing a new one.

Maintenance team responsibilities Extending existing functions to accommodate new or changing requirements. Adding new functions to the system. Keeping system documentation up-to- date. Finding the source of system failures or problems. Managing changes to the system as they are made.

Maintenance processes

Maintenance Plan Software Maintenance requires an accurate maintenance plan. It should specify how users will request changes or report problems. It should specify what activities are required and how to manage them. The Plan should include resource and cost estimates.

Maintenance Types l Corrective Maintenance u Identify and remove defects u Correct actual errors l Perfective Maintenance u Improve performance u Add new functionality Adaptive Maintenance Adapt to a new/upgraded environment (e.g., hardware, operating system) Preventive Maintenance Modifications and updations to prevent future problems

Maintenance Types corrective 21% adaptive 25% preventive 4% perfective 50%

Cost of Maintenance Studies suggest that the cost of maintenance is high. A study by Lientz and Swanson found that the cost of maintenance nearly 67% of the cost of SDLC.

Maintenance Activities

Software Maintenance Models Quick-Fix Model Iterative Enhancement Model Reuse-Oriented Model Boehm’s Model Taute Maintenance Model

Maintenance Techniques Re-engineering Reverse Engineering Program Restructuring Forward Engineering Component Reusability

Summary Software maintenance is a critical phase in the life cycle of a system. It’s difficult to maintain a system, even if it’s designed to be maintainable.

References Software Engineering, Maintenance, Hans van Vliet, 2008 Software Engineering: Theory and Practice, 4th Edition Shari Lawrence Pfleeger. Joanne M. Atlee. Ian Sommerville 1995 Software Engineering, 5th edition. Software Maintenance and Evolution: a Roadmap, K. H. Bennett & V.T Rajlich Techniques for Software Maintenance,2011. Kostas Kontogiannis Department of Electrical and Computer Engineering maintenance maintenance/ ntenance_overview.htm

THANKS