Configuration Management: Software Maintenance and

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Software Engineering - 16

Quality Assurance and


Management
SCM procedures for managing change
7. Methods for maintaining SQA related records Software Maintenance and
8.

The
that the
Organizational roles and
responsibilities www

SQA plan is a document aimed to give confidence to


developers
specified requirements will be met and final product will be a
and customers
quality product
8 Configuration Management
Review Question
1. Give the template for SQA Plan. Syllabus
Reverse engineering, Forward engmeering, The SCM
Types of software maintenance, Re-engineering,
process, ldentification of objects
in the soffware configuration, Version control and change control

O00 Contents
. . Summer-2018, Marks 7
8.1 Software Maintenance
. Summer-2016,
8.2 Re-Engineering
... Winter-2017, 2018, Marks 7
8.3 Reverse Engineening Summer-2013, 2018, 2019,
. Winter-2017,2018,ra*Marks 7
Marks 4
Summer-2019, Winter-2019,
8.4 Forward Engineering
8.5 Introduction to Sotware Configuration Management (SCM)
Marks 7
Summer-2016, Winter-2018,
Marks 7
8.6 Software Configuration tems..
.
..Winter-2011,
Summer-2013, 2018, 2019,
8.7 SCM Process
MaKS
Winter-2019,

TECHNICAL PUBLICATIONS 8-1)


An up thrust
for knowledge
Software Engineening
8-2 Software Maintenance and
Configuretion Management Software Engineering 8-3 Software Maintenance and Configuration Management
8.1 Software Maintenance
GTU: Summer-2018, Marks 7
Software maintenance 2. Adaptive maintenance Means maintenance for adapting the change in
is
put into use.
an
activity in which
program is modified after it has environment (different computers or different operating systems).
been
I n software 3.Perfective maintenance Means modifying or enhancing the system to meet the
maintenance usually it is not
changes to system's architecture. preferred to
apply major software new requirements.
Maintenance is a process in which 4. Preventive maintenance Means changes made to improve future maintairnability.
the existing changes are
implemented by either
system's architecture or by adding new modifying
components to the
system. Review Question
8.1.1 Need for Maintenance
1. Explain software maintenance. GTU Summer-2018. Marks 7
The software maintenance
is essential because of following reasorns:
1.
Usually the system requirements are 8.2 Re-Engineering GTU: Summer-2016. Winter 2017. 2018. Marks 7

some changes are changing and to meet these


requirements
incorporated in the system. Software re-engineering means re-structuring re-writing part or all of the software
2. There is a
strong relationship between system and its environment. When engineering system.
is installed in an
environment, it
changes system
that environment. This
a
The software re-engineering is needed for the applications which require frequent
changes the
system requirements. ultimately maintenance.
3. The maintained
system remains useful in their workingg
.Maintenance is applicable to software environment. Advantages of software re-englneering
model. The system developed using software life cycle allows the eliminate certain
changes and hence maintenance must any developer to
1.Reduced risk The re-engineering
be constraints on the system. This helps in reducing the risks of failures
to: performed in order
a) Correct faults. less than the costs
2. Reduced cost The cost of re-engineering is often sigrnificantly
b) Improve the
design. of developing new software.
c) Implement enhancement.
Re-engineering process activities
d) Interface with other
systems.
e) Adoption of environment Source
(different hardware, software, program
Migrate legacy software. system features etc.)
g) Source Reverse Program Modularized Oniginal data
Replacement of old software by new software. code translation engineenng documentation program
I n software maintenance
report four
i) Maintaining control over the key
characteristics should be mentioned.
software's day to day functions.
i) Maintaining control over software modification. Data
ii) Reparing of functions. Program
Re-engineering
iv) Performance Program modulanzation
degradation should be avoided. structure
improvement
8.1.2 Types of Software Maintenance
Various types of software Re-engineered
maintenance are Structured oatd

1. Corrective program
maintenance Means the maintenance for
correcting the software faults.
8.2.1 Re-engineering process
activites

TECHNICAL Fig.
PUBLICATIONS An up thrust
for knowledge for knowiedge
n up thrust
TECHNICAL PUBLICATIONS
Software Engineering 8-4 Software Engineering 8-5 Software Maintenance and Configuration Management
Software Maintenance and
Coniguration Management
Source code translation: In this Reverse Engineering Process
phase the code is converted to
8.3.1
Reverse engineering: Under this
activity the program is
a new
language. Initially the dirty source code or unstructured source code is taken and processed and
thoroughly. analysed and understood the code is restructured. After restructuring process the source code becomes clean. The
Program structure improvement: Restructure core to reverse engineering is an activity called extract abstractions.
automatically for understandability.
Program modularization: The program structure is reorganized. In extract abstraction activity, the engineer must evaluate older programs and extract
Data re-engineering: Finally clean-up information about procedures, interfaces, data structures or databases used.
and restructure
system data.
Review Questions
1. Dirty source code
Explain the software re-engineering activities.
2. Exrplain softroare re-engineering process model.
3. Write short notes GTU: Summer-2016, Marks 7 Restructure code
on
re-engineering. GTU: Winter-2017, 2018, Marks 3
8.3 Reverse Engineering Clean source code
Process
GTU: Summer-2013, 2018, 2019, Winter-2017,
Reverse engineering
2018, Marks 7 Extract abstractions Interface
is the
process of design recovery. In reverse
data, architectural and
procedural information is extracted from a sourceengineering
code.
the
Initial documentation Database
There three
are
important issues in reverse
engineering
1. Abstraction level : This level Refine and simplify
source code. It is
helps in obtaining the design information from the
expected that abstraction level should be
engineering. High abstraction level helps the software high in reverse Final specification
program. engineer to understand the
Flg. 8.3.1 Reverse engineering
2. Completeness level: The
completeness means detailing of abstract level. The The output of reverse engineering process is a clear, unambiguous final specification
completeness decreases as abstraction level increases.
obtained from unstructured source code. This final specification helps in easy
For example From -

given source code


a

procedural design representation. But it islisting


one can
easily develop complete a understanding of source code.
very difficult
diagrams or entity relationship diagram. The develop complete set of
data flow to
Reverse Engineering
Difference between Software Engineering and
engineering develops the interactivity. The term completeness in reverse
which the human is interactivity means the
integrated with automated toos to create effectivedegree
to Reverse engineering
St. No. Software engineering
engineering process. As the abstraction level increases the reverse
engineering IS a process in
which
increase to bring the
completeness. interactivity must 1. Software engineering is a discipline
which theories, methods and tools are
in Reverse
the dirty or unstructured code is taken,
3.
Directionality level Directionality means
:
applied to develop a professional processed and it is restructured

code and give


it to software
extracting the information from source software product.
engineer. The
directionality can be code is available
way. The one way one
way or two A dirty or unstructured

code and give it to software


directionality means
extracting all the information from
source
Initially only user requirements are
software engineering initially.
available for
engineer. The
information taken from source code is fed two way
directionality means the process.
to a the
restrcture or
regenerate old
programs.
re-engineering tool that attempts to This process starts by
understanding user This process starts
existing unstructured code.
by understandirng
3.
requirements.

An up thrust for knowledge


TECHNICAL PUBLICATIONS An up thrust TECHNICAL PUBLICATIONS
for knowledge
Software Engineening9
8-6 Software Maintenance and Sofnware Engineering 8-7 Software Maintenance and Configuration
Configuration Management Manegement
The software engineering is conducted
using, requirement The reverse 3 The database functionalities are handed over to servers
design, gathering, analysis, engineering
using restructuring conductedis
implementation and testing. the code,
cleaning it,
by extracting the abstractions.
4. The responsibility of some
specialized functionality can also be handled by
refinement and After Servers.
final code gets simnplification of the code
t
ready. 5. New communication
is
simple and
straightforward It is
techniques are incorporated in the architecture.
approach. complex because cleaning the 6. New
or
unstructured code
requires
dirty security mechanisms are also established both at client and server side.
efforts. more
.The forward
Documentation or specification engineering for mainframe to client server architecture requires both
product is useful to the end-user of the Documentation or speification business and software re-engineering activities.
of the
product is useful to the The database transactions and
developer queries are handled by server applications. At the
Review Questions same time these transactions must be controlled within the context of business
rules.
1. Write short note on: Reverse engineering That means, make sure that these transactions are executed in consistent
2. Write short notes on reverse
GTU: Summer-2013, Marks 7 such that all updates are performed by authorized users.
manner

engimeering
GTU: Winter-2017, 2018, Summer-2019, During forward engineering, there exists a business layer present at both client
3.
Explain the
following term in brief 1) Marks 4 and server. The task of this layer is to control and coordinate the tasks of
Re-Engineering,
-

2) Reverse
Engineering. transactions and query The communication
handling among desktop applications
GTU: Summer-2018, Marks 4 is controlled by business rules layer.
8.4 Forward Engineering There is client applications layer which implements the business functions that
GTU: Summer-2019, Winter-2019, Marks 4 are required by specific group of end users.
If the
poorly designed and implemented code is to be
alternatives can be adopted modified then
following 8.4.2 Forward Engineering for Object Oriented Architectures
1. Make lot of
modifications to implement the
2. Understand inner necessary changes. Forward engineering is a process of re-engineering conventional software into the
workings of the program in order to make the
object oriented implementation.
modifications. necessary Following are the steps that can be applied for forward engineering the
3.
Redesign, recode and
small modules of software that
test conventional software
4.
Completely redesign, recode and test the entire program require modifications. 1. Existing software is reverse engineered in order to create data, functional, and
behavioral models.
Definition: Forward using re-engineering tool.
engineering is a process that makes use of software 2. f existing system extends the functionality of original application then use
principles, concepts and methods to recreate an engineering cases can be created.
re-developed program extends the capabilities of old existing application. This
programs. 3. The data models created in this process are used to create the base for classes.
8.4.1 Forward Engineering for Client Server 4. Class Hierarchies, object-relationship models, object
behavioral models, and
Architectures subsystems are defined.
During re-engineering process, many mainframe this forward engineering process, algorithms
and data structures are

accommodate applications During


the client server architecture.
are
modified to reused from existing conventional application.
.Following are the features of this Reverse Engineering
application functionalityre-engineering
1. The process Difference between Forward and
for specific purpose.
is transferred to of constructing a system
each client Forward engineering is a process
centralized resources. computer from a system in order to extend the
2. Reverse engineering is a process of de-constructing
The new GUI the working of the system.
are
developed for each client
workstation. functionalities or in order to
understand

TECHNICAL PUBLICATIONS An up thrust An up thrust for knowledge


for knowledge TECHNICAL
PUBLICATIONS-
Software Engineering 9
8-8 Software Maintenance and Sofware Engineering Sofware Maintenance and Configuration Management
Configuration Management
Review Questions Documents describing the programs
1.
Diference between reverse
engineering and foruard engineering.
- Technical manual

2. Write short note


GTU Summer-2019, Marks 4 Users manual
on - Forward Engineering GTU Winter-2019, Data
Marks 4
8.5 Introduction to Software Configuration Management (SCM) Program components or functions
GTU: Summer-2016, Winter-2018, Marks 7 External data
Definition : Software
configuration management is a set of activities carried for
- File structure

identifying organizing and controlling changes throughout the


out
For each type of item, there may be a large number of different individual items
software. lifecycle of computer
produced. For instance there may be many documents fora software specification such
During the
development of software change must be as project plan, quality plan, test plan, design documents, programs,
test reports, review
order to improve quality and reduce error. managed and controlled in
reports.

8.5.1 Need for SCM These SCI or items will be produced during the project, stored, retrieved, changed,
stored again, and so on.
The software specification
configuration management is concerned with
the managing Each configuration item must have a unique name, and a description or

the evolving software. If the changes are not controlled at all then this changes in
stream of which distinguishes it from other items of the same type.
uncontrolled change can cause the
well-running software project into chaos. Hence it is
essential to perform following activities Review Question
i) Identify these changes What is meant by softuare configuration
1. What do you mean by software configuration?
i) Control the changes
management?
GTU Winter 2011. Marks 7
ii) Ensure that the changes are properly
implemented and
8.7 SCM Process GTU Summer-2013, 2018, 2019. Winter-2019. Marks 7
iv) Report these changes to others.
The software (SCM) are -

configuration management may be Software Configuration Management process


seen as part of quality management The primary objectives of software
process.
ldentification : the items that define the
ldentify
1. Configuration
Review Questions configuration.
2. Change Control: Manage
changes to one
or more items.
1. Explain software configuration management. of the application.
GTU
'

Summer-2016, Marks create different versions


Facilitate to
2. Discuss softrware configuration management in detail. 3. Version Control: of the software is
GTU : Winter-2018, Marks 7
Authentication : To ensure that the quality
4. Configuration the time.
evolves over
8.6 Software Configuration tems GTU: Winter-2011. Marks 7 maintained as the configuration
the software team must
such a way that
must be developed in
A Software Configuration Item (SCI) is information that is created as part of the softrware
The SCM process
of questions
the following set configuration
items?
engineering process. answer
team identify thesoftware and
the software before
1. How does
software
in the
Examples of Software Configuration Items are control the changes
software team
2. How does the
Computer programs after delivering
it to the customer?
Source programs
Executable programs
An up
thrust for knowledge
PUBLICATIONS
TECHNICAL

TECHNICAL PUBLICATIONS An up thrust


for knowledge
Software Engineering
8- 10
Software Maintenance and Sofhtware Engineering 8-11 Software Maintenance and Configuration Mansgement
Configuration Management
3 How does the software team 8.7.2 Change Control
software package ? manage the versions of the
programs in the
4. How does team in any software Sometimes, introducing small changes
get ensured that the Changes projects are vital. in
5. Who is
changes are made properly ? he system may lead to big problems in product. Stmilarly, introducing some changes
responsible for approving the changes in the software? may enhance the capabilities of the system. According to James Bach too litle changes
The answers to these
questions lead the definition
are
Identification, change control, version control andof five tasks of SCM and those may create some problems and too big changes may create another problems
reporting. configuration audit and status For a large software engineering project, uncontrolled change creates lot of chaos. For

8.7.1 ldentification of Objects in Software managing such changes, human procedures or automated tools can be used.
The software
Configuration The change control process is shown by following Fig. 8.7.1. (See Fig 8.7.1 on next

object.
configuration items must be separately named and identified page.)
as
These Step 1 First of all there arises a need for the change.
objects must be arranged using object oriented
There are wo approach.
categories of objects basic objects and
-

Step 2 The change request is then submitted by the user

The basic aggregate objects.


object is unit of information created evaluate this request to assess technical merits, potential side
design, coding or testing. For example basic during requirements analysis, Step 3: Developers
on system functions and cost of the project.
object can be part of source code. effects, and overall impact
Aggregate object is collection of basic objects and other
a

example SRS or data model can be aggregate aggregate objects. For Step 4 A change report is then generated and presented to the Change Control

Each object can be


object. Authority (CCA).
uniquely identified because it has got who makes
1. Name: The
name of the Step 5: The change control authority is a person
or a group of people a

object is
characters(string) or some text. It is unique. nothing but
the collection of final decision on status or priority of the change.

is generated when the change gets


2. Description For describing the Step 6: An Engineering Change Order (EC0)
This
object, the object description can be given. In ECO the change is described,
the restrictions and criteria for review and
description contains document, program or some other approved.
project identifier or version information. description such as audit are mentioned.

database.
needs to be changed is checked out of the project
3. that
List of resources: The resources
are the entities that are used for Step 7: The object
accessing, the corresponding object and appropriate
SQA
referencing and processing of objects. The data types and
fhunctionalities can Step 8 The changes are then made
on

serve as a resource.
activities are then applied.
version
4. Realization the database and appropriate
identification: It is pointer to object.
or is then checked in to
Step 9 The changed object
The configuration object identification create new version.
can also consider control is made to
between the named objects. relationships that exist
checked out
mechanisms require two importantelements-
The checked in and
If a
change is made to one
configuration object it is Access control
configuration objects in the repository are affectedpossible
to determine which
other
by the change. Synchronization control to the software engineer to access

.Basically object evolve throughout the software process. gives the authority
mechanism control mechanism
The access control object. The
synchronization

object identification the evolution of


the During process of configuring different people
without

objects along with its process must be and modify the specific or the changes
made by two
identified. make parallel changes
allows to
work.
each other's
Major modifications in the object must be noted. overwriting
An up thrust forknowledge
PUBLICATIONS
TECHNICAL PUBLICATIONS An up thrust
TECHNICAL

for knowledge
Sonware Engineening 8- 12 Sofware Engineening 8- 13 Software Maintenance and Confiquration
Software Meintenance
and Confguration Management Management
8.7.3 Version Control
Need for change
Version is an instance of a which is
system functionally distinct in some way from
other system instances.
Change request
Version control works to help manage different versions of
during the development process.
configuration items

Evaluation of request
The configuration management allows a user to
specify the alternative configurations
of the software system by selecting
appropriate version.
Generation of change report Certain attributes are associated with each software version. These attributes are
useful in identifying the version. For example The attribute can be "date', 'creator,
Decision of CCA for 'customer, 'status'.
change
In practice the version needs an associated name for easy reference.
Different versions of a system can be shown by an evolution graph as
Denial of change request Each version of software system is
Change request accepted a collection of software configurationitems
and ECO generatedd

Intimate user about denial


Assign individuals to
configuration object

Check out configuration


objects
---O
Make changes, review them
Fig. 8.7.2 Version numbering in evolution graph
(212)
Check in the object 8.7.4 Configuration Audit
that have been changed

. I n order to ensure that the change has been properly implemented or not two

Perform SAA and activities are carried out.


testing
activities 1. Formal Technical Review (FTR)

2. Configuration Audit
Software
Promote changes in next is identified
the correctness of configuration object
I n Formal Technical Review,
release technical reviewer.
and corrected. It is conducted by
audit assess the configuration object for the
The software configuration
Rebuilt appropriate version formal technical review. It is conducted by
characteristics that are not reviewed in

group.
software quality assurance audit
during configuration
-

Distribute the new version that are asked


Following are some primary questions
Flg.8.7.1 Change control process conducted to assess the technical correctness?

1. Whether FTR is
made ?
ECO has been
2. Whether or not the change specified by
PUBLICATIONS
An up thnust forknowledge
TECHNICAL PUBLICATIONS -
An up thrust for
TECHNICAL

knowledge
Software Engineering 8- 14
Sotware Maintenence and
Configuration Management
3. If additional changes need to be made or not ?
4. Whether the software
engineering standards are
properly followed ?
5. Do the attributes of
6.

7.
Whether all the
Whether the SCM
configuration objects reflect
SCI are updated

configuration audit and status reporting)


properly ?
process(object identification, change
thechange?

and version
control,
9 DevOps
The above
are
properly followed ?
questions can be asked as a
part of formal technical review.
8.7.5 Status Reporting Syllabus
The status Product lifetime :
Independent product Vs. contimues,
reporting focuses on communication of changes to all architecture Improvement, Software as a service, Saas
organization that involve with changes. people in an

During status
reporting following type of questions were asked. Contents
1. What
happened ?: What are the changes that are 9.1 Overview
2. Who did it ?: Who will be
required ?
handling these changes ? 9.2 Problem Case Definition
3. When did it
happen The time at which these changes are arised.
?: 9.3 Benefts of Fixing
Application Development Challenges
4. What else will be affected ?: 9.4
The objects or
part of the software Devops Adoption Approach through Assessment
reflected due to these that might be
changes. 9.5 Solution Dimensions

Review Questions 9.6 What is DevOps?


9.7 DevOps Importance and Benefits
1.
Define softrware configuration management.
control management.
Explain change control
management and version 9.8 DevOps Principles and Practices
Explain software 9.9 The 7 Cs of DevOpsLifecycle for Business Agiity
configuration management and change control management in detail.
Explain "How to
manage the different versions that get 9.10 DevOps and Continuous
created and how
to maintain the
Testing
code under
changing conditions?". quality of 9.11 How to Choose Right
GTU: Summer-2013, Marks 7 DevOps Tools
4 Explain version and change control 9.12 Challenges with DevOps Implementation
management.
GTU : Summer-2018, 2019, Winter-2019, Marks 4 9.13 Must Do Things for DevOps
5. Explain SCM process in details.
GTU: Summer-2019, Marks 7 9.14 Mapping My App to DevOps
9.15 Assessment, Definition, Implementation, Measure and Feedback

O00

TECHNICAL PUBLICATIONS An up thrust


for knowledge (9-1)

You might also like