5 chap - maintenance

39
Chapter No. 5 Maintenance 1

Upload: sujit-karande

Post on 21-Jan-2015

533 views

Category:

Education


0 download

DESCRIPTION

PROF. SUJIT H. KARANDE

TRANSCRIPT

Page 1: 5 chap - MAINTENANCE

Chapter No. 5

Maintenance

1

Page 2: 5 chap - MAINTENANCE

Study Resources:Reference Books

• Analysis and design of information systems: James A. Senn. Page no. 694• System Analysis And Design: Jalote. Page No. 11• Software Engineering : Pressman. Page No. 762• Software Engineering Concepts: Richard Fairley. Page No. 311-

328

2

Page 3: 5 chap - MAINTENANCE

5.1. Types of Maintenance

The process of changing of a system after it has been delivered and is in use is called Software maintenance.

• Why maintenance is required: • Not as rewarding as exciting as developing systems. It is

perceived as requiring neither skill nor experience.• Users are not fully cognizant of the maintenance problem

or its high cost.• Few tools and techniques are available for maintenance.• A good test plan is lacking.

3

Page 4: 5 chap - MAINTENANCE

5.1. Types of Maintenance

Why maintenance is required:

• Standards, procedures, and guidelines are poorly defined and enforced.

• Maintenance is viewed as a necessary evil, often delegated to junior programmers. There are practically no maintenance manager job classification in the MIS field.

• Programs are often maintained without care for structure

and documentation.

4

Page 5: 5 chap - MAINTENANCE

5.1. Types of Maintenance

Types of software maintenance

1. Corrective maintenance2. Adaptive maintenance3. Perfective maintenance4. Preventive maintenance

5

Page 6: 5 chap - MAINTENANCE

1. Corrective maintenance

• Maintenance which is required when an item has failed or worn out, to bring it back to working order.

• In most cases this is expensive. • When equipment fails, need to replace, coding

errors.• Cost of this type of maintenance is must not greater

that preventive maintenance. • Is concern with fixing reported errors in the

software.

6

Page 7: 5 chap - MAINTENANCE

2. Adaptive maintenance

• Changing the s/f to new environment i.e.

changing h/w platform, operating system.

• Addition of new features, capabilities, up

gradations, new requirements, new problems.

• Isolation of system-dependent features.

7

Page 8: 5 chap - MAINTENANCE

3. Perfective maintenance

• Perfective maintenance involves implementing new functional or non-functional system requirements.

• Enhance the system by improving efficiency, reliability, functionality, or maintainability.

• Corrective and adaptive maintenance are reactive.

• Perfective maintenance, in contract, is proactive.• The idea is to fix the system before it breaks

8

Page 9: 5 chap - MAINTENANCE

4. Preventive maintenance

• The objective of preventive maintenance is to

anticipate problems and correct them before

they occur.

• System performance monitoring is an

important key to preventive maintenance.

9

Page 10: 5 chap - MAINTENANCE

5.2. Maintenance Cost

Software maintenance costs around 50% of total software life-cycle cost.

How to reduce maintenance cost:

• Maintenance management audit• Software system audit• Software modification

10

Page 11: 5 chap - MAINTENANCE

Maintenance management audit

• This evaluates the quality of maintenance effort .

• Follow-up of all requests of maintenance.• Total hours worked are spent on error

corrections, addition/changes/deletions, and improvements.

• Organization must have a well-defined maintenance reduction program.

11

Page 12: 5 chap - MAINTENANCE

Software system audit

1. Overall view of the system documents and an assessment of the quality of data files and data bases and system maintainability, reliability and efficiency.

2. Determination of functionality and assignment of preliminary ranking value.

3. Detail program audit – ranking value, mean time between failure(MTBF), size of the maintenance backlog. This determines system availability to users.

12

Page 13: 5 chap - MAINTENANCE

Software modification

1. Program rewrites , which includes logic simplification, documentation updates, error correction.

2. System level updates, which includes system level documentations, up to date DFDs or system flowcharts, cross- references programs.

3. Reaudit of low-ranking programs to make sure that the errors have been corrected.

13

Page 14: 5 chap - MAINTENANCE

5.3. Reverse Engineering

• Process of creating specifications that describe the action

of existing applications.

• Reverse engineering can also be performed to recreate the

information describing the intent of existing systems.

• Reverse engineering is an important concept that fits with

evolution of information systems.

14

Page 15: 5 chap - MAINTENANCE

5.3. What is Reverse Engineering ?

Forward Engineering

Requirements

Design

Source Code

Behavior 15

Page 16: 5 chap - MAINTENANCE

5.3. What is Reverse Engineering ?

Forward Engineering Reverse Engineering

Requirements

Design

Source Code

Behavior 16

Page 17: 5 chap - MAINTENANCE

5.3. What is Reverse Engineering?

1. A systematic methodology for analyzing the design of an

existing device or system, either as an approach to study

the design or as a prerequisite for re-design.

2. Is the process of analysing a subject system to identify the

system’s components and their interrelationships and

create representations of the system in another form or at

a higher level of abstraction.

— Chikofsky & Cross, 199017

Page 18: 5 chap - MAINTENANCE

3. Analysing software with a view to understanding its design

and specification

4. May be part of a re-engineering process but may also be

used to re-specify a system for re-implementation

5. Builds a program data base and generates information

from this

6. Program understanding tools (browsers, cross-reference

generators, etc.) may be used in this process

7. To derive design information at the highest level possible

5.3. What is Reverse Engineering?

18

Page 19: 5 chap - MAINTENANCE

Software Reengineering Process

Reverseengineering

Programdocumentation

Datareengineering

Original data

Programstructure

improvement

Programmodularisation

Structuredprogram

Reengineereddata

ModularisedprogramOriginal

program

Source codetranslation

19

Page 20: 5 chap - MAINTENANCE

The Reverse Engineering Process

Data stucturediagrams

Program stucturediagrams

Traceabilitymatrices

Documentgeneration

Systeminformation

store

Automatedanalysis

Manualannotation

System to bere-engineered

20

Page 21: 5 chap - MAINTENANCE

The Reverse Engineering Process

1. Collect Information

2. Examine Information

3. Extract the Structure

4. Record Functionality

5. Record Data-flow

6. Record Control-flow

21

Page 22: 5 chap - MAINTENANCE

5.3. What is Reverse Engineering?

Abstraction System

Old system New System

Forward EngineeringRe-Implementation

Reverse Engineering Abstraction

22

Page 23: 5 chap - MAINTENANCE

5.3. What is Reverse Engineering?

• RE encompasses any activity that is done to determine how a product works, to learn the ideas and technology that were used in developing that product.

• RE can be done at many levels

• RE generally belongs to Software Maintenance

23

Page 24: 5 chap - MAINTENANCE

5.3. Difference - Reverse Engineering & Reengineering

• Reverse engineering is the general process of analyzing a

technology specifically to ascertain how it was designed or how

it operates. This kind of inquiry engages individuals in a

constructive learning process about the operation of systems

and products.

•  Reverse engineering as a method is not confined to any

particular purpose, but is often an important part of the scientific

method and technological development.

• Reverse-engineering is taking apart a finished product for the

purposes of learning how it works.24

Page 25: 5 chap - MAINTENANCE

5.3. Difference - Reverse Engineering & Reengineering

• Re-engineering is the bridge used by legacy software to

migrate to an organization’s new maintenance

environment.

•  Less formally, Re-engineering is the modification of a

software system that takes place after it has been reverse

engineered, generally to add new functionality, or to

correct errors.

•  Re-engineering is simply a new re-implementation of a

product with better engineering. 25

Page 26: 5 chap - MAINTENANCE

5.3. Difference - Reverse Engineering & Reengineering

• Reverse engineering is to take a bridge

apart (separately) to see how it was built.

•  Re-engineering is to throw a bridge away

and rebuild it from scratch.

26

Page 27: 5 chap - MAINTENANCE

5.3. Why do we need RE ?

• Recovery of lost information

– providing proper system documentation

• Assisting with maintenance

– identification of side effects and anomalies

• Migration to another hw/sw platform

• Facilitating software reuse

27

Page 28: 5 chap - MAINTENANCE

5.3. Why do we need RE ?

• Benefits– maintenance cost savings– quality improvements– competitive advantages– software reuse facilitation

28

Page 29: 5 chap - MAINTENANCE

• program understanding

Problem/Applicationdomain

Program/Implemen.domain

Mapping

Scope and Task of Reverse Engineering

29

Page 30: 5 chap - MAINTENANCE

Scope and Task of Reverse Engineering

• Redocumentation and/or document generation

• Recovery of design approach and design details at any level of abstraction

• Identifying reusable components and components that need restructuring

• Recovering business rules• Understanding high-level system description.

30

Page 31: 5 chap - MAINTENANCE

Levels of abstractions• Application

– Application concepts, business rule, policies

• Function– Logical and functional specification, non-functional

requirement

• Structure– Data and control flow, dependency graphs– Structure and subsystem charts– Architectures

• Implementation– Symbol tables, source text

31

Page 32: 5 chap - MAINTENANCE

5.3. Reverse Engineering

•Reverse engineering is required because of

•To understand data

•To understand processing

•To modify user interface

32

Page 33: 5 chap - MAINTENANCE

5.3. Reverse Engineering

Processes of Reverse Engineering:

1. Abstraction level

2. Completeness

3. Directionality

33

Page 34: 5 chap - MAINTENANCE

5.4. Introduction to legacy systems

• Legacy systems are considered to be potentially problematic by many

software engineers for several reasons.

• These systems can be hard to maintain, improve, and expand because

there is a general lack of understanding of the system .

• A legacy system is an antiquated (OLD FACHIONED) computer system

or application program which continues to be used because the user

(typically an organization) does not want to replace or redesign it.

34

Page 35: 5 chap - MAINTENANCE

5.4. Introduction to legacy systems

• An old method, technology, computer system, or application

program.

• Continues to be used, typically because it still functions for

the users' needs, even though newer technology or more

efficient methods of performing a task are now available .• Older software systems that remain vital to an organisation.

35

Page 36: 5 chap - MAINTENANCE

5.4. Introduction to legacy systems

• These systems are often hard to maintain, improve, and expand

because there is a general lack of understanding of the system;

• The designers of the system have left the organization, so there is

no one left to explain how it works.

• Lack of understanding can be exacerbated by inadequate

documentation, or manuals getting lost over the years.

• Integration with newer systems may also be difficult because new

software may use completely different technologies.

36

Page 37: 5 chap - MAINTENANCE

5.4. Introduction to legacy systemsDespite these problems, organizations can have compelling reasons for keeping a legacy system, such as:1. The costs of redesigning the system are prohibitive because it is

large, monolithic, and/or complex.2. The system requires close to 100% availability, so it cannot be

taken out of service, and the cost of designing a new system with a similar availability level are high.

3. The way the system works is not well understood. Such a situation can occur when the designers of the system have left the organization, and the system has either not been fully documented or such documentation has been lost over the years.

4. The user expects that the system can easily be replaced when this becomes necessary.

5. The system works satisfactorily, and the owner sees no reason for changing it.

37

Page 38: 5 chap - MAINTENANCE

5.5. Role of documentation in maintenance and types of documentation.

• It is one of the oldest recommended practices and yet has been, and continues to be, renowned for its absence.

• Software maintenance is traditionally defined as any modification made on a software system after its delivery.

• predominant activity in software engineering

38

Page 39: 5 chap - MAINTENANCE

5.5. TYPES OF DOCUMENTATION

• Types of documentation include:

• Requirements • Architecture/Design • Technical • End User

• Marketing

39