CS223: Software Engineering Lecture 32: Software Maintenance.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 11 Software Evolution
ITIL: Service Transition
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
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
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.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
CS 577b Software Engineering II -- Introduction
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software 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
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE
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.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.

CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
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.
1 Ontology Summit 2011 Track 3 Value Metrics & Value Models Ontology Use - Maintenance Todd Schneider Raytheon 17 February 2011.
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.
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.
©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.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
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.
©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.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©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.
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,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Engineering — Software Life Cycle Processes — Maintenance
Overview Software Maintenance and Evolution Definitions
Maintenance Issues in Software Engineering
CS223: Software Engineering
Chapter 18 Maintaining Information Systems
Software Maintenance PPT By :Dr. R. Mall.
CS 425/625 Software Engineering Software Evolution
Chapter 9 – Software Evolution and Maintenance
Chapter 9 Software Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8 Software Evolution.
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Presentation transcript:

CS223: Software Engineering Lecture 32: Software Maintenance

Recap Software development life cycle o Requirement analysis o Design o Coding o Testing o Deployment

Objective After completing this lecture students will be able to o Explain the importance of software maintenance o Follow standard software maintenance principles o Practice software maintenance in a structure manner

Fundamentals Introduces the concepts and terminology o That form an underlying basis to understanding  The role and scope of software maintenance. Definitions and Terminology Nature of Maintenance Need for Maintenance Evolution of Software Categories of Maintenance

Components of a software

How New Development and Maintenance Activities Differ? "The architect and the builders must take care not to weaken the existing structure when additions are made. Although the costs of the new room usually will be lower than the costs of constructing an entirely new building, the costs per square foot may be much higher because of the need to remove existing walls, reroute plumbing and electrical circuits and take special care to avoid disrupting the current site " -- Jones

Software Evolution It is impossible to produce system of any size which do not need to be changed. Once software is put into use, new requirements emerge and existing requirements changes as the business running that software changes. o Parts of the software may have to be modified to correct errors that are found in operation, o Improve its performance or other non-functional characteristics. After delivery, software systems always evolve in response to demand for change.

Program Evolution Dynamic LawDescription Continuing change A program that is used in real-world environment necessarily must change or become progressively less useful in that environment. Increasing complexity As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplify the structure. l Program evolution dynamic is the study of system change (Lehman and Belady).

Program Evolution Dynamic (cont’d) LawDescription Large program evolution Program evolution is self-regulation process. System attributes such as size, time between release and the number of report 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 the system development Conservation of familiarity Over the lifetime of system, the incremental change in each release is approximately constant.

Software Evolution Approaches There are a number of different strategies for software change o Software maintenance o Architectural transformation o Software re-engineering.

Software Evolution Approaches Architectural transformation o This is a more radical approach to software change then maintenance as it involves making significant change to the architecture of the system. Software re-engineering o This is different from other strategies in that no new functionality is added to the system. o System re-engineering may involve some structural modifications but dose not usually involves major architectural change.

Software Maintenance Fundamentals Definition Need Cost Evolution Categories Key Issues Technical Management Cost Estimation Measurement Process Activities Techniques Comprehension Reengineering Reverse Engineering Migration Retirement Tools

Software maintenance Changes to the software are made in response to changed requirements but the fundamental structure of the software remains stable. This is most common approach used to system change. The Maintenance Process contains the activities and tasks necessary to modify an existing software product while preserving its integrity

Purpose of Maintenance Correct faults Improve the design Implement enhancements Interface with other software Adapt programs so that different hardware, software, system features, and telecommunications facilities can be used Migrate legacy software Retire software.

EUP Life cycle

Characteristics of Maintenance Activities Maintaining control over the software’s day-to-day functions Maintaining control over software modification Perfecting existing functions Identifying security threats and fixing security vulnerabilities Preventing software performance from degrading to unacceptable levels.

Categories of Maintenance Modification Request Correction Corrective Preventive Enhancement Adaptive Perfective A generic term used to identify proposed modifications to a software product that is being maintained

Corrective Maintenance Reactive modification (or repairs) of a software product Performed after delivery to correct discovered problem Emergency maintenance o Unscheduled modification performed o To temporarily keep a software product operational pending corrective maintenance

Adaptive Maintenance Modification of a software product performed after delivery To keep a software product usable in a changed or changing environment. E.g. Operating system

Perfective maintenance Modification of a software product after delivery To provide enhancements for users, Improvement of program documentation, and Recoding to improve software performance, maintainability, or other software attributes.

Preventive maintenance Modification of a software product after delivery To detect and correct latent faults in the software product before they become operational faults. CorrectionEnhancement Proactive Reactive PreventivePerfective CorrectiveAdaptive

Issues Issues must be dealt with to ensure the effective maintenance of software E.g., trying to find a fault in software containing a large number of lines of code that another software engineer developed. Technical issues Management issues Cost estimation Measurement

Technical Issues Limited Understanding Testing Impact Analysis Maintainability Half of the total maintenance effort The cost of repeating full testing MR- PR analysis Capability of the software product to be modified IEEE (Impact analysis) 1.analyze MRs/PRs; 2.replicate or verify the problem; 3.develop options for implementing the modification; 4.document the MR/PR, the results, and the execution options; 5.obtain approval for the selected modification option.

Management Issues Alignment with Organizational Objectives Staffing Process Organizational Aspects of Maintenance Outsourcing How to demonstrate the return on investment To attract and keep software maintenance staff Unique set of activities for maintenance

Thank you Next Lecture: Software Maintenance