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

RMMM Plan for Software Quality Assurance

The document outlines the Risk Mitigation, Monitoring, and Management (RMMM) plan, emphasizing its role in software project management to identify, control, and mitigate risks. It also discusses Software Quality Assurance (SQA), detailing its activities, benefits, and challenges in ensuring high-quality software development. Additionally, it covers System Configuration Management (SCM), which focuses on managing software changes and maintaining system stability through structured processes.

Uploaded by

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

RMMM Plan for Software Quality Assurance

The document outlines the Risk Mitigation, Monitoring, and Management (RMMM) plan, emphasizing its role in software project management to identify, control, and mitigate risks. It also discusses Software Quality Assurance (SQA), detailing its activities, benefits, and challenges in ensuring high-quality software development. Additionally, it covers System Configuration Management (SCM), which focuses on managing software changes and maintaining system stability through structured processes.

Uploaded by

talkwithhexa420
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Module 6: Software Configuration Management, Quality Assurance and

Maintenance

Risk Mitigation, Monitoring, and Management (RMMM) plan


Last Updated : 23 Jul, 2025

●​
●​
●​

RMMMPlan:

A risk management technique is usually seen in the software Project plan. This can
be divided into Risk Mitigation, Monitoring, and Management Plan (RMMM). In
this plan, all works are done as part of risk analysis. As part of the overall project
plan project manager generally uses this RMMM plan. ​

In some software teams, risk is documented with the help of a Risk Information
Sheet (RIS). This RIS is controlled by using a database system for easier
management of information i.e creation, priority ordering, searching, and other
analysis. After documentation of RMMM and start of a project, risk mitigation and
monitoring steps will start.


Risk Mitigation : ​
It is an activity used to avoid problems (Risk Avoidance). ​

Steps for mitigating the risks as follows.


1.​ Finding out the risk.
2.​ Removing causes that are the reason for risk creation.
3.​ Controlling the corresponding documents from time to time.
4.​ Conducting timely reviews to speed up the work.


Risk Monitoring: ​
It is an activity used for project tracking. ​
It has the following primary objectives as follows. ​
1.​ To check if predicted risks occur or not.
2.​ To ensure proper application of risk aversion steps defined for risk.
3.​ To collect data for future risk analysis.
4.​ To allocate what problems are caused by which risks throughout the project.


Risk Management and planning:

It assumes that the mitigation activity failed and the risk is a reality. This task is
done by Project manager when risk becomes reality and causes severe problems. If
the project manager effectively uses project mitigation to remove risks successfully
then it is easier to manage the risks. This shows that the response that will be taken
for each risk by a manager. The main objective of the risk management plan is the
risk register. This risk register describes and focuses on the predicted threats to a
software project.

Example:
Let us understand RMMM with the help of an example of high staff turnover.

Risk Mitigation:
To mitigate this risk, project management must develop a strategy for reducing
turnover. The possible steps to be taken are:
●​ Meet the current staff to determine causes for turnover (e.g., poor working
conditions, low pay, competitive job market).
●​ Mitigate those causes that are under our control before the project starts.
●​ Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave.
●​ Organize project teams so that information about each development activity is
widely dispersed.
●​ Define documentation standards and establish mechanisms to ensure that
documents are developed in a timely manner.
●​ Assign a backup staff member for every critical technologist.

Risk Monitoring:
As the project proceeds, risk monitoring activities commence. The project manager
monitors factors that may provide an indication of whether the risk is becoming
more or less likely. In the case of high staff turnover, the following factors can be
monitored:
●​ General attitude of team members based on project pressures.
●​ Interpersonal relationships among team members.
●​ Potential problems with compensation and benefits.
●​ The availability of jobs within the company and outside it.

Risk Management:
Risk management and contingency planning assumes that mitigation efforts have
failed and that the risk has become a reality. Continuing the example, the project is
well underway, and a number of people announce that they will be leaving. If the
mitigation strategy has been followed, backup is available, information is
documented, and knowledge has been dispersed across the team. In addition, the
project manager may temporarily refocus resources (and readjust the project
schedule) to those functions that are fully staffed, enabling newcomers who must
be added to the team to "get up to the speed".

Drawbacks of RMMM:
●​ It incurs additional project costs.
●​ It takes additional time.
●​ For larger projects, implementing an RMMM may itself turn out to be another
tedious project.
●​ RMMM does not guarantee a risk-free project, infact, risks may also come up
after the project is delivered.

Software Quality Assurance - Software Engineering

Software Quality Assurance (SQA) is simply a way to assure quality in the


software. It is the set of activities that ensure processes, procedures as well as
standards are suitable for the project and implemented correctly. It is a process that
works parallel to Software Development. It focuses on improving the process of
development of software so that problems can be prevented before they become
major issues. Software Quality Assurance is a kind of Umbrella activity that is
applied throughout the software process.
For those looking to deepen their expertise in SQA and elevate their professional
skills, consider exploring a specialized training program Manual to Automation
Testing: A QA Engineer's Guide . This program offers practical, hands-on
experience and advanced knowledge that complements the concepts covered in this
guide.
Quality
Quality in a product or service can be defined by several measurable
characteristics. Each of these characteristics plays a crucial role in determining the
overall quality.
Generally, the quality of the software is verified by third-party organizations
like international standard organizations .

Quality in Software Engineering

Elements of Software Quality Assurance (SQA)


●​ Standards: The IEEE, ISO, and other standards organizations have produced a
broad array of software engineering standards and related documents. The job
of SQA is to ensure that standards that have been adopted are followed and that
all work products conform to them.
●​ Reviews and audits: Technical reviews are a quality control activity
performed by software engineers for software engineers. Their intent is to
uncover errors. Audits are a type of review performed by SQA personnel
(people employed in an organization) with the intent of ensuring that quality
guidelines are being followed for software engineering work.
●​ Testing: Software testing is a quality control function that has one primary
goal to find errors. The job of SQA is to ensure that testing is properly planned
and efficiently conducted for primary goal of software.
●​ Error/defect collection and analysis : SQA collects and analyzes error and
defect data to better understand how errors are introduced and what software
engineering activities are best suited to eliminating them.
●​ Change management: SQA ensures that adequate change management
practices have been instituted.
●​ Education: Every software organization wants to improve its software
engineering practices. A key contributor to improvement is education of
software engineers, their managers, and other stakeholders. The SQA
organization takes the lead in software process improvement which is key
proponent and sponsor of educational programs.
●​ Security management: SQA ensures that appropriate process and technology
are used to achieve software security.
●​ Safety: SQA may be responsible for assessing the impact of software failure
and for initiating those steps required to reduce risk.
●​ Risk management : The SQA organization ensures that risk
management activities are properly conducted and that risk-related contingency
plans have been established.

Focus of Software Quality Assurance (SQA)


The Software Quality Assurance (SQA) focuses on the following :

Software Quality Assurance (SQA)

●​ Software's Portability: Software's portability refers to its ability to be easily


transferred or adapted to different environments or platforms without needing
significant modifications. This ensures that the software can run efficiently
across various systems, enhancing its accessibility and flexibility.
●​ Software's Usability: Usability of software refers to how easy and intuitive it
is for users to interact with and navigate through the application. A high level
of usability ensures that users can effectively accomplish their tasks with
minimal confusion or frustration, leading to a positive user experience.
●​ Software's Reusability: Reusability in software development involves
designing components or modules that can be reused in multiple parts of the
software or in different projects. This promotes efficiency and reduces
development time by eliminating the need to reinvent the wheel for similar
functionalities, enhancing productivity and maintainability.
●​ Software's Correctness: Correctness of software refers to its ability to
produce the desired results under specific conditions or inputs. Correct
software behaves as expected without errors or unexpected behaviors, meeting
the requirements and specifications defined for its functionality.
●​ Software's Maintainability: Maintainability of software refers to how easily it
can be modified, updated, or extended over time. Well maintained software is
structured and documented in a way that allows developers to make changes
efficiently without introducing errors or compromising its stability.
●​ Software's Error Control: Error control in software involves implementing
mechanisms to detect, handle, and recover from errors or unexpected situations
gracefully. Effective error control ensures that the software remains robust and
reliable, minimizing disruptions to users and providing a smoother experience
overall.

Major Activities in Software Quality Assurance (SQA)


●​ SQA Management Plan: Make a plan for how you will carry out the SQA
throughout the project. Think about which set of software engineering
activities are the best for project. check level of SQA team skills.
●​ Set The Check Points: SQA team should set checkpoints. Evaluate the
performance of the project on the basis of collected data on different check
points.
●​ Measure Change Impact: The changes for making the correction of an error
sometimes re introduces more errors keep the measure of impact of change on
project. Reset the new change to check the compatibility of this fix with whole
project.
●​ Multi testing Strategy: Do not depend on a single testing approach. When
you have a lot of testing approaches available use them.
●​ Manage Good Relations: In the working environment managing good
relations with other teams involved in the project development is mandatory.
Bad relation of SQA team with programmers team will impact directly and
badly on project.
●​ Maintaining records and reports: Comprehensively document and share all
QA records, including test cases, defects, changes, and cycles, for stakeholder
awareness and future reference.
●​ Reviews software engineering activities: The SQA group identifies and
documents the processes. The group also verifies the correctness of software
product.
●​ Formalize deviation handling: Track and document software deviations
meticulously. Follows established procedures for handling variances.

Benefits of Software Quality Assurance (SQA)


●​ SQA produces high quality software.
●​ High quality application saves time and cost.
●​ SQA is beneficial for better reliability.
●​ SQA is beneficial in the condition of no maintenance for a long time.
●​ High quality commercial software increase market share of company.
●​ Improving the process of creating software.
●​ Improves the quality of the software.
●​ It cuts maintenance costs. Get the release right the first time, and your
company can forget about it and move on to the next big thing. Release a
product with chronic issues, and your business bogs down in a costly, time
consuming, never-ending cycle of repairs.

Disadvantage of Software Quality Assurance (SQA)


There are a number of disadvantages of quality assurance.
●​ Cost: Some of them include adding more resources, which cause the more
budget its not, addition of more resources for betterment of the product.
●​ Time Consuming: Testing and Deployment of the project taking more time
which cause delay in the project.
●​ Overhead : SQA processes can introduce administrative overhead, requiring
documentation, reporting, and tracking of quality metrics. This additional
administrative burden can sometimes outweigh the benefits, especially for
smaller projects.
●​ Resource Intensive : SQA requires skilled personnel with expertise in testing
methodologies, tools, and quality assurance practices. Acquiring and retaining
such talent can be challenging and expensive.
●​ Resistance to Change : Some team members may resist the implementation of
SQA processes, viewing them as bureaucratic or unnecessary. This resistance
can hinder the adoption and effectiveness of quality assurance practices within
an organization.
●​ Not Foolproof : Despite thorough testing and quality assurance efforts,
software can still contain defects or vulnerabilities. SQA cannot guarantee the
elimination of all bugs or issues in software products.
●​ Complexity: SQA processes can be complex, especially in large-scale projects
with multiple stakeholders, dependencies, and integration points. Managing the
complexity of quality assurance activities requires careful planning and
coordination.

System configuration management - Software Engineering

Whenever software is built, there is always scope for improvement and those
improvements bring picture changes. Changes may be required to modify or update
any existing solution or to create a new solution for a problem. Requirements keep
on changing daily so we need to keep on upgrading our systems based on the
current requirements and needs to meet desired outputs. Changes should be
analyzed before they are made to the existing system, recorded before they are
implemented, reported to have details of before and after, and controlled in a
manner that will improve quality and reduce error. This is where the need for
System Configuration Management comes. System Configuration Management
(SCM) is an arrangement of exercises that controls change by recognizing the
items for change, setting up connections between those things,
making/characterizing instruments for overseeing diverse variants, controlling the
changes being executed in the current framework, inspecting and
revealing/reporting on the changes made. It is essential to control the changes
because if the changes are not checked legitimately then they may wind up
undermining a well-run programming. In this way, SCM is a fundamental piece of
all project management activities.
Processes involved in SCM - Configuration management provides a disciplined
environment for smooth control of work products. It involves the following
activities:
1.​ Identification and Establishment - Identifying the configuration items from
products that compose baselines at given points in time (a baseline is a set of
mutually consistent Configuration Items, which has been formally reviewed and
agreed upon, and serves as the basis of further development). Establishing
relationships among items, creating a mechanism to manage multiple levels of
control and procedure for the change management system.
2.​ Version control - Creating versions/specifications of the existing product to
build new products with the help of the SCM system. A description of
the version is given below:

Suppose after some changes, the version of the configuration object changes
from 1.0 to 1.1. Minor corrections and changes result in versions 1.1.1 and
1.1.2, which is followed by a major update that is object 1.2. The development
of object 1.0 continues through 1.3 and 1.4, but finally, a noteworthy change to
the object results in a new evolutionary path, version 2.0. Both versions are
currently supported.
3.​ Change control - Controlling changes to Configuration items (CI). The change
control process is explained in Figure below:

A change request (CR) is submitted and evaluated to assess technical merit,


potential side effects, the overall impact on other configuration objects and
system functions, and the projected cost of the change. The results of the
evaluation are presented as a change report, which is used by a change control
board (CCB) —a person or group who makes a final decision on the status and
priority of the change. An engineering change Request (ECR) is generated for
each approved change. Also, CCB notifies the developer in case the change is
rejected with proper reason. The ECR describes the change to be made, the
constraints that must be respected, and the criteria for review and audit. The
object to be changed is "checked out" of the project database, the change is
made, and then the object is tested again. The object is then "checked in" to the
database and appropriate version control mechanisms are used to create the next
version of the software.
4.​ Configuration auditing - A software configuration audit complements the
formal technical review of the process and product. It focuses on the technical
correctness of the configuration object that has been modified. The audit
confirms the completeness, correctness, and consistency of items in the SCM
system and tracks action items from the audit to closure.
5.​ Reporting - Providing accurate status and current configuration data to
developers, testers, end users, customers, and stakeholders through admin
guides, user guides, FAQs, Release notes, Memos, Installation Guide,
Configuration guides, etc.
System Configuration Management (SCM) is a software engineering practice that
focuses on managing the configuration of software systems and ensuring that
software components are properly controlled, tracked, and stored. It is a critical
aspect of software development, as it helps to ensure that changes made to a
software system are properly coordinated and that the system is always in a known
and stable state.
SCM involves a set of processes and tools that help to manage the different
components of a software system, including source code, documentation, and other
assets. It enables teams to track changes made to the software system, identify
when and why changes were made, and manage the integration of these changes
into the final product.
Importance of Software Configuration Management
1.​ Effective Bug Tracking: Linking code modifications to issues that have been
reported, makes bug tracking more effective.
2.​ Continuous Deployment and Integration: SCM combines with continuous
processes to automate deployment and testing, resulting in more dependable
and timely software delivery.
3.​ Risk management: SCM lowers the chance of introducing critical flaws by
assisting in the early detection and correction of problems.
4.​ Support for Big Projects: Source Code Control (SCM) offers an orderly method
to handle code modifications for big projects, fostering a well-organized
development process.
5.​ Reproducibility: By recording precise versions of code, libraries, and
dependencies, source code versioning (SCM) makes builds repeatable.
6.​ Parallel Development: SCM facilitates parallel development by enabling several
developers to collaborate on various branches at once.
Why need for System configuration management?
1.​ Replicability: Software version control (SCM) makes ensures that a software
system can be replicated at any stage of its development. This is necessary for
testing, debugging, and upholding consistent environments in production,
testing, and development.
2.​ Identification of Configuration: Source code, documentation, and executable
files are examples of configuration elements that SCM helps in locating and
labeling. The management of a system's constituent parts and their interactions
depend on this identification.
3.​ Effective Process of Development: By automating monotonous processes like
managing dependencies, merging changes, and resolving disputes, SCM
simplifies the development process. Error risk is decreased and efficiency is
increased because of this automation.
Key objectives of SCM
1.​ Control the evolution of software systems: SCM helps to ensure that changes
to a software system are properly planned, tested, and integrated into the final
product.
2.​ Enable collaboration and coordination: SCM helps teams to collaborate and
coordinate their work, ensuring that changes are properly integrated and that
everyone is working from the same version of the software system.
3.​ Provide version control: SCM provides version control for software systems,
enabling teams to manage and track different versions of the system and to
revert to earlier versions if necessary.
4.​ Facilitate replication and distribution: SCM helps to ensure that software
systems can be easily replicated and distributed to other environments, such as
test, production, and customer sites.
5.​ SCM is a critical component of software development, and effective SCM
practices can help to improve the quality and reliability of software systems, as
well as increase efficiency and reduce the risk of errors.
The main advantages of SCM
1.​ Improved productivity and efficiency by reducing the time and effort required
to manage software changes.
2.​ Reduced risk of errors and defects by ensuring that all changes were properly
tested and validated.
3.​ Increased collaboration and communication among team members by providing
a central repository for software artifacts.
4.​ Improved quality and stability of software systems by ensuring that all changes
are properly controlled and managed.
The main disadvantages of SCM
1.​ Increased complexity and overhead, particularly in large software systems.
2.​ Difficulty in managing dependencies and ensuring that all changes are properly
integrated.
3.​ Potential for conflicts and delays, particularly in large development teams with
multiple contributors.

Software Configuration Management

●​ Software Configuration Management is a set of activities carried out for


identifying, organising, and controlling changes throughout the lifecycle of
computer software
●​ During the development of software change must be managed and controlled
in order to improve quality and reduce error. Hence software configuration
management is a quality assurance activity that is applied throughout the
software process.
●​ To manage and control Software Configuration Item (SCI), each should be
separately named and organized using object oriented approaches.
●​ The SCM process defines a series of tasks that have four primary objectives:
1.​ To identify all items that collectively define the software configuration
(Identification).
2.​ To manage changes to one or more of these items (Change Control).
3.​ To facilitate the construction of different versions of an application
(Version Control).
4.​ To ensure that software quality is maintained over time (Configuration
Audit).
●​ Following fig shows the layers of SCM process.
Version Control

●​ Version Control Combines procedures and tools to manage different version


of configuration objects that are created during the software process.
●​ A version control system implements or is directly integrated with four
major capabilities:
1.​ A project database that stores all relevant configuration objects,
2.​ A version management capability that stores all version of
configuration object,
3.​ A make facility that enables the software engineer to collect all
relevant configuration objects, and
4.​ Construct a specific version of the software.
●​ A number of version control systems establish a set – a collection of all
changes (to some baseline configuration) that are required to create a
specific version of the software.
●​ “Changes set” captures all changes to all files in the configuration along
with reason for changes and details of who made the changes and when.
●​ A number of named change set can be identified for an application or
system. This enables a software engineer to construct a version of the
software by specifying the changes set (by name) that must be applied to the
baseline configuration.
●​ To accomplish this, a system modelling approach is applied. The system
model contains
1.​ A template that include a component hierarchy and build order for the
component that describe how the system must be constructed,
2.​ Construction rules, and
3.​ Verification rules.

Change Control
●​ Change control is manual step in software lifecycle. It combines human
procedures and automated tools.
o​ Change control process is illustrated in following figure 2.
o​ Change request submitted and evaluated to assess technical merit,
potential side effects, overall impact on other configuration object and
system function, and project cost of change.
●​ The result of the evaluation are presented as a change report, which is used
by the change control authority(CCA) – A person or group who make final
decision on the status and priority of the change.
●​ An engineering change order (ECO) is generated for each approved change.
The ECO describes the change order to be made, the constraints that must be
respected, and the criteria for view and audit.
●​ The object to be changed can be placed in a directory that is controlled by
software engineer making the change. As an alternative, the object to be
changed can be “checked out” of the project database, change is made, and
appropriate SQA activities are applied.
●​ The object are then “checked in” to the database and appropriate version
control mechanism are used to create the next version of the software.
●​ Checked in and Checked out mechanism require two important elements
●​ Access Control
●​ Synchronization Control
o​ The Access control mechanism gives the authority to the software
engineer to access and modify the specific configuration object.
o​ The Synchronization control mechanism allows to make parallel
changes or the change made by two different people without
overwriting each other’s work.
Version Control and change control system often implements an issue
tracking (also called bug tracking) capability that enables the team to record and
track the status of all outstanding issues associated with each configuration object.

You might also like