SOFTWARE ENGINEERING SOFTWARE MAINTENANCE

Similar documents
Software Maintenance. Main Points. Relative Distribution of Software/Hardware Costs

WHAT DO YOU NEED TO KNOW ABOUT SOFTWARE MAINTENANCE

Software Maintenance. (Chapter 14) Relative distribution of Point to ponder #1

Chapter 6: Software Evolution and Reengineering

Software Engineering & Architecture

Software Maintenance *

Software Maintenance *

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Prof SRM University, Kattankulathur. School of Computing, Department of IT 1

Managing System Performance

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution

Overview of Maintenance. CPRE 416-Software Evolution and Maintenance-Lecture 3

Software Evolution und Reengineering!

Product definition, product vision, product life cycle

Chapter 16 Software Reuse. Chapter 16 Software reuse

Test Workflow. Michael Fourman Cs2 Software Engineering

TECHRISK A DECISIONAL FRAMEWORK TO MEASURE TECHNICAL DIMENSIONS OF LEGACY APPLICATION FOR REJUVENATION THROUGH REENGINEERING

Chapter 16 Software Reuse. Chapter 16 Software reuse

Introduction to Software Product Lines Patrick Donohoe Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

The Open Group Exam OG0-091 TOGAF 9 Part 1 Version: 7.0 [ Total Questions: 234 ]

Leading the Evolution. HSBC Secures International Competitive Advantage

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

Chapter 4 Software Process and Project Metrics

MBA BADM559 Enterprise IT Governance 12/15/2008. Enterprise Architecture is a holistic view of an enterprise s processes, information and

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

Policy Administration Transformation

6. Capability Maturity Method (CMM)

CGEIT Certification Job Practice

This chapter illustrates the evolutionary differences between

E-PROCUREMENT OPERATIONS

Unit-V Chapter-1 PROJECT CONTROL & PROCESS INSTRUMENTATION

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

INF 3121 Software Testing - Lecture 05. Test Management

Chapter 1. Software Engineering Supporting Processes

Enterprise Systems for Management. Luvai Motiwalla Jeffrey Thompson Second Edition

ABB Month DD, YYYY Slide 1

Crucial Questions Every Wealth Business Should Ask When Defining its Growth Strategy

Software Quality. Unit 6: System Quality Requirements

SOFTWARE MAINTENANCE PROCESS MODEL AFTER DELIVERY WITH QUALIFIED OUTPUT

Average Span & Comment Ratio for Maintenance of Model Using Fuzzy Technique

Acquisition Overview: The Challenges

PART THREE: Work Plan and IV&V Methodology (RFP 5.3.3)

The Evolution of Analytics

Test Strategies Around the World Winning the War on Bugs Through Strategy

Requirements Engineering

2010 ERP REPORT. Organizational Change Management

Gathering Network Requirements

Lecture 12. Maintenance. Lecture Objectives. System Costs to IS Department. Transition to Maintenance. What is Maintenance. Corrective Maintenance

Requirements Gathering using Object- Oriented Models

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

Software MEIC. (Lesson 12)

Project Management Methodology. Construct & Unit Test SubPhase

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Domain Driven Data Mining: An Efficient Solution For IT Management Services On Issues In Ticket Processing

Los Rios Community College District Adopted: November 2013 Revised: June 2014

A Decision Making Tool for the Selection of Service Oriented-Based Legacy Systems Modernization Strategies

A Survey on the Flexibility Requirements related to Business Processes and Modeling Artifacts. Selmin Nurcan, HICCS 08, Waikoloa,, Hawaii

TOGAF Foundation Exam

NAVIGATING PMO IMPROVEMENT WITH OPM3

Enterprise Architecture and COBIT

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Engineering Part 2

A4. That is a typical ratio. A survey by IDC showed an even more extreme 22:78 ratio.

Software Sustainment. Defense Acquisition University Jason Hamilton Professor, Information Technology 7 June PSM Workshop [7 June 2017] 1

Decision Support System (DSS)

Software Quality Factors

Basics of Software Engineering. Carmen Navarrete

Software Quality Management

Organizing For Systems Management

Software Engineering Unit - 1 (Lecture Notes)

Establishing Requirements for Exception Handling Herbert Hecht SoHaR Incorporated

Exam Questions OG0-091

Acceptance Testing & Delivery. Acceptance Testing

What s in the Code Unraveling the Enigma of Legacy Systems. logical solutions. adjusted to the need

Chapter 5 Part Test progress monitoring and control. 4. Configuration management. 5. Risk and testing. 6. Incident management

Designing To Avoid Human Error Consequences

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

Test Management: Part I. Software Testing: INF3121 / INF4121

Ten steps to effective requirements management

Using Pilots to Assess the Value and Approach of CMMI Implementation

ISSN (Print) Original Research Article. *Corresponding author Prodip Kumar Sarker

ISM 50 - Business Information Systems

IT Strategic Plan. Executive Summary. Introduction

I hate Maintenance! Maintenance SUCKS!

COBIT Control Assessment Questionnaire

QUESTIONS NUMBER ONE (Total marks 20) NUMBER TWO (Total marks 20) NUMBER THREE

TEMPLATE FOR A SOFTWARE MAINTENANCE PLAN Second Edition ISBN

TOGAF 9.1 Phases E-H & Requirements Management

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Realize and Sustain the Value of Your Micro Focus Implementation

Work Product Dependency Diagram

CHAPTER 4 PRODUCT DEVELOPMENT LIFE CYCLE

Enterprise DevOps at Scale

Best Practices for Technology Renewal in Banking Institutions

IEEE s Recommended Practice for Architectural Description

Software Engineering QUESTION BANK

PASW Modeler. Achieve Your Goals with Deep, Predictive Insight

PPI Capabilities Overview

Architecture. By Glib Kutepov Fraunhofer IESE

Transcription:

SOFTWARE ENGINEERING SOFTWARE MAINTENANCE Software maintenance is the process of modification or making changes in the system after delivery to overcome errors and faults in the system that were not uncovered during the early stages of the development cycle. LEARNING OBJECTIVES To study on why maintenance is an issue. To study on reverse engineering and limitations. To organize data. To check what the system does. SOFTWARE MAINTENANCE The IEEE Standard for Software Maintenance (IEEE 1219) gave the definition for software maintenance as The process of modifying a software system or component after delivery to correct faults, improves performance or other attributes, or adapt to a changed environment.

Percent of total cost Maintenance Principles 100 60 20 Hardware Software Development Maintenance 1995 2000 2010 The IEEE/EIA 12207 Standard defines maintenance as modification to code and associated documentation due to a problem or the need for improvement. Nature of Maintenance Modification requests are logged and tracked, the impact of proposed changes are determined, code and other software artifacts are modified, testing is conducted, and a new version of the software product is released. Maintainers can learn from the developer s knowledge of the software. Need for Maintenance Maintenance must be performed in order to: Correct faults. Improve the design. Implement enhancements. Interface with other systems. Adapt programs so that different hardware, software, system features, and telecommunications facilities can be used. Migrate legacy software. Retire software

Tasks of a maintainer The maintainer does the following functions: Maintain control over the software s day-to-day functions. Maintain control over software modification. Perfecting existing functions. Preventing software performance from degrading to unacceptable levels. Majority of Maintenance Costs Maintenance consumes a major share of software life cycle financial resources. But studies and surveys have shown that over 80% of the maintenance effort is used for non-corrective actions. Quality of software design, construction, documentation, and testing affects software maintenance costs. Evolution of Software Lehman has studied software maintenance and evolution for over 20 years, leading to Lehman s Laws. E.g. increasing complexity as a program is evolved, its complexity increases unless work is done to maintain or reduce it. CATEGORIES OF MAINTENANCE Maintenance can be categorized into the follwing: o Corrective maintenance o Adaptive maintenance o Perfective maintenance o Preventive maintenance Corrective maintenance: Reactive modification of a software product performed after delivery to correct discovered problems. Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment.

Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability. Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults. KEY TO MAINTENANCE The key to effective maintenance lies in development. Depending upon the development of the product the maintenance of the product is determined. Higher quality less (corrective) maintenance Anticipating changes less (adaptive and perfective) maintenance Better tuning to user needs less (perfective) maintenance Less code less maintenance The distribution of maintenance activities are shown in the figure below: corrective 21% perfective 50% adaptive 25% preventive 4% Major causes of maintenance problems Some of the major factors which causes problem in maintenance is as follows: Unstructured code Insufficient domain knowledge Insufficient documentation

The key issues in software maintenance include: Limited Understanding Shift in type of maintenance Impact Analysis Maintainability Alignment with organizational objectives Staffing Process Organizational aspects of maintenance Outsourcing Cost Estimation Specific Measures Limited Understanding The maintainers make changes or corrections to software that they did not write, so they should quickly understand the software. 40%-60% of the maintenance effort is devoted to understanding the software. Comprehension is difficult in the absence of documentation and when the original developers are unavailable. The maintainers must quickly understand the software and should make modifications to overcome the issues in the system. Shift in type of maintenance Shift in type of maintenance over time can be projected as follows: Introductory stage: emphasis on user support. Growth stage: emphasis on correcting faults. Maturity: emphasis on enhancements. Decline: emphasis on technology changes. Impact Analysis The objectives of impact analysis are: Determination of the scope of the change in order to plan and implement the work.

Development of accurate estimates of resources needed to perform the work. Analysis of the cost/benefits of the requested change. Communication to others of the complexity of a given change. Maintainability IEEE [IEEE610.12-90] defines maintainabiliy as the ease with which software can be maintained, enhanced, adapted, or corrected to satisfy specified requirements and the presence of systematic and mature processes, techniques, and tools helps to enhance the maintainability of a system