Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Need and Types of Maintenance, Study notes of Software Engineering

Involves software maintenance and associated topics like the needs and types.

Typology: Study notes

2022/2023

Uploaded on 11/19/2023

leandra-woods
leandra-woods 🇮🇳

1 document

1 / 85

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
UNIT -V
5
Software Maintenance
and Software Project Measurement
5.1:Need and Types of Maintenance
Q.1 What is software maintenance?
Ans.:
Maintenance is aprocess in
which changes are implemented by either modifying
the existing system's architecture or by
adding new components to the system.
Q.2 Explain the need for software
maintenance Ans.The software maintenance is
essential because of following reasons:
1. Usually the system requirements are
changing and to meet these requirements some
changes are incorporated in the system.
2. There is astrong relationship between system and its
environment.When asystem is installed in an
environment, it changes that environment.This ultimately
changes the system requirements.
3. The maintained system remains useful in their
working environment.
Maintenance is applicable to software developed
using any software life cycle model.The system.
changes and hence maintenance must be performed
in order to:
a) Correct faults.
b)Improve the design.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55

Partial preview of the text

Download Software Need and Types of Maintenance and more Study notes Software Engineering in PDF only on Docsity!

UNIT - V

Software Maintenance

and Software Project Measurement

5.1 : Need and Types of Maintenance

Q.1 What is software maintenance?

Ans. :

Maintenance is a process in

which changes are implemented by either modifying

the existing system's architecture or by adding new components to the system.

Q.2 Explain the need for software

maintenance Ans. The software maintenance is essential because of following reasons:

1. Usually the system requirements are

changing and to meet these requirements some

changes are incorporated in the system.

2. There is a strong relationship between system and its

environment. When a system is installed in an

environment, it changes that environment. This ultimately

changes the system requirements.

  1. The maintained system remains useful in their working environment.
  • Maintenance is applicable to software developed

using any software life cycle model. The system.

changes and hence maintenance must be performed

in order to: a) Correct faults.

b ) Improve the design.

c) Implement enhancement.

d) Interface with other systems.

e) Adoption of environment (different hardware,

software, system features

etc.).

1) Migrate legacy software. g ) Replacement of old software by new software. These are the factors that makes cost high.

Q3 What are

maintenance? different

types of software

Ans. :

1. Corrective maintenance Means the maintenance

for correcting the software

faults.

2. Adaptive maintenance - Means maintenance for

adapting the change in environment (different

computers or different operating systems).

  1. Perfective maintenance

enhancing the system

requirements.

Means modifying or

meet the new

  1. Preventive maintenance Means changes made

to improve future maintainability.

Q.4 What is software maintenance? Differentiate between perfective maintenance and preventive maintenance [RGPV: June.-10, Marks 10 ]

Ans. The software maintenance process can be

as shown Fig. Q.5.1.

  1. Change Request - In the maintenance process

initially the request for change is

made.

5- Software Maintenance & Software Project Measurement iv) Hardware changes

v) Data conversion should be described.

Q.6 Explain various problems that may arise

  1. Change management - In this phase the status of during software maintenance process

all the change requests is identified,

described.

·

3. Impact analysis performed in this phase. Following activities Ans. :

1. Changes in the software are

i) Identify all systems and system

products

affected by a change request. ii ) Make an estimate of the resources needed to effect the change. iii) Analyze the benefits of the change.

4. System release planning In this phase

the schedule and contents of software release is planned. The

changes can be made to all types of software maintenance.

5. Change implementation - The

implementation of changes can be done by first

designing the changes, then coding for these changes and

finally testing the changes. Preferably the

regression testing must be performed while

testing the changes.

  1. System release - During the software

release i) Documentation ii) Software iii )

Training

are not well

documented. Hence it

becomes difficult to trace the

evolution of software through many versions or releases.

  1. Sometimes it becomes difficult to trace the

process through which the software was

created 3. While maintaining the software it is difficult to understand someone else's program.

4. Most of the software is not designed for at

change. In other words the change in the software

is not at all possible and needs to redesign it.

The software posses unstructured code.

Maintenance programmers have insufficient

knowledge of the system or problem

domain.

Appropriate documentation does not

TECHNICAL PUBLICATIONS " - An up thrust for knowledge DECODE

Software

Engineering

What 0. 5.2: Software Configuratio n are

Management

(SCM)

the objectives and features upported by software configuration management? [ RGPV: June-16, Marks 3] Ans: The software

configuration management is concerned with managing the changes in the

evolving

software.

If the changes are not controlled at all then this stream of uncontrolled change can cause the well-running

software project into

chaos.

Hence it is essential to i) Identify these changes ii ) Control the

changes iii) Ensure that

the changes are

properly implemented and iv) Report these

that begin when a software

development project begins and

terminates when the software is taken

out of operation. Q.9 What is SCM? Explain the concept of baseline and SCM items in brief. [RGPV May-18, Marks 7] Ans.: SCM : Refer Q.

BaseLine: The IEEE (IEEE Std.

No. 610.12-1990)

defines a baseline as: "A specification or product that has been formally

reviewed and agreed upon , that

thereafter serves

TECHNICAL

PUBLICATIONS"- An up

thrust for knowledge

5-

Software Maintenance &

Software Project Measurement

as the basis for further development,

and that can be changed only

through formal change control

procedures".

A baseline is a milestone in the

development of software that is marked

by the delivery of one or more

software configuration items and the

approval of them is obtained through

formal technical review

The baseline is the shared project

database. It is an SCM task to

maintain the integrity of the set of

artifacts.

The elements of a design model have

been first documented and reviewed.

From this design model errors are identified and corrected. Once all parts of the model have been reviewed, corrected

and then approved, the design model

becomes a baseline.

  • Further changes to the program

architecture (which is actually

documented in the design model) can

be made only after each has been

evaluated and approved.

SCM Items : Examples of Software Configuration Items are

- Computer programs Source programs Executable programs

  • Documents describing the programs technical manual users manual
  • Data

Program components or

functions

External data File structure

e Change control is an essential step in lifecycle. The change control can be carried out using following steps

A change request initiates a change

  1. The configuration object is 'checked out' of the database.
  2. The changes are applied to the object 4. The object is then 'checked in' to the database where automatic version control is applied. 4. Configuration audit In order to ensure change has been properly implemented or not two activities are carried out
  3. Formal Technical Review
  4. Software Configuration Audit In the formal technical review, the correctness of configuration object identified and corrected. It is conducted by technical reviewer. The software configuration audit assesses the configuration object for the characteristics that are not

T TECHNICAL PUBLICATIONS ". An up

thrust for knowledge

5- Software Maintenance & Software Project Measurement reviewed in formal technical review. It is conducted by the Software Quality Assurance group.

5. Status reporting The status reporting focuses on communication of the

changes to all people in an

organization involved

with the changes. 5.4: Version Control , Change Control

and Reporting

Q.11 What are the problems encountered with uncontrolled change management?

[RGPV: June-17, Marks 2] Ans. Following problems are encountered with uncontrolled change management -

1) There might be the need to create support

processes for changes.

  1. The user need to be trained for the uncontrolled changes

3) The rollback plan must be prepared.

  1. Sometimes there is a need to make conversion of huge data. Q.12 What is version control in project? [RGPV: Dec.-15, Marks 2] OR Explain version control in detail Ans. Version is an instance of a system which is functionally distinct in some way from other system instances.

Version control works to help manage different

versions of configuration items during the development process.

The configuration management allows a user to

specify the alternative configurations of the software system by selecting appropriate version.

Certain attributes are associated with each software version. These attributes are useful in identifying the

version. For example: The attribute can be 'date',

' creator', 'customer', 'status'.

of developing mental models of a software systems

intended architecture , meaning, and behavior.

The purpose of program comprehension is to recover

high - level information about a system including: 1 ) Its structure interrelationships) (components and their

2) Its functionality (what operations are performed

on what components)

3) Its dynamic behavior (how input is transformed

to output) 5-

Software Maintenance & Software Project Measurement 4) Its rationale (how was the design

process and

what decisions have been taken )

5) Its construction, modules, documentation, and

test suites.

6) Program comprehension does not change the

subject system, nor create a new system. It is the

process of examining and understanding the object

system. 5.6 Re-engineering Q.14 What do you mean by the term software re- engineering? Why It is required? Ans. DS [ RGPV: June- 12 , Marks 10] Software re-engineering means re - structuring or re-writing part or all of the software engineering system. The software re-engineering is needed for the applications which require frequent maintenance. Advantages of software re-engineering

2.

The re-engineering allows the Reduced risk developer to eliminate certain constraints on the system. This helps in reducing the risks of failures. Reduced cost The cost of re-engineering is

often significantly less developing new software. than the costs of Source program Source code translation Reverse engineering Program documentation Modularized program Original data Program structure improvement Program modularization Data Re- engineering Structured program Re-engineered data Fig. Q.14.1 Re-engineering process activities TECHNICAL PUBLICATIONS "- An up thrust for knowledge DECODE Software

design recovery. In reverse engineering the data,

architectural and procedural information is extracted

from a source code.

The reverse engineering is required because using this

technique the dirty, ambiguous code can be converted to

clear and unambiguous specification. This specification help in understanding the source code. = Q.16 Write short note on Reverse engineering [RGPV: Dec.-18, Marks 7] Ans. Initially the dirty source code or unstructured source code is taken and processed and the code is restructured. After restructuring process the source code becomes clean. The core to reverse engineering is an activity called extract abstractions. In extract abstraction activity, the engineer must evaluate older programs and extract information about procedures, interfaces, data structures databases used. ог The output of reverse engineering process is a clear,

unambiguous final specification obtained from

unstructured source code. This final specification

helps in easy understanding of source code. Fig. Q.16.1 Reverse engineering advantages of reverse Q.17 What are the engineering process? [RGPV: June-15, 17, Marks 2 ] Ans. :

1 ) The dirty code or outdated technology can be

eliminated.

2) Improved version of the system can be created

using reverse engineering. 3 ) Documentation can be made available , once the old system gets reverse engineered. 4 ) It is cheaper than developing the system from

scratch. Q.18 What is the difference between forward engineering and reverse engineering? Ans. : Sr. Forward engineering No. Reverse engineering process in which the dirty or

unstructured code is

taken, processed and it is

restructured.

  1. Forward engineering is a Reverse engineering is a process in which theories, methods and tools are applied to develop a professional software product.
  2. Initially only user requirements are available for forward engineering process. A dirty or unstructured code is available initially. TECHNICAL PUBLICATIONS- An up thrust for knowledge DECODE

Software

Engineering