Software Configuration Management (SCM)
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
Activities developed to identify change, control change,
ensure that change is being properly implemented and
report changes to others who may have an interest.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
Intro
SCM activities are developed to:
Important: A clear distinction between software support and SCM.
SCM is a set of tracking and control activities that are initiated when a software engineering project begins and terminates only when the software is taken out of operation.
Quick Look
Quick Look
What are the steps?
What is the work product?
How do I ensure that I've done it right?
Software Configuration Management (SCM)
The information of output of the software process divided:
The items that comprise all information produced as part of the software process are collectively called a software configuration.
As software engineering work progresses, a hierarchy of SCI (software configuration items) is created.
Software Configuration Management
4 fundamental sources of change:
A SCM Scenario
A typical configuration management (CM) operational scenario involves:
An SCM Scenario
At the operational level, the scenario involves various roles/tasks:
An SCM Scenario
Ideally, a CM system used in this scenario should support all these roles and tasks.
Elements of a SCM System
Susan Dart identifies 4 important element types, that should exist when a configuration management system is developed:
These elements are not mutually exclusive.
Baselines
IEEE defines a baseline as:
Most changes are justified!
Baselines
Baselined SCIs and project database. Most common software base lines.
Baselines
When a team member makes a modification to a base lined SCI, it is copied from a project repository into the engineer's private workspace.�
Process
Branching Strategies
How do we organize our deliveries. What branching strategies are we using?
Branching Strategies
Branch Activities
Feat1 merged into DEV (A)
Bug1 & Feat2 pulled (A) from DEV
Bug1 merged into to DEV (AB)
Feat2 pulled (AB) from DEV
Feat2 merged into DEV (ABC)
DEV ABC merged via PR to UAT
UAT ABC merged via PR into MASTER
F hotfix pulled from MASTER
Hotfix merged into MASTER (ABCF)
Bug2 pulled /ABC) from DEV
DEV + UAT updated from MASTER
Bug2 merged into DEV (ABCDF)
Bug2 pulled (ABCDF) from DEV
Bug2 merged into DEV (ABCDEF)
DEV - Main integration
Where everyone deliver their changes, via a PR (pull request) followed by a code review. If you pass, you merge.
Software engineers uses feature branches, named after tickets from a project platform ex. Jira.
UAT - User testing
Where UX, end-users test iteration features in isolation.
When all cceptance test passes UAT is merged into production.
Branch Strategy
DEV
UAT
MASTER
Development
Main integration branch, includes latest fixes and features.
User Acceptance Test
Used for testing specific test datasets in isolation.
Production
What our end-customers/users are experiencing, as we speak.
MASTER - Production
Release branches are created off the master branch for final testing and bug fixing before merging into master for production.
Software Configuration Item (SCI)
Information that is created as part of the software engineering process.
Software Configuration Item (SCI)
Defined as information that is created as part of the software engineering process.
It is possible that a new version of a tool might produce different results than the original version.
Software Configuration Item (SCI)
SCIs are organized to form configuration objects that may be cataloged in the project database with a single name.
Configuration object has a…
Notations
Software Configuration Item (SCI)
If a change were made to the “SourceCode” object, the interrelationships enable you to determine what other objects (and SCIs) might be affected.
Management of Dependencies and Changes
Dependencies needs to be considered when determining the impact of a proposed change and guiding the selection of test cases that should be used for regression testing.
Dependency management can be viewed as impact management.
Impact analysis focuses on organizational behavior as well as individual actions. Impact management involves 2 complementary aspects:
Use also bug tracking software and other electronic communication to share undocumented dependencies and problems as they arise!
The SCM Repository
A SCM repository is the set of mechanisms and data structures.
The SCM Repository
SCM repository is the set of mechanisms and data structures.
Provides the obvious functions of a modem database management system by ensuring:
In addition:
The SCM Repository
To achieve these capabilities, repositories are defined in terms of “meta-models”.
A meta-model determines:
General Features and Content
Repository features and content are best understood via 2 perspectives:
A repository should also:
General Features and Content
SCM Features
To support SCM, the repository must have a tool set that provides support for the following features:
The SCM Process
It defines a series of tasks that have 4 primary objectives to…
Achieves these objectives need not be bureaucratic and ponderous.
The SCM Process
But it must be characterized in a manner that enables a software team to develop answers to a set of complex questions:
The SCM Process
These questions lead to the definition of 5 SCM tasks.
As an SCI moves through a layer, the actions implied by each SCM task may or may not be applicable.
Layers of SCM Process
Identification of Objects in the Software Configuration
Each SCI should be separately named and then organized using an object-oriented approach. There are 2 types of objects:
Each object has a set of distinct features that identify it uniquely:
Name - Description - List of Resources - Realization
Identification of Objects in the Software Configuration
SCIs er identified via
The identification scheme for software objects must recognize that objects evolve throughout the software process.
Version Control
Capability that stores and tracks all versions of a configuration object.
Version Control
Implements or is directly integrated with 4 major capabilities:
In addition, version control and change control systems often implement…
Version Control
Several version control systems establish a “change set”, required to create a specific version of the software.
Dart notes:
“captures all changes to all files in the configuration along with the reason for changes and details of who made the changes and when.”
To accomplish this, a “system modelling” approach is applied:
Change Control
Combines human procedures and automated tools,
to provide a mechanism.
Change Control
Too much change control and we create problems. Too little, and we create other problems.
For a large software project, uncontrolled change rapidly leads to chaos.
Change request is submitted and evaluated to:
Change Control
The results of the evaluation are presented as a change report, used by:
Change Control Authority (CCA)
Engineering Change Order (ECO) – Is generated for each approved change.
Change Control
Change Control ("Check out" continued)
Change Control
Version control mechanisms, integrated within the change control process, implement 2 important elements of change management:
Change Control
Prior to an SCI becoming a baseline, only “informal change control” need be applied.
When the software product is released to customers, “formal change control” is instituted.
In some cases, the developer dispenses with the formal…
Change Control
Depending on the size and character of a software project, the CCA (Change Control Authority ) may be composed of one person - the project manager - or a number of people.
These and many other questions are addressed by the CCA.
Impact Management
Encompasses the work required to properly understand these interdependencies and control their effects on other SCIs.� - and the people who are responsible for them.
Accomplished with 3 actions:
Configuration Audit
How can a software team ensure that the change has been properly implemented? The answer is twofold:
Technical reviews
Software configuration audit
Configuration Audit
The audit asks and answers the following questions:
Status Reporting
Configuration Status Reporting (CSR) also called “status accounting is an SCM task that answers the following questions:
Status Reporting
Output from CSR may be placed in an online database or website, so that software developers or support staff can access change information by keyword category.
Summary
Umbrella activity that is applied throughout the software process.
Summary
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.