SlideShare a Scribd company logo
Subject: Software Engineering & Project Management
Topic: Software Configuration Management
Shared by: Ms. K.D. Patil, SRES's SCOE, Kopargaon
What is Change Management
When you build a computer system, changes
happen,And because it happens, you need to manage it
effectively.
Deliverables of large s/w project consist of number of
objects, e. g. source code, design document, SRS
document, test document, user manual etc.
These objects are referred & monitored by number of
s/w engs. throughout the lifecycle of the system
The state of these objects at any point of time is called
‘configuration’ of s/w product.
3
What is Change Management
Also called software configuration management (SCM)
It is an umbrella activity that is applied throughout the
software process
It's goal is to maximize productivity by minimizing mistakes
caused by confusion when coordinating software development
SCM identifies, organizes, and controls modifications to the
software being built by a software development team
SCM activities are formulated to identify change, control
change, ensure that change is being properly implemented, and
report changes to others who may have an interest
4
What is Change Management(continued)
• SCM is initiated when the project begins and terminates when
the software is taken out of operation
• View of SCM from various roles (SCM Scenario)
– Project manager -> an auditing mechanism
– SCM manager -> a controlling, tracking, and policy making
mechanism
– Software engineer -> a changing, building, and access
control mechanism
– Customer -> a quality assurance and product identification
mechanism
5
Software Configuration
• The Output from the software process makes up the software
configuration
– Computer programs (both source code files and executable
files)
– Work products that describe the computer programs
(documents targeted at both technical practitioners and
users)
– Data (contained within the programs themselves or in
external files)
• The major danger to a software configuration is change
– First Law of System Engineering: "No matter where you are
in the system life cycle, the system will change, and the
desire to change it will persist throughout the life cycle"
6
Origins of Software Change
• New business or market conditions dictate changes in
product requirements or business rules
• New customer needs demand modifications of data
produced by information systems, functionality
delivered by products, or services delivered by a
computer-based system
• Reorganization or business growth/downsizing causes
changes in project priorities or software engineering
team structure
• Budgetary or scheduling constraints cause a redefinition
of the system or product
7
Elements of a Configuration
Management System
• Configuration elements
– A set of tools coupled with a file management (e.g.,
database) system that enables access to and management of
each software configuration item
• Process elements
– A collection of procedures and tasks that define an effective
approach to change management for all participants
• Construction elements
– A set of tools that automate the construction of software by
ensuring that the proper set of valid components (i.e., the
correct version) is assembled
• Human elements
– A set of tools and process features used by a software team to
implement effective SCM
8
Baseline
• An SCM concept that helps practitioners to control
change without seriously impeding justifiable change
• IEEE Definition: A specification or product that has
been formally reviewed and agreed upon, and that
thereafter serves as the basis for further development,
and that can be changed only through formal change
control procedures
• It is a milestone in the development of software and is
marked by the delivery of one or more computer
software configuration items (SCIs) that have been
approved as a consequence of a formal technical
review
• A SCI may be such work products as a document, a test
suite, or a software component
9
Baselining Process
10
Baselining Process
1) A series of software engineering tasks produces a SCI
2) The SCI is reviewed and possibly approved
3) The approved SCI is given a new version number and
placed in a project database (i.e., software repository)
4) A copy of the SCI is taken from the project database and
examined/modified by a software engineer
5) The baselining of the modified SCI goes back to Step #2
11
Software Configuration Item (SCI)
SCI is information that is created as a part of the
s/w engineering process.
It can be a document, a entire suit of test cases, a
named program component like a C++ function or a
java applet.
Not only the SCI’s which are derived from
different work products are placed in configuration
control, but also some of the imp. tools like
compilers, linkers, browsers, editors, other
automated tools are also a part of configuration
control.pilers)
12
Software Configuration Item
13
Software Configuration Item (SCI)
compilers)In reality, all SCI’s are organized to form configuration objects &
is placed in project database with a single name.
A configuration object has a name, attributes & is connected to
other objects by a relationship.
The configuration objects, Design Specification, DataModel,
ComponentN, SourceCode & TestSpecification are each defined
seperately.
Each of the object is related to others as shown by arrows.
A curved arrow indicates a compositional relation. i.e.
DataModel & ComponentN are part of DesignSpecification.
A double headed straight arrow indicates an interrelationship.
If a change were made to the source code object, the
interrelationship enables a s/w engineer to determine what other
objects might be affected?
14
The SCM Repository
15
Paper-based vs. Automated Repositories
• Problems with paper-based repositories (i.e., file cabinet containing
folders)
– Finding a configuration item when it was needed was often difficult
– Determining which items were changed, when and by whom was
often challenging
– Constructing a new version of an existing program was time
consuming and error prone
– Describing detailed or complex relationships between configuration
items was virtually impossible
• Today's automated SCM repository
– It is a set of mechanisms and data structures that allow a software
team to manage change in an effective manner
– It acts as the center for both accumulation and storage of software
engineering information
– Software engineers use tools integrated with the repository to
interact with it
16
Automated SCM Repository
Functions
Data integrity
Information sharing
Tool integration
Data integration
Methodology enforcement
Document standardization
Versioning
Dependency
tracking
Change
management
Requirements
tracing
Configuration
management
Audit
trails
SCM Repository
17
The Role of SCM Repository
• Data integrity
– Validates entries, ensures consistency, cascades modifications
• Information sharing
– Shares information among developers and tools, manages and
controls multi-user access
• Tool integration
– Establishes a data model that can be accessed by many software
engineering tools, controls access to the data
• Data integration
– Allows various SCM tasks to be performed on one or more CSCIs
• Methodology enforcement
– Defines an entity-relationship model for the repository that implies
a specific process model for software engineering
• Document standardization
– Defines objects in the repository to guarantee a standard approach
for creation of software engineering documents
18
Content of the Repository
19
SCM Features
• Versioning
– Save and retrieve all repository objects based on version number
• Dependency tracking and change management
– Track and respond to the changes in the state and relationship of
all objects in the repository
• Requirements tracing
– (Forward tracing) Track the design and construction components
and deliverables that result from a specific requirements
specification
– (Backward tracing) Identify which requirement generated any
given work product
• Configuration management
– Track a series of configurations representing specific project
milestones or production releases
• Audit trails
– Establish information about when, why, and by whom changes
are made in the repository
20
The SCM Process
21
Primary Objectives of the
SCM Process
• Identify all items that collectively define the software
configuration
• Manage changes to one or more of these items
• Facilitate construction of different versions of an
application
• Ensure the software quality is maintained as the
configuration evolves over time
• Provide information on changes that have occurred
22
SCM Questions
• How does a software team identify the discrete elements of a
software configuration?
• How does an organization manage the many existing versions
of a program (and its documentation) in a manner that will
enable change to be accommodated efficiently?
• How does an organization control changes before and after
software is released to a customer?
• Who has responsibility for approving and ranking changes?
• How can we ensure that changes have been made properly?
• What mechanism is used to appraise others of changes that are
made?
23
SCM Tasks
Status reporting
CSCI
CSCI
CSCI
CSCI
Identification
Change control
Version control
Configuration auditing
24
SCM Tasks (continued)
• Concentric layers (from inner to outer)
– Identification
– Change control
– Version control
– Configuration auditing
– Status reporting
• SCIs flow outward through these layers during their life cycle
SCIs ultimately become part of the configuration of one or more
versions of a software application or system
 E.g. When a new SCI is created, it must be identified.
However, if no changes are requested for the SCI, the change
control layer does not apply.
25
Identification Task
• Identification separately names each CSCI and then
organizes it in the SCM repository using an object-oriented
approach
• Objects start out as basic objects and are then grouped into
aggregate objects
• Each object has a set of distinct features that identify it
– A name that is unambiguous to all other objects
– A description that contains the CSCI type, a project
identifier, and change and/or version information
– List of resources needed by the object
– The object realization (i.e., the document, the file, the
model, etc.)
26
Change Control
• 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 baselined CSCI 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
27
Change Control Process
28
29
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
• Required version control capabilities
– An SCM repository that stores all relevant configuration objects
– A version management capability that stores all versions of a
configuration object (or enables any version to be constructed using
differences from past versions)
– A make facility that enables the software engineer to collect all
relevant configuration objects and construct a specific version of the
software
– Issues tracking (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
30
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 the change specified in the ECO been made? Have any
additional modifications been incorporated?
– 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?
31
– Has the change been "highlighted" and "documented" in the
CSCI? 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 CSCIs been properly updated?
• A configuration audit ensures that
– The correct CSCIs (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
Configuration Audit
32
Status Report
• 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 CSCI is assigned new or updated information
– Each time a change is approved by the CCB and an ECO is issued
– 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 CSCIs

More Related Content

PPTX
Dm from databases perspective u 1
PPTX
Temporal database
PPTX
RMMM Plan
PDF
File Types in Data Structure
PDF
PPT
Chapter 15 software product metrics
PPTX
Software requirements specification
PDF
Code optimization in compiler design
Dm from databases perspective u 1
Temporal database
RMMM Plan
File Types in Data Structure
Chapter 15 software product metrics
Software requirements specification
Code optimization in compiler design

What's hot (20)

PPSX
ARIES Recovery Algorithms
PPTX
Ooad unit – 1 introduction
PPTX
Crash recovery in database
PDF
DIGITAL IMAGE PROCESSING - LECTURE NOTES
PPTX
Recovery with concurrent transaction
PPTX
Parallel Programing Model
PPTX
Lect4 software economics
PPTX
Statistical Software Quality Assurance.pptx
PDF
Unit 4-input-output organization
PPTX
Computer Organization and Architecture.pptx
PPT
1.8 discretization
PPTX
Staffing level estimation
PPT
2.1 Data Mining-classification Basic concepts
PPTX
OLAP & DATA WAREHOUSE
PPT
clock synchronization in Distributed System
PDF
Image compression
PPTX
Decomposition methods in DBMS
PPTX
Decomposition technique In Software Engineering
PDF
Control Unit Design
ARIES Recovery Algorithms
Ooad unit – 1 introduction
Crash recovery in database
DIGITAL IMAGE PROCESSING - LECTURE NOTES
Recovery with concurrent transaction
Parallel Programing Model
Lect4 software economics
Statistical Software Quality Assurance.pptx
Unit 4-input-output organization
Computer Organization and Architecture.pptx
1.8 discretization
Staffing level estimation
2.1 Data Mining-classification Basic concepts
OLAP & DATA WAREHOUSE
clock synchronization in Distributed System
Image compression
Decomposition methods in DBMS
Decomposition technique In Software Engineering
Control Unit Design
Ad

Similar to Unit 6 Software Configuration Management (20)

PPT
Software configuration management, Web engineering
PPT
Mod5-SCM.ppt
PPT
Mod5-SCM.ppt
PPT
Fa10 mcs-005
PPTX
Lecture 06 Software Configuration Management
PPT
lecture14.ppt
PPT
Software Configuration Management introduction
PPT
Software configuration management of students
PPT
Software maintenance and configuration management, software engineering
PPT
Software Engineering (Software Configuration Management)
PDF
software configuration management
PPT
software configuratiom management role n resposnbilities
PDF
chapter no 2softwareprocess-160107000546.f
PPTX
SE-Lecture-8.pptx
PPTX
Software process
PPT
PDF
Software Engineering Important Short Question for Exams
PDF
softwareMaintenance.pdf
PPTX
Software Configuration Management PPT for Software Engg
PDF
SE2018_Lec 21_ Software Configuration Management (SCM)
Software configuration management, Web engineering
Mod5-SCM.ppt
Mod5-SCM.ppt
Fa10 mcs-005
Lecture 06 Software Configuration Management
lecture14.ppt
Software Configuration Management introduction
Software configuration management of students
Software maintenance and configuration management, software engineering
Software Engineering (Software Configuration Management)
software configuration management
software configuratiom management role n resposnbilities
chapter no 2softwareprocess-160107000546.f
SE-Lecture-8.pptx
Software process
Software Engineering Important Short Question for Exams
softwareMaintenance.pdf
Software Configuration Management PPT for Software Engg
SE2018_Lec 21_ Software Configuration Management (SCM)
Ad

More from KanchanPatil34 (20)

PDF
Unit 1_Data Validation_Validation Techniques.pdf
PDF
Unit 1_Concet of Feature-Feature Selection Methods.pdf
PDF
Unit 1_Introduction to ML_Types_Applications.pdf
PDF
Unit 6_Cyber Laws Indian Act_Digital Signature.pdf
PDF
Unit 6_DoS and DDoS_SQL Injection_tools.pdf
PDF
Unit 6_keylogger_Spywares_virus_worms.pdf
PDF
Unit 6_Introduction_Phishing_Password Cracking.pdf
PDF
Unit 5_Social Engineering and Cyberstalking.pdf
PDF
Unit 5_Classification of Cyber Crimes.pdf
PDF
Unit 5_Introduction to Cyber Security.pdf
PDF
Unit 4_SSL_Handshake Protocol_Record Layer Protocol.pdf
PDF
Unit 4_IPSec_AH_ESP_IKE_SA_Tunnel_Transport.pdf
PDF
Unit 3_Private Key Management_Protection.pdf
PDF
Unit 3_Kerberos Protocol_Working_Version.pdf
PDF
Unit 3_Digital Certificate_Intro_Types.pdf
PDF
Unit 3_Digital Signature Model Details.pdf
PDF
Unit 3_Hash function and MD5 working.pdf
PDF
Unit 3_Secure Hash Algorithm_SHA_Working.pdf
PDF
AES Solved Example on Encryption all rounds.pdf
PDF
Unit 2_AES_AES_Structure_Encryption_Example.pdf
Unit 1_Data Validation_Validation Techniques.pdf
Unit 1_Concet of Feature-Feature Selection Methods.pdf
Unit 1_Introduction to ML_Types_Applications.pdf
Unit 6_Cyber Laws Indian Act_Digital Signature.pdf
Unit 6_DoS and DDoS_SQL Injection_tools.pdf
Unit 6_keylogger_Spywares_virus_worms.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 5_Social Engineering and Cyberstalking.pdf
Unit 5_Classification of Cyber Crimes.pdf
Unit 5_Introduction to Cyber Security.pdf
Unit 4_SSL_Handshake Protocol_Record Layer Protocol.pdf
Unit 4_IPSec_AH_ESP_IKE_SA_Tunnel_Transport.pdf
Unit 3_Private Key Management_Protection.pdf
Unit 3_Kerberos Protocol_Working_Version.pdf
Unit 3_Digital Certificate_Intro_Types.pdf
Unit 3_Digital Signature Model Details.pdf
Unit 3_Hash function and MD5 working.pdf
Unit 3_Secure Hash Algorithm_SHA_Working.pdf
AES Solved Example on Encryption all rounds.pdf
Unit 2_AES_AES_Structure_Encryption_Example.pdf

Recently uploaded (20)

PPTX
web development for engineering and engineering
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
additive manufacturing of ss316l using mig welding
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT
Mechanical Engineering MATERIALS Selection
PDF
composite construction of structures.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
Digital Logic Computer Design lecture notes
web development for engineering and engineering
Arduino robotics embedded978-1-4302-3184-4.pdf
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Embodied AI: Ushering in the Next Era of Intelligent Systems
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Lecture Notes Electrical Wiring System Components
additive manufacturing of ss316l using mig welding
Strings in CPP - Strings in C++ are sequences of characters used to store and...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Mechanical Engineering MATERIALS Selection
composite construction of structures.pdf
Foundation to blockchain - A guide to Blockchain Tech
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Structs to JSON How Go Powers REST APIs.pdf
Digital Logic Computer Design lecture notes

Unit 6 Software Configuration Management

  • 1. Subject: Software Engineering & Project Management Topic: Software Configuration Management Shared by: Ms. K.D. Patil, SRES's SCOE, Kopargaon
  • 2. What is Change Management When you build a computer system, changes happen,And because it happens, you need to manage it effectively. Deliverables of large s/w project consist of number of objects, e. g. source code, design document, SRS document, test document, user manual etc. These objects are referred & monitored by number of s/w engs. throughout the lifecycle of the system The state of these objects at any point of time is called ‘configuration’ of s/w product.
  • 3. 3 What is Change Management Also called software configuration management (SCM) It is an umbrella activity that is applied throughout the software process It's goal is to maximize productivity by minimizing mistakes caused by confusion when coordinating software development SCM identifies, organizes, and controls modifications to the software being built by a software development team SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest
  • 4. 4 What is Change Management(continued) • SCM is initiated when the project begins and terminates when the software is taken out of operation • View of SCM from various roles (SCM Scenario) – Project manager -> an auditing mechanism – SCM manager -> a controlling, tracking, and policy making mechanism – Software engineer -> a changing, building, and access control mechanism – Customer -> a quality assurance and product identification mechanism
  • 5. 5 Software Configuration • The Output from the software process makes up the software configuration – Computer programs (both source code files and executable files) – Work products that describe the computer programs (documents targeted at both technical practitioners and users) – Data (contained within the programs themselves or in external files) • The major danger to a software configuration is change – First Law of System Engineering: "No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle"
  • 6. 6 Origins of Software Change • New business or market conditions dictate changes in product requirements or business rules • New customer needs demand modifications of data produced by information systems, functionality delivered by products, or services delivered by a computer-based system • Reorganization or business growth/downsizing causes changes in project priorities or software engineering team structure • Budgetary or scheduling constraints cause a redefinition of the system or product
  • 7. 7 Elements of a Configuration Management System • Configuration elements – A set of tools coupled with a file management (e.g., database) system that enables access to and management of each software configuration item • Process elements – A collection of procedures and tasks that define an effective approach to change management for all participants • Construction elements – A set of tools that automate the construction of software by ensuring that the proper set of valid components (i.e., the correct version) is assembled • Human elements – A set of tools and process features used by a software team to implement effective SCM
  • 8. 8 Baseline • An SCM concept that helps practitioners to control change without seriously impeding justifiable change • IEEE Definition: A specification or product that has been formally reviewed and agreed upon, and that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures • It is a milestone in the development of software and is marked by the delivery of one or more computer software configuration items (SCIs) that have been approved as a consequence of a formal technical review • A SCI may be such work products as a document, a test suite, or a software component
  • 10. 10 Baselining Process 1) A series of software engineering tasks produces a SCI 2) The SCI is reviewed and possibly approved 3) The approved SCI is given a new version number and placed in a project database (i.e., software repository) 4) A copy of the SCI is taken from the project database and examined/modified by a software engineer 5) The baselining of the modified SCI goes back to Step #2
  • 11. 11 Software Configuration Item (SCI) SCI is information that is created as a part of the s/w engineering process. It can be a document, a entire suit of test cases, a named program component like a C++ function or a java applet. Not only the SCI’s which are derived from different work products are placed in configuration control, but also some of the imp. tools like compilers, linkers, browsers, editors, other automated tools are also a part of configuration control.pilers)
  • 13. 13 Software Configuration Item (SCI) compilers)In reality, all SCI’s are organized to form configuration objects & is placed in project database with a single name. A configuration object has a name, attributes & is connected to other objects by a relationship. The configuration objects, Design Specification, DataModel, ComponentN, SourceCode & TestSpecification are each defined seperately. Each of the object is related to others as shown by arrows. A curved arrow indicates a compositional relation. i.e. DataModel & ComponentN are part of DesignSpecification. A double headed straight arrow indicates an interrelationship. If a change were made to the source code object, the interrelationship enables a s/w engineer to determine what other objects might be affected?
  • 15. 15 Paper-based vs. Automated Repositories • Problems with paper-based repositories (i.e., file cabinet containing folders) – Finding a configuration item when it was needed was often difficult – Determining which items were changed, when and by whom was often challenging – Constructing a new version of an existing program was time consuming and error prone – Describing detailed or complex relationships between configuration items was virtually impossible • Today's automated SCM repository – It is a set of mechanisms and data structures that allow a software team to manage change in an effective manner – It acts as the center for both accumulation and storage of software engineering information – Software engineers use tools integrated with the repository to interact with it
  • 16. 16 Automated SCM Repository Functions Data integrity Information sharing Tool integration Data integration Methodology enforcement Document standardization Versioning Dependency tracking Change management Requirements tracing Configuration management Audit trails SCM Repository
  • 17. 17 The Role of SCM Repository • Data integrity – Validates entries, ensures consistency, cascades modifications • Information sharing – Shares information among developers and tools, manages and controls multi-user access • Tool integration – Establishes a data model that can be accessed by many software engineering tools, controls access to the data • Data integration – Allows various SCM tasks to be performed on one or more CSCIs • Methodology enforcement – Defines an entity-relationship model for the repository that implies a specific process model for software engineering • Document standardization – Defines objects in the repository to guarantee a standard approach for creation of software engineering documents
  • 18. 18 Content of the Repository
  • 19. 19 SCM Features • Versioning – Save and retrieve all repository objects based on version number • Dependency tracking and change management – Track and respond to the changes in the state and relationship of all objects in the repository • Requirements tracing – (Forward tracing) Track the design and construction components and deliverables that result from a specific requirements specification – (Backward tracing) Identify which requirement generated any given work product • Configuration management – Track a series of configurations representing specific project milestones or production releases • Audit trails – Establish information about when, why, and by whom changes are made in the repository
  • 21. 21 Primary Objectives of the SCM Process • Identify all items that collectively define the software configuration • Manage changes to one or more of these items • Facilitate construction of different versions of an application • Ensure the software quality is maintained as the configuration evolves over time • Provide information on changes that have occurred
  • 22. 22 SCM Questions • How does a software team identify the discrete elements of a software configuration? • How does an organization manage the many existing versions of a program (and its documentation) in a manner that will enable change to be accommodated efficiently? • How does an organization control changes before and after software is released to a customer? • Who has responsibility for approving and ranking changes? • How can we ensure that changes have been made properly? • What mechanism is used to appraise others of changes that are made?
  • 23. 23 SCM Tasks Status reporting CSCI CSCI CSCI CSCI Identification Change control Version control Configuration auditing
  • 24. 24 SCM Tasks (continued) • Concentric layers (from inner to outer) – Identification – Change control – Version control – Configuration auditing – Status reporting • SCIs flow outward through these layers during their life cycle SCIs ultimately become part of the configuration of one or more versions of a software application or system  E.g. When a new SCI is created, it must be identified. However, if no changes are requested for the SCI, the change control layer does not apply.
  • 25. 25 Identification Task • Identification separately names each CSCI and then organizes it in the SCM repository using an object-oriented approach • Objects start out as basic objects and are then grouped into aggregate objects • Each object has a set of distinct features that identify it – A name that is unambiguous to all other objects – A description that contains the CSCI type, a project identifier, and change and/or version information – List of resources needed by the object – The object realization (i.e., the document, the file, the model, etc.)
  • 26. 26 Change Control • 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 baselined CSCI 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
  • 28. 28
  • 29. 29 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 • Required version control capabilities – An SCM repository that stores all relevant configuration objects – A version management capability that stores all versions of a configuration object (or enables any version to be constructed using differences from past versions) – A make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software – Issues tracking (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
  • 30. 30 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 the change specified in the ECO been made? Have any additional modifications been incorporated? – 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?
  • 31. 31 – Has the change been "highlighted" and "documented" in the CSCI? 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 CSCIs been properly updated? • A configuration audit ensures that – The correct CSCIs (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 Configuration Audit
  • 32. 32 Status Report • 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 CSCI is assigned new or updated information – Each time a change is approved by the CCB and an ECO is issued – 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 CSCIs