Lect 3
Lect 3
Prof. S. K. Swain
School of CE, KIIT,
Bhubaneswar
1
Organization of this
Lecture
●
Introduction
●
Requirements analysis
●
Requirements specification
●
SRS document
●
Decision table
●
Decision tree
●
Summary
2
What are Requirements ?
A condition or capability needed by
a user to solve a problem or achieve
an objective.
A condition or capability that must
3
Requirements CONT…
●
It is the analyst's job to understand
these requirements and provide an
appropriate solution.
●
To be able to do this, the analyst
– Must understand the client's business
domain
– Who are all the stakeholders,
– How they affect the system,
– What are the constraints,
– What are the alterable, etc.
4
Requirements
Definition/Specification
●
Requirements Definition
– Customer-oriented descriptions of the
system’s functions and constraints on its
operation.
– Written for customers.
●
Requirements Specification
– Precise and detailed descriptions of the
system’s functionality and constraints.
– Written as a contract between client and
contractor.
5
Goals of Requirements
Analysis and Specification
6
Who Carries Out
Requirements Analysis
and Specification?
●
The person who undertakes
requirements analysis and specification:
– Known as systems analyst:
– Collects data pertaining to the product
(Also known as requirements elicitation)
– Analyzes collected data:
●
To understand what exactly needs to be
done.
– Writes the Software Requirements
Specification (SRS) document.
7
Requirements Elicitation
●
is a critical step in software development,
where the needs and constraints of
stakeholders are gathered to define the
software requirements.
●
This process ensures that the final product
meets user needs and expectations.
●
Effective requirements elicitation sets the
foundation for successful software
development by ensuring that the end product
aligns with user needs and expectations 8
Best Practices in
Requirements Elicitation
●
Involve stakeholders throughout the
process
●
Clear Communication: Use clear and
understandable language.
●
Iterative Approach: Continuously refine
requirements based on feedback.
●
Documentation: Keep detailed records of elicited
requirements.
●
Validation: Regularly validate requirements with
stakeholders to ensure accuracy and completeness.
●
Prioritization: Identify and prioritize requirements
based on their importance and feasibility.
9
Elicitation Techniques
1. Collaborative Requirements Gathering
– It is a team oriented approach (stakeholders
& developers) to requirements gathering.
– Exciting requirements
●
Reflects features that go beyond the
customer’s expectation and prove to be very
satisfying when present.
●
E.g. word processing software attached to
the software for word processing.
13
Challenges in Requirements
Elicitation
●
Ambiguity: Requirements can be unclear or
open to interpretation.
●
Changing Requirements: Stakeholder
needs may evolve over time.
●
Stakeholder Conflicts: Different
stakeholders may have conflicting requirements.
●
Communication Barriers:
Misunderstandings due to language, technical
jargon, or cultural differences.
14
Requirements Gathering
Activities
●
1. Studying the existing documentation
(Document Analysis)
●
2. On-Site Observation
●
3. Interview (face to face, workshop, Seminar,
Group Discussion, Brain storming)
●
4. Surveys and Questionnaires
●
5. Scenario analysis (how users will interact with
the system through use cases and scenarios)
●
6. Story Boarding (Creating visual representations of
how users will interact with the system-helps in understanding user
interfaces)
●
7. Mind Mapping (Creating diagrams to visually organize
15
information and show relationships between different requirements)
Requirements Gathering
(CONT.)
●
Some desirable attributes of
a good system analyst:
– Good interaction skills,
– Discussion with the customer and
end-users,
– Imagination and creativity,
– Experience.
17
Case Study: Automation of
Office Work at CSE Dept.
●
The team was first briefed by the
DG about the specific activities to
be automated.
●
The analyst first discussed with the
two clerks:
– Regarding their specific
responsibilities (tasks) that were to be
automated.
●
The analyst also interviewed
student and faculty representatives
who would also use the software.
18
Case Study: Automation of
Office Work at CSE Dept.
●
For each task, they asked:
– About the steps through
which these are performed.
– They also discussed various
scenarios that might arise for
each task.
– The analyst collected all
types of forms that were
being used.
19
Analysis of the Gathered
Requirements(CONT.)
●
Several things about the project
should be clearly understood by the
analyst:
– What is the problem?
– Why is it important to solve the problem?
– What are the possible solutions to the
problem?
– What complexities might arise while
solving the problem?
20
Analysis of the Gathered
Requirements
●
Main purpose of requirements
analysis:
●
Clear and in-depth understanding of the user
requirements,
●
Detect inconsistencies, ambiguities, and
incompleteness.
●
Incompleteness and inconsistencies:
– Resolved through further discussions with the
end-users and the customers.
– Remove all ambiguities and inconsistencies
from the initial customer perception of the
problem. 21
Inconsistent
Requirement
●
Some part of the requirement:
– contradicts with some other part.
●
Example:
– One customer says turn off heater
and open water shower when
temperature > 100 C
– Another customer says turn off
heater and turn ON cooler when
temperature > 100 C
22
Incomplete Requirement
●
Some requirements have been
omitted:
– Possibly due to oversight.
●
Example:
– The analyst has not recorded:
when temperature falls below 90 C
●
heater should be turned ON
●
water shower turned OFF.
23
Software analysis
principles
●
Software analysis principles focus on
understanding and defining the requirements
and specifications of a software system.
●
guide the analysis process to ensure the
software system meets the needs of its users
and stakeholders.
●
By adhering to these principles and best
practices, software engineers can conduct
effective software analysis,
●
Serve as a solid foundation for successful
software development. 24
Software analysis
principles
1. Understandability
– Ensure that the requirements and system specifications
are clear and understandable to all stakeholders.
– Use simple language and avoid technical jargon when
possible.
5. Traceability
– Maintain the ability to trace each requirement back to its
origin.
– Ensure that every requirement can be linked to business
goals, stakeholder needs, or regulatory standards.
7. Modularity
– Break down the system into smaller, manageable modules
or components.
– Facilitate easier understanding, development, and
maintenance of the system. 26
Software analysis
principles
8. Abstraction
●
Focus on the essential features of the system while ignoring
lower-level details initially.
●
Use high-level models to represent the system’s
functionality and structure.
10. User Involvement
●
Actively involve users and stakeholders throughout the
analysis process.
●
Ensure their needs, preferences, and feedback are
incorporated into the requirements.
11. Iterative Refinement
●
Refine and elaborate requirements iteratively based on
feedback and evolving understanding.
●
Continuously improve the accuracy and detail of the
27
requirements.
Software analysis
principles
12. Formalization
●
Where appropriate, use formal methods to specify and
analyze requirements.
●
Use precise mathematical models to reduce ambiguity and
ensure correctness.
13. Validation
●
Continuously validate requirements with stakeholders to
ensure they meet their needs.
14. Risk Management
●
Identify and mitigate potential risks early in the analysis
process.
15. Documentation
28
Analysis of the Gathered
Requirements(CONT.)
●
After collecting and analyzing
all data regarding the system
to be developed,
– Systematically organize
requirements into a Software
Requirements Specification (SRS)
document.
29
Software Requirements
Specification
●
Main aim of requirements
specification:
– Systematically organize the
requirements arrived during
requirements analysis.
– Document requirements properly.
– A Software Requirements Specification
(SRS) is a document containing a
complete description of what the
software will do without describing how
it will do it.
30
Software Requirements
Specification
●
The SRS document is useful in
various contexts:
– Statement of user needs
– Contract document
– Reference document
– Definition for implementation
31
Software Requirements
Specification: A Contract
Document
●
SRS document is a contract
between the development team and
the customer.
– Once the SRS document is approved
by the customer,
●
Any subsequent controversies are settled
by referring the SRS document.
32
Review and
management of user
needs
●
crucial steps to ensure that the
developed software meets the
expectations and requirements of its
users.
●
Effective review and management of user
needs in requirement analysis ensure
that the final software product is aligned
with user expectations, reducing the risk
of project failures and increasing user
satisfaction.
33
Review of User Needs
●
Stakeholder Identification:
– Identify all the potential stakeholders, including end-users,
clients, managers, and other relevant parties.
– Understand their roles, needs, and expectations from the
software.
●
Requirement Documentation:
– Document the gathered requirements clearly and
concisely.
– Use requirement specification documents, user stories, and
use cases to represent the requirements.
34
Review of User Needs
Cont..
●
Requirement Validation:
– Validate the requirements with stakeholders to
ensure accuracy and completeness.
– Conduct review sessions, walkthroughs, and
inspections with stakeholders to verify the
documented needs.
●
Prioritization:
– Prioritize the requirements based on their
importance, feasibility, and impact on the project.
– Use techniques like MoSCoW (Must have, Should
have, Could have, and Won't have) prioritization.
35
Management of User
Needs
●
Requirement Traceability:
– Maintain traceability of requirements throughout the
software development lifecycle.
– Use traceability matrices to map requirements to design,
implementation, and testing phases.
●
Change Management:
– Establish a process for managing changes to requirements.
– Use a change control board (CCB) to review and approve
changes.
– Document and communicate changes to all relevant
stakeholders.
●
Requirement Analysis:
– Analyze the requirements to understand their implications
on design, development, and testing.
– Identify potential conflicts, dependencies, and ambiguities
in the requirements. 36
Management of User
Needs
●
Prototyping and Modeling:
– Create prototypes or models to visualize and refine user
requirements.
●
User Involvement:
– Involve users throughout the development process to gather
continuous feedback.
●
Documentation and Communication:
– Keep all requirement-related documents updated and easily
accessible.
– Communicate requirements clearly to all team members and
stakeholders.
– Use collaboration tools and platforms to facilitate effective
communication. 37
Management of User
Needs
●
Quality Assurance:
– Ensure the requirements are testable and
measurable.
– Work closely with the QA team to develop
test plans and cases based on requirements.
●
Project Management Integration:
– Integrate requirement management with
project management activities.
– Use project management tools to track
requirement progress and ensure alignment
with project goals.
38
SRS Document
●
The SRS document is known as black-
box specification:
– The system is considered as a black box whose
internal details are not known.
– Only its visible external (i.e. input/output)
behavior is documented.
●
SRS document concentrates on:
– What needs to be done
– Carefully avoids the solution (“how to do”)
aspects.
●
Should be carefully written
39
Properties of a Good
SRS Document
●
It should be concise
– at the same time should not be ambiguous.
●
It should specify what the system
must do
– not say how to do it.
●
Easy to change.,
– i.e. it should be well-structured.
●
It should be consistent.
●
It should be complete.
40
Properties of a Good
SRS Document (cont...)
●
It should be traceable
– You should be able to trace which
part of the specification corresponds
to which part of the design, code, etc
and vice versa.
●
It should be verifiable
– e.g. “system should be user friendly”
is not verifiable
41
Organization of SRS
Document
SRS document, normally
contains three important
parts:
●
Functional requirements
●
Nonfunctional Requirements
– External interface requirements
– Performance requirements
– Goals of Implementation.
42
SRS Document (CONT.)
●
It is desirable to consider every
system:
– Performing a set of functions {fi}.
– Each function fi considered as:
– Transforming a set of input data to
corresponding output data.
43
Example: Functional
Requirement
●
F1: Search Book
– Input:
●
an author’s name:
– Output:
●
details of the author’s books and the
locations of these books in the library.
44
Example:
Withdraw Cash from ATM
●
R1: Withdraw Cash
45
45
Functional
Requirements
●
For each high-level
requirement:
– Everyfunction is described in
terms of:
●
Input data set
●
Output data set
●
Processing required to obtain the
output data set from the input data
set.
46
Nonfunctional
Requirements
●
Characteristics of the
system which can not be
expressed as functions:
●
Maintainability,
●
Portability,
●
Usability, etc.
47
Nonfunctional
Requirements
●
Nonfunctional requirements include:
– Reliability issues,
– Performance issues:
●
Example: How fast the system can produce
results
– so that it does not overload another
system to which it supplies data, etc.
– Human-computer interface issues,
– Interface with other external systems,
– Security, maintainability, etc.
48
Non-Functional
Requirements
●
Hardware to be used,
●
Operating system
– or DBMS to be used
●
Capabilities of I/O devices
●
Standards compliance
●
Data representations
– by the interfaced system
49
Goals of Implementation
●
Goals describe things that are
desirable of the system:
– But, would not be checked for
compliance.
– For example,
●
Reusability issues
●
Functionalities to be developed in future
50
Example Functional
Requirements
●
List all functional requirements
– with proper numbering.
●
Req. 1:
– Once the user selects the “search”
option,
●
he is asked to enter the key words.
– The system should output details of all
books
●
whose title or author name matches any of
the key words entered.
●
Details include: Title, Author Name,
Publisher name, Year of Publication, ISBN
Number, Catalog Number, Location in the
Library.
51
Example Functional
Requirements
●
Req. 2:
– When the “renew” option is selected,
●
The user is asked to enter his
membership number and password.
– After password validation,
●
The list of the books borrowed by him
are displayed.
– The user can renew any of the books:
●
By clicking in the corresponding renew
box.
52
Req. 1:
●
R.1.1:
– Input: “search” option,
– Output: user prompted to enter the key
words.
●
R1.2:
– Input: key words
– Output: Details of all books whose title or
author name matches any of the key words.
●
Details include: Title, Author Name, Publisher
name, Year of Publication, ISBN Number, Catalog
Number, Location in the Library.
– Processing: Search the book list for the
keywords
53
Req. 2:
●
R2.1:
– Input: “renew” option selected,
– Output: user prompted to enter his
membership number and password.
●
R2.2:
– Input: membership number and password
– Output:
●
list of the books borrowed by user are displayed.
User prompted to enter books to be renewed or
●
user informed about bad password
– Processing: Password validation, search
books issued to the user from borrower list
and display.
54
Req. 2:
●
R2.3:
– Input: user choice for renewal of the
books issued to him through mouse
clicks in the corresponding renew box.
– Output: Confirmation of the books
renewed
– Processing: Renew the books selected
by the in the borrower list.
55
Examples of Bad SRS
Documents
●
Unstructured Specifications:
– Narrative essay --- one of the
worst types of specification
document:
●
Difficult to change,
●
Difficult to be precise,
●
Difficult to be unambiguous,
●
Scope for contradictions, etc.
56
Examples of Bad SRS
Documents
●
Noise:
– Presence of text containing
information irrelevant to the problem.
●
Silence:
– aspects important to proper solution
of the problem are omitted.
57
Examples of Bad SRS
Documents
●
Overspecification:
– Addressing “how to” aspects
– For example, “Library member names should
be stored in a sorted descending order”
– Overspecification restricts the solution space
for the designer.
●
Contradictions:
– Contradictions might arise
●
if the same thing described at several places in
different ways.
58
Examples of Bad SRS
Documents
●
Ambiguity:
– Literary expressions
– Unquantifiable aspects, e.g. “good user
interface”
●
Forward References:
– References to aspects of problem
●
defined only later on in the text.
●
Wishful Thinking:
– Descriptions of aspects
●
for which realistic solutions will be hard to find.
59
The Product: SRS
●
Standards:
– IEEE / ANSI 830-1984
– DoD 2167A / DI-MCCR-80025A (SRS)
– NASA SFW-DID-08 (SRS)
– company internal standards?
60
IEEE 830-1998 Standard
– of SRS
●
Title
●
Table of Contents
●
1. Introduction
●
2. Overall Description
●
3. Specific Requirements
●
Appendices
●
Index
61
IEEE Std 830-1984
1. Introduction
1.1 Purpose of SRS
1.2 Scope of product
1.3 Definitions, acronyms,
abbreviations
1.4 Overview
62
IEEE Std 830-1984
2. General description
2.1 Product perspective
2.2 Product functions
2.3 User characteristics
2.4 General constraints
2.5 Assumptions and dependencies
63
IEEE Std 830-1984
3. Specific requirements
3.1 Functional requirements
3.2 External interface
requirements
3.3 Performance requirements
3.4 Design constraints
3.5 Attributes
3.6 Other requirements
Alternatives!
64
3. Specific Requirements
3.1 Functional Requirements
3.1.1 Func Req 1
3.1.1.1 Introduction
3.1.1.2 Inputs
3.1.1.3 Processing
3.1.1.4 Outputs
3.1.2 Func Req 2
…
3.2 External Interface Requirements
3.2.1 User Interface
3.2.2 Hardware Interfaces
3.2.3 Software Interfaces
3.2.4 Communication Interfaces
3.3 Performance Requirements
3.4 Design Constraints
3.4.1 Standards Compliance
3.4.2 Hardware Limitations
3.5 Attributes
3.5.1 Security 65
IEEE 830
3.5.2 Maintainability
IEEE 830-1998 Standard
– Structure of the SRS
●
Section 4 & 5 of IEEE 830
66
66
IEEE 830-1998 Standard
– Section 1 of SRS
●
Title
●
Table of Contents
●
1. Introduction •Describe purpose of this SRS
– 1.1 Purpose •Describe intended audience
●
Index 67
IEEE 830-1998 Standard –
Section 2 of SRS
•Present the business case and operational concept of the system
●
Title •Describe how the proposed system fits into the business context
•Describe external interfaces: system, user, hardware, software,
●
Table of Contents communication
•Describe constraints: memory, operational, site adaptation
●
1. Introduction
●
2. Overall Description
– 2.1 Product Perspective
– 2.2 Product Functions •Summarize the major functional capabilities
•Include the Use Case Diagram and supporting narrative
– 2.3 User Characteristics (identify actors and use cases)
•Include Data Flow Diagram if appropriate
– 2.4 Constraints •Describe and justify technical skills and
capabilities of each user class
– 2.5 Assumptions and Dependencies
●
3. Specific Requirements
4. Appendices
•Describe other constraints that will limit developer’s options;
●
e.g., regulatory policies; target platform, database, network
software and protocols, development standards requirements
●
5. Index
States assumptions about availability of certain 68
resources that, if not satisfied, will alter system
requirements and/or effect the design.
IEEE 830-1998 Standard
– Section 3 of SRS (1)
●
1. Introduction Specify software requirements in sufficient
detail to enable designers to design a system to
●
2. Overall Description satisfy those requirements and testers to verify
requirements
●
3. Specific Requirements State requirements that are externally
perceivable by users, operators, or externally
– 3.1 External Interfaces connected systems
Requirements
The descriptions of the system
services and constraints
•Requirements
that are generated during the
engineering helps software
requirements engineering
engineers to better
process.
understand the problem
they will work to solve.
72
Requirement Analysis
Requirements Engineering-
●
Task
Inception—ask a set of context-free
questions that establish …
– basic understanding of the problem
– the people who want a solution
– the nature of the solution that is desired,
and
– the effectiveness of preliminary
communication and collaboration between
the customer and the developer
●
Elicitation—elicit requirements from
all stakeholders
(Elicitation is the act of obtaining language
data from another person.)
73
Requirement Analysis
Requirements Engineering-
Task CONT…
●
Elaboration— The data collected in
inception & elicitation is expanded
and refined during elaboration.
– create an analysis model that identifies
data, function and behavioral
requirements.
●
Negotiation—agree on a deliverable
system that is realistic for
developers and customers.
74
Requirement Analysis
Requirements Engineering-
Task CONT…
●
Specification—can be any one (or more) of the
following:
– A written document
– A set of models
– A formal mathematical
– A collection of user scenarios (use-cases)
– A prototype
●
Validation—a review mechanism that looks for
– errors in content or interpretation
– areas where clarification may be required
– missing information
– inconsistencies (a major problem when large
products or systems are engineered)
– conflicting or unrealistic (unachievable)
requirements.
75
Requirement Analysis
Requirements Engineering-
Task CONT…
●
Requirements Management
– It is a set of activities that help the project
team to identify, control, and track
requirements and changes to requirements
at any time the project proceeds.
– Many activities are similar to configuration
management.
76
Requirement Analysis
Steps required for “Initiating”
The Requirements Engineering
Process
1. Identifying the Stakeholders
78
Decision Trees
●
Decision trees:
– Edges of a decision tree represent
conditions
– Leaf nodes represent actions to be
performed.
●
A decision tree gives a graphic view
of:
– Logic involved in decision making
– Corresponding actions taken.
79
Example: LMS
●
A Library Membership
automation Software (LMS)
should support the following
three options:
– New member,
– Renewal,
– Cancel membership.
80
Example: LMS
●
When the new member option
is selected,
– The software asks details about
the member:
●
name,
●
address,
●
phone number, etc.
81
Example(cont.)
●
If proper information is entered,
– A membership record for the
member is created
– A bill is printed for the annual
membership charge plus the
security deposit payable.
82
Example(cont.)
●
If the renewal option is chosen,
– LMS asks the member's name and his
membership number
●
checks whether he is a valid member.
– If the name represents a valid member,
●
the membership expiry date is updated
and the annual membership bill is printed,
●
otherwise an error message is displayed.
83
Example(cont.)
●
If the cancel membership option
is selected and the name of a
valid member is entered,
– The membership is cancelled,
– A cheque for the balance amount
due to the member is printed
– The membership record is deleted.
84
Decision Tree
- Get details
- Create record
- Print bills
New member
- Get Details
User Renewal - Update record
- Print bills
input
Cancel - Get Details
- Print Cheque
- Delete record
Invalid
option
- Print error message
85
Decision Table
●
Decision tables specify:
– Which variables are to be
tested
– What actions are to be taken
if the conditions are true,
– The
order in which decision
making is performed.
86
Decision Table
●
A decision table shows in a tabular
form:
– Processing logic and corresponding actions
●
Upper rows of the table specify:
– The variables or conditions to be evaluated
●
Lower rows specify:
– The actions to be taken when the
corresponding conditions are satisfied.
87
Decision Table
●
In technical terminology,
–a column of the table is called
a rule:
–A rule implies:
●
if a condition is true, then
execute the corresponding
action.
88
Example:
●
Conditions
Valid selection NO YES YES YES
New member -- YES NO NO
Renewal -- NO YES NO
Cancellation -- NO NO YES
●
Actions
Display error message -- -- --
90
Formal Specification
●
A formal specification
technique is a mathematical
method to:
– Accurately specify a system.
– Verifythat implementation
satisfies specification.
– Prove properties of the
specification.
91
Formal Specification
●
Advantages:
– Well-defined
semantics, no
scope for ambiguity
– Automated tools can check
properties of specifications
– Executable specification
92
Formal Specification
●
Disadvantages of
formal specification
techniques:
– Difficult to learn and use
– Not
able to handle
complex systems
93
Formal Specification
●
Mathematical techniques
used include:
– Logic-based
– set theoretic
– algebraic specification
– finite state machines, etc.
94
Software Change
●
Management
refers to the process of managing changes in
software applications and systems.
●
It ensures that changes are introduced in a
controlled and coordinated manner, minimizing
disruptions and maintaining system integrity.
●
This process is crucial for maintaining software
quality and reliability, especially in complex and
large-scale systems.
●
helps organizations adapt to new requirements, fix
bugs, and improve system functionality while
minimizing risks and ensuring system stability.
●
It is a crucial part of software development and IT
operations, particularly in environments that require
high reliability and security. 95
Key aspects of Software Change
Management
●
Change Request: originate from various sources,
such as customers, developers, or stakeholders. It typically
describes the desired change, its purpose, and any expected
benefits.
●
Change Evaluation: Before implementation,
changes are evaluated based on their impact, feasibility, and
risks. This step often involves a review by a change control
board (CCB)
●
Prioritization and Scheduling: Approved
changes are prioritized and scheduled based on factors like
urgency, impact, and available resources. This helps in
efficient resource allocation and planning.
●
Implementation: The actual implementation of
changes involves modifying the software code, configuration,
or infrastructure.
Testing and Validation:
96
●
Changes are thoroughly
Key aspects of Software
Change Management
●
Documentation: Proper documentation is crucial for
understanding the changes made, including the reason for the
change, and the expected outcome. This helps in future
maintenance and audits.
●
Monitoring and Review: After deployment, the
changes are monitored to ensure they operate as expected.
Any issues that arise are addressed promptly.
●
Rollback and Contingency Planning: In case
a change causes issues, a rollback plan should be in place.
●
Communication and Training: Stakeholders,
including end-users, developers, and support teams, should be
informed about the changes. Clear communication ensures
everyone is aware of new features, or new procedures.
97
Software Configuration
Management (SCM)
●
SCM is a discipline within software engineering that
focuses on controlling and managing changes to
software products throughout their lifecycle. It
ensures the integrity, traceability, and reproducibility
of software configurations.
●
SCM is crucial in maintaining consistency, preventing
conflicts, and enabling efficient collaboration among
development teams.
●
SCM is an essential practice in modern software
development, especially in environments that
require frequent updates, multiple developers, and
complex software systems. It supports effective
project management, reduces risks, and improves
the overall quality and reliability of software 98
Key Components of SCM
1. Configuration Identification
– Definition: Identifying configurations, cofiguration items and baselines.
This includes source code files, libraries, documentation, and
configuration files.
– Configuration item (CI) refers to the fundamental structural unit of a
configuration management system
– Baselines: It is an agreed description of the attributes of a product, at a
point in time, which serves as a basis for defining change. A change is a
movement from this baseline state to a next state. The identification of
significant changes from the baseline state is the central purpose of
baseline identification. A baseline is a reference point.
2. Configuration Control
– Definition: The process of managing changes to the software
configuration, ensuring that only approved changes are made. This
involves:
●
Change Request: Proposals for changes are submitted, documented,
and reviewed.
●
Change Control Board (CCB): A group or commitee of stakeholders
responsible for approving or rejecting change requests (based on99their
impact, necessity, and feasibility) that are sent against any baseline.
Key Components of SCM
3. Configuration Status Accounting
– Definition: The process of recording and reporting the status
of configuration items (CIs) throughout the lifecycle. This
includes tracking changes, versions, and baselines.
– Reporting: Provides information on what changes have been
made, by whom, when, and why, helping in audits and
compliance.
4. Version Control
– Definition: Version control systems (VCS) track and manage
changes to software code and associated documentation.
– Types: There are two main types of version control systems:
●
Centralized Version Control Systems (CVCS), which have a single,
central repository.
●
Distributed Version Control Systems (DVCS): full copy of the
repository, including its entire history.
100
Key Components of SCM
5. Configuration Audits
– Definition: The process of verifying that the software configuration
items are consistent with their documentation and meet specified
requirements.
– Types:
●
Functional Configuration Audit (FCA): Ensures that the software
performs the functions described in its specifications.
●
Physical Configuration Audit (PCA): Verifies that the software and
its documentation are complete and accurate.
6. Build Management
– Definition: The process of compiling and linking source code into
executable software. This involves automating the build process,
managing build scripts, and ensuring that the correct versions of
source code and dependencies are used.
– Continuous Integration (CI): An SCM practice where developers
frequently integrate their code changes into a shared repository,
followed by automated builds and tests. This helps in detecting
issues early in the development process.
101
Key Components of SCM
7. Release Management
– Definition: The process of managing, planning, and scheduling the
deployment of software releases. It includes preparing release
notes, packaging the software, and deploying it to the production
environment.
– Versioning: Assigning version numbers to releases to identify
different stages of the software's evolution (e.g., alpha, beta,
release candidates, final releases).
8. Environment Management
– Definition: The management of different environments
(development, testing, production) in which the software operates.
9. Backup and Recovery
– Definition: Implementing strategies for backing up software
configurations and ensuring that they can be recovered in case of
data loss or corruption.
102
Benefits of SCM
●
Consistency: Ensures that all developers are working
with the same versions of software components.
●
Traceability: Provides the ability to trace changes
back to their origins, understanding who made changes and
why.
●
Collaboration: Facilitates collaboration among
multiple developers and teams, reducing the chances of
conflicts.
●
Quality Assurance: Helps maintain the quality of
the software by ensuring that changes are properly reviewed
and tested before being integrated.
●
Compliance: Assists in meeting regulatory and
compliance requirements by maintaining accurate records of
software configurations and changes.
103
Key Differences of Software Change
Management and cofiguration
management
●
Scope: SCM has a broader scope, covering all aspects of
managing software artifacts, while Software Change
Management focuses specifically on changes to the software.
●
Activities: SCM includes configuration identification,
control, status accounting, and audit. Software Change
Management deals specifically with the process of handling
change requests, impact analysis, approval, implementation,
and verification.
●
Goal: The goal of SCM is to maintain the integrity and
traceability of the software throughout its lifecycle. The goal
of Software Change Management is to ensure that changes
are introduced smoothly, with minimal disruption and
maximum benefit.
104
Key Differences of Software Change
Management and cofiguration
management
●
In summary, Software Change Management is a
component of the broader Software Configuration
Management process. Software Change Management is a
subset of Software Configuration Management.
●
Software Change Management focused specifically on
managing the process of making changes to software
systems. It deals with the identification, assessment, and
implementation of changes to the software. Change
Management focuses on the controlled introduction of
changes to those artifacts. While SCM ensures overall
consistency and integrity of software artifacts,
105