0% found this document useful (0 votes)
38 views26 pages

Maintenance and SCM... 6

The document discusses maintenance and configuration management. It defines the different types of software maintenance including corrective, adaptive, perfective, and maintenance maintenance. It also discusses configuration management tools, the purpose of configuration management including identifying, controlling, and reporting changes, and why configuration management is needed when multiple people are working on software concurrently.

Uploaded by

ar56481188
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)
38 views26 pages

Maintenance and SCM... 6

The document discusses maintenance and configuration management. It defines the different types of software maintenance including corrective, adaptive, perfective, and maintenance maintenance. It also discusses configuration management tools, the purpose of configuration management including identifying, controlling, and reporting changes, and why configuration management is needed when multiple people are working on software concurrently.

Uploaded by

ar56481188
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/ 26

Maintenance and Configuration Management

Maintenance
Software maintenance requires at least three kinds of knowledge:
• Domain knowledge: knowledge about the area of application of the
software (e.g. mobile applications, physics simulations, processing
large amounts of data, computer music, healthcare, medical
equipment, social, legal, improving software development, and more).
• Technology knowledge: knowledge about the various software tools,
languages, packages and technologies used in the software (e.g. iOS,
Android, PHP, Java, application-specific technologies, etc.).
• Code knowledge: knowledge about the actual code, documentation,
test cases and so on.
Types of Maintenance
• Corrective Maintenance-21%: Making changes to repair defects
• Adaptive Maintenance-25%: Making changes to adapt software to
external environment changes (Hardware, business rules, OS etc.)
• Perfective Maintenance-50%: Extending system beyond its functional
requirements
• Maintenance Maintenance-4%: Modifying work products so that they
are more easily corrected, adapted, or enhanced.
Introduction
• The software configuration management process (SCMP) identifies the
functional and physical attributes of software at critical points in time,
and implements procedures to control changes to an identified
attribute with the objective of maintaining software integrity and
traceability throughout the software life cycle.
• The set of activities that have been evolved to mange the change
throughout the SDLC.
• Configuration management is defined as the process of consistently
maintaining a product’s functionality and performance quality
throughout its shelf life by making timely reconfigurations to its internal
systems.
Configuration Management Tools
• Various solutions are available to aid in the software configuration
management procedure. The objective of these technologies is to
automate typically manual activities, enhancing precision, speed, and
command.
• CFEngine
• Otter
• Puppet
• CHEF Configuration Tool
• ConfigHub
• Salt e.g.
Purpose of CM
Systematically control changes to the configuration and maintain the
integrity and traceability of the configuration throughout the systems
life cycle.
• Identify change
• Control change
• Ensure change is properly implemented
• Report changes to all the people who need to know
Why do we need Configuration
management?
Why do we need Configuration
management?
• The primary reasons for Implementing Technical Software Configuration Management
System are:
• There are multiple people working on software which is continually updating
• It may be a case where multiple version, branches, authors are involved in a software
config project, and the team is geographically distributed and works concurrently
• Changes in user requirement, policy, budget, schedule need to be accommodated.
• Software should able to run on various machines and Operating Systems
• Helps to develop coordination among stakeholders
• SCM process is also beneficial to control the costs involved in making changes to a
system
• Any change in the software configuration Items will affect the final product. Therefore,
changes to configuration items need to be controlled and managed.
Tasks in SCM process
Tasks in SCM process are
• Configuration Identification
• Version Control
• Change Control
• Configuration Audits and Reviews
• Configuration Status Accounting
Identification
• Identifying the configuration items from products that compose baselines at
given points in time. Establishing relationship among items, creating a
mechanism to manage multiple level of control and procedure for change
management system.
• A baseline is a formally accepted version of a software configuration item. It is
designated and fixed at a specific time while conducting the SCM process. It
can only be changed through formal change control procedures.
• Configuration identification is a method of determining the scope of the
software system. With the help of this step, you can manage or control
something even if you don’t know what it is. It is a description that contains
the CSCI type (Computer Software Configuration Item), a project identifier
and version information.
Version Control
• Version control combines procedures and tools to manage different versions of
configuration objects that are created during software product development.
To control versions, you can use Version Control Register. In Version Control
Register, you enter the details of components, such as component
identification numbers, their versions, and dates of validity. It is advisable to
release a baseline after a version is released. Baseline is a specification or a
product that is formally reviewed and agreed upon. This serves as the basis for
further development. Baseline can be changed only through formal change
control procedures. A baseline consists of a set of SCIs that are logically related
to each other. Baselines are established when subsequent changes to the SCIs
need to be controlled. Version control is essential so that everybody uses only
the latest version. Any kind of version mismatch might result in rework
Change Control
Change control is a procedural method which ensures quality and
consistency when changes are made in the configuration object. In this
step, the change request is submitted to software configuration manager.
Activities during this process:
• Control ad-hoc change to build stable software development
environment. Changes are committed to the repository
• The request will be checked based on the technical merit, possible side
effects and overall impact on other configuration objects.
• It manages changes and making configuration items available during
the software lifecycle
Configuration Auditing
Software Configuration audits verify that all the software product satisfies the
baseline needs. It ensures that what is built is what is delivered.
Activities during this process:
• Configuration auditing is conducted by auditors by checking that defined
processes are being followed and ensuring that the SCM goals are satisfied.
• To verify compliance with configuration control standards. auditing and reporting
the changes made
• SCM audits also ensure that traceability is maintained during the process.
• Ensures that changes made to a baseline comply with the configuration status
reports
• Validation of completeness and consistency
Status Reporting/ Accounting
• Configuration status accounting tracks each release during the SCM process. This stage involves
tracking what each version has and the changes that lead to this version.
• Providing accurate status and current configuration data to developers, tester, end users,
customers and stakeholders through admin guides, user guides, FAQs, Release notes, Memos,
Installation Guide, Configuration guide etc.
Activities during this process:
• Keeps a record of all the changes made to the previous baseline to reach a new baseline
• Identify all items to define the software configuration
• Monitor status of change requests
• Complete listing of all changes since the last baseline
• Allows tracking of progress to next baseline
• Allows to check previous releases/versions to be extracted for testing
Formal Change Control Process
Participant of SCM process
1. Configuration Manager
• Configuration Manager is the head who is Responsible for identifying configuration items.
• CM ensures team follows the SCM process
• He/She needs to approve or reject change requests
2. Developer
• The developer needs to change the code as per standard development activities or change requests. He is
responsible for maintaining configuration of code.
• The developer should check the changes and resolves conflicts
3. Auditor
• The auditor is responsible for SCM audits and reviews.
• Need to ensure the consistency and completeness of release.
4. Project Manager:
• Ensure that the product is developed within a certain time frame
• Monitors the progress of development and recognizes issues in the SCM process
• Generate reports about the status of the software system
• Make sure that processes and policies are followed for creating, changing, and testing
5. User
• The end user should understand the key SCM terms to ensure he has the latest version of the software.
Software Configuration Management Vs S
oftware Maintenance
• SCM is an integral part of SQA. SCM involves assessing the impact of the
changes made during SQA activities and making decisions based on cost and
benefit analysis.
• SCM can be defined as the art of identifying, organizing, and
controlling changes in a software project with the objective of minimizing
mistakes.
• SCM is different from software maintenance. Software maintenance is
required after the software is delivered to the client and
is put into operation. As opposed to this, SCM is
a set of tracking and controlling activities that begins.
• when a software project begins and ends only when the software is taken out of
operation.
Baselines vs. Interim Versions
• SCM differentiates between baselines and interim versions. A baseline is a tested
and certified version of a system. Baselines can be assigned version numbers
such as 1.0, 2.0, 3.0, and so on. A baseline usually undergoes intensive testing.
Interim versions, on the other hand, have version numbers, such as 1.1 or 1.2.
• The interim version is a temporary version. Interim versions have a short life and
survive only during bug fixing, testing, or debugging. However, interim versions
also have a unique version number or name.
• Baselines are more visible with the marketing team and the vendors than the
interim versions. However, as part of SCM, all versions of changes are saved,
clearly labeled, and archived. Archiving is the process of maintaining controlled
copies of prior versions. Archiving helps in re-creating earlier versions in the
event of data loss or data corruption.
Environment for Configuration Control
The Process for controlling modifications to hardware, firmware, software, and documentation
to protect the information system against improper modifications before, during, and after
system implementation.
The term "environment for configuration control" typically refers to the context or setting in
which configuration control processes are carried out. In the realm of software development,
systems engineering, or project management, configuration control involves managing and
regulating changes to the configuration items of a system or project. The environment for
configuration control encompasses the tools, procedures, policies, and stakeholders involved in
this process.
Key components of an effective environment for configuration control include:
• Configuration Management Tools: Utilizing software tools to track, document, and manage
changes to configuration items.
• Version Control Systems: Implementing systems that allow for the tracking of different
versions of software or project components.
• Change Control Board (CCB): Establishing a group responsible for evaluating and
approving or rejecting proposed changes to the configuration.
• Documentation: Maintaining thorough documentation of configurations,
changes, and the rationale behind them.
• Communication Channels: Ensuring clear and effective communication among
team members, stakeholders, and the CCB regarding proposed changes and
their status.
• Policy and Procedures: Developing and enforcing policies and procedures for
making, reviewing, and approving changes to the configuration.
• Audit Trail: Establishing a system for tracking and auditing changes to
configurations over time.
A well-structured environment for configuration control is crucial for maintaining
the integrity, reliability, and traceability of configurations throughout the lifecycle of
a system or project.

You might also like