0% found this document useful (0 votes)
71 views15 pages

Unit-8: Software Configuration Management

The document discusses software configuration management. It defines SCM and its purpose of systematically controlling changes to a software configuration throughout the software lifecycle. The SCM process has four primary objectives: 1) identify all items that define the software configuration, 2) manage changes to these items, 3) facilitate construction of different versions, and 4) ensure software quality is maintained as the configuration evolves. The SCM process involves identification, version control, and change control tasks.

Uploaded by

Naman drive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views15 pages

Unit-8: Software Configuration Management

The document discusses software configuration management. It defines SCM and its purpose of systematically controlling changes to a software configuration throughout the software lifecycle. The SCM process has four primary objectives: 1) identify all items that define the software configuration, 2) manage changes to these items, 3) facilitate construction of different versions, and 4) ensure software quality is maintained as the configuration evolves. The SCM process involves identification, version control, and change control tasks.

Uploaded by

Naman drive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Software Engineering (21CS05203)

Unit-8
Software Configuration
Management

Prof. Rajkumar Gondaliya


Computer Engineering Department
Darshan University, Rajkot
[email protected]
+91-9723232741
 Outline
Looping
 Types of Software Maintenance
 Re-Engineering
 Reverse Engineering
 Forward Engineering
 The SCM Process
 Identification of Objects in the Software Configuration
 Version Control and Change Control
Types of Software Maintenance In a software lifetime, type of maintenance may vary based on its nature

 It may be just a routine maintenance tasks as some bug discovered by some user or it may be
a large event in itself based on maintenance size or nature
 Following are some types of maintenance based on their characteristics
Corrective Maintenance Adaptive Maintenance Perfective Maintenance Preventive Maintenance

Corrective Maintenance
 This includes modifications done in order to fix problems
 Corrective maintenance deals with the repair of defects found in day-to-day system
functions
Adaptive Maintenance
 This includes modifications applied to keep the software product up-to-date
 Adaptive maintenance is the implementation of changes in a part of the system, which has
been affected by a change that occurred in some other part of the system

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 3
Types of Software Maintenance Cont.
Perfective Maintenance
 This includes modifications done in order to keep the software usable over long
period of time
 It includes new features, new user requirements for refining the software and
improve its reliability and performance.
 This includes changing the functionalities of as per the user’s changing needs
Preventive Maintenance
 Modifications to prevent future problems of software
 It aims to attend problems, which are not significant at this moment but may cause
serious issues in future
 It comprises documentation updating, code optimization and code restructuring.

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 4
Re-Engineering
 When we need to update the software to keep it Forward Engineering
to the current market, without impacting its
functionality, it is called software re-
engineering
 It is a process where the design of software is
changed and programs are re-written
 Legacy software cannot keep tuning with the
latest technology available in the market
 For example, initially UNIX was developed in
assembly language. When language C came into
existence, UNIX was re-engineered in C, because
working in assembly language was difficult.
 Other than this, sometimes programmers notice
that few parts of software need more Reverse Engineering
maintenance than others and they also need re-
engineering
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 5
Re-Engineering Cont. Reverse
Engineering
Obtain
 Decide what to re-engineer.
specifications
 Is it whole software or a part of it?
of existing
 Perform Reverse Engineering, in order to obtain software
specifications of existing software
 Restructure Program if required
Program
Restructuring
 For example, changing function-oriented programs Change
into object-oriented programs and re-structure data program
as required
and/or data
 Apply Forward engineering concepts in order to structure
get re-engineered software
Forward
Engineering
Get re-
engineered
software
developed
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 6
Reverse Engineering Reverse engineering can
extract design
 The abstraction level of a reverse information from source
engineering process refers to the code
sophistication of the design information that
 As the abstraction level increases,
can be extracted from source code
information will allow easier
 Ideally, the abstraction level should be as understanding of the program
high as possible
 Interactivity refers to the degree to which
 The reverse engineering process should be the human is “integrated” with automated
capable of tools to create an effective reverse
 Deriving procedural design representations (a engineering process
low-level abstraction)
 Program and data structure information (a  In most cases, as the abstraction level
somewhat higher level of abstraction) increases, interactivity must increase
 Object models, data flow models (a relatively  The directionality of the reverse
high level of abstraction) engineering process is one-way, all
 Entity relationship models (a high level of
information extracted from the source
abstraction).
code is provided to the software engineer
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 7
Forward engineering
 Forward engineering is a process of obtaining desired software from the specifications, which
were brought by reverse engineering
 Forward engineering is same as software engineering process with only one difference it is
carried out always after reverse engineering
 In most cases, forward engineering does not simply create a modern equivalent of an older
program
 Rather, new user and technology requirements are integrated into the reengineering effort
 The redeveloped program extends the capabilities of the older application

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 8
Software Configuration Management
The SCM (Software Configuration Management) is a set of Layers of SCM Process
activities that have been developed to manage change
throughout the software life cycle

Purpose:
Systematically control changes to the configuration and maintain
the integrity and traceability of the configuration throughout the
system’s life cycle

Four primary objectives


• To identify all items that collectively define the software
configuration
• To manage changes to one or more of these items
• To facilitate the construction of different versions of an
application
• To ensure that software quality is maintained as the
Configuration evolves over time
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 9
The SCM Process Identification Task
 Referring to the figure, SCM tasks can viewed as  Identification separately names each
concentric layers SCI and then organizes it in the SCM
 SCIs (Software Configuration Item) flow outward repository using an object-oriented
approach
through these layers throughout their useful life
 Objects start out as basic objects
 As an SCI moves through a layer, the actions implied
and are then grouped into aggregate
by each SCM task may or may not be applicable
objects.
 For example, when a new SCI is created, it must be
identified.  Each object has a set of distinct
 However, if no changes are requested for the SCI, the features that identify it.
change control layer does not apply  A name that is unambiguous to all
 The SCI is assigned to a specific version of the other objects
software (version control mechanisms come into  A description that contains the SCI
type, a project identifier, and change
play) and/or version information
 A record of the SCI (its name, creation date, version,  List of resources needed by the object
etc.) is maintained for configuration auditing  The object realization (i.e., the
purposes document, the file, the model, etc.)
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 10
Change Control Cont.
 Change control is a procedural activity that ensures quality and consistency as changes are
made to a configuration object
 A change request is submitted to a configuration control authority, which is usually a change
control board (CCB).
 The request is evaluated for technical merit, potential side effects, overall impact on other configuration
objects and system functions, and projected cost in terms of money, time and resources
 An engineering change order (ECO) is issued for each approved change request
 Describes the change to be made, the constraints to follow and the criteria for review and audit
 The Base lined SCI is obtained from the SCM repository
 Access control governs which software engineers have the authority to access and modify a particular
configuration object
 Synchronization control helps to ensure that parallel changes performed by two different people don't
overwrite one another.

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 11
Version Control
Version control is a set of procedures and tools for managing the creation and use of multiple
occurrences of objects in the SCM repository
 Version Control Capabilities
 An SCM repository that stores all relevant configuration objects
 A version management capability that stores all versions of a configuration object
 A make facility that enables the software engineer to collect all relevant configuration objects and
construct a specific version of the software
 Issues or bug tracking capability that enables the team to record and track the status of all outstanding
issues associated with each configuration object
 The SCM repository maintains a change set
 Serves as a collection of all changes made to a baseline configuration
 Used to create a specific version of the software
 Captures all changes to all files in the configuration along with the reason for changes and details of who
made the changes and when

Few version
control systems
#21CS05203 (SE)  Unit 8 - Software Configuration
Prof. Rajkumar B. Gondaliya 12
Configuration Audit
 Configuration auditing is an SQA activity that helps to ensure that quality is maintained as
changes are made.
 It complements the formal technical review and is conducted by the SQA group
 It addresses the following questions
 Has a formal technical review been conducted to assess technical correctness?
 Has the software process been followed and have software engineering standards been properly applied?
 Has the change been "highlighted" and "documented" in the SCI? Have the change data and change author
been specified? Do the attributes of the configuration object reflect the change?
 Have SCM procedures for noting the change, recording it and reporting it been followed?
 Have all related SCIs been properly updated?
 A configuration audit ensures that
 The correct SCIs (by version) have been incorporated into a specific build
 That all documentation is up-to-date and consistent with the version that has been built

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 13
Status Reporting
 Configuration status reporting (CSR) is also called status accounting
 Provides information about each change to those personnel in an organization with a need to
know
 Answers what happened, who did it, when did it happen and what else will be affected?
 Sources of entries for configuration status reporting
 Each time a SCI is assigned new or updated information
 Each time a configuration audit is conducted
 The configuration status report
 Placed in an on-line database or on a website for software developers and maintainers to read
 Given to management and practitioners to keep them appraised of important changes to the project SCIs

#21CS05203 (SE)  Unit 8 - Software Configuration


Prof. Rajkumar B. Gondaliya 14
Software Engineering (21CS05203)

Thank
You

Prof. Rajkumar Gondaliya


Computer Engineering Department
Darshan University, Rajkot
[email protected]
+91-9723232741

You might also like