Software Configuration Management
Visiting Lecture Tero Kojo
About the lecturer
• Lectured Software Configuration Management for three years at TKK
– T-76.614 SCM
– Also a year as the course assistant
• Practical experience of several software companies – Big and small
• Currently working as an SCM Specialist at Nokia
Contents
• Goals of this lecture
• Software Configuration Management (SCM)
• Traditional view of SCM – Four SCM processes – Four SCM models
• A different approach – Technical SCM
– Social SCM
• Tools
• Some examples
• Review
Goals of this lecture
• After this lecture you should:
– Know why SCM is practised
– Understand the basic concepts of SCM
– Understand the different approaches to SCM
– Be able to apply the basic patterns of SCM to work
Software Configuration Management (SCM)
• Software configuration management is used to control the evolution of all items in the software development process.
• There are at least a hundred definitions of this on the Internet
• In essence following items that are created, tracing their use and verifying that they are created according to their respective
specifications is the art of configuration management
• Configuration management >> Version control
• Your coursebook uses the term ”Change management”
– This is a trend that originated from tool vendors, traditionally change
Reasons for SCM
• Shared code problem
• Simulataneous update problem
• Wrong delivery problem
• Wrong build problem
• Non-working build problem
• Misplaced files problem
• Documents in unknown state problem
= Whole lot of problems!
Traditional view of SCM
• SCM is a tool aided area, where people have fairly little to do
• SCM evolved from Configuration Management in the 1960’s as the US department of defence began applying CM practises to software items
• Biggest proponents of SCM have been The US department of defence and NASA
• Currently used in all software projects
• A true success story in software engineering
• SCM has turned into an essential (and invisible) part of software development infrastructure
Four SCM processes
• Configuration identification
• Change management
• Status accounting
• Audit and review
Configuration identification
• Identifying the items that can change during the software life-cycle
– Almost everything!
• Giving each item a unique identifier
• Providing location information for each item
Change management
• Controlling the changes that impact any configuration item
• A formal process that is followed
• Needs some party with the authority to make chnages to project scope and budget
Status accounting
• Who did? What did? When did?
• Verifying that each congiration item is what it shuold be
• What changes have impacted the CI
• What is the state of each CI – Draft, ready, tested,
final, end of life …
Audit and review
• Audits to:
– Verify that a configuration contains all the items it shuold and nothing else – Each configuration item is in the
configurations that they should be in and nowhere else
• Reviews to:
– Verify that CI:s are what they are supposed to be
– By what means has the CI been created?
– Were processes followed?
– Verify impacts of changes
Four SCM models
• Check-in / check-out
• Change set
• Composition
• Long transaction
Very rarely seen as pure models any more Tools implement several at the same time
However these models define the basic concepts of SCM
Check-in / check-out
• Repository for configuration items to reside in
• Versions of individual configuration items – Revision
– Variant
– (Temporary variant)
• Configuration item is checked out for change and then checked back in
• For software configuration items are normally called components
• Solution for overwriting code
Composition
• Configuration as a composition of configuration items – Abstraction level for CI:s undefined
• Usually understood as file and compiler level
• Not necessary to define!
• Dependencies between:
– Code
– Specification and code
– Code and derivative objects
• Essential build management
• Does not consider shared work
Change set
• Baseline
– A set of CI:s that form a known configuration
• Named or otherwise identifiable
• Three types: fixed, tied or abstract
• Change sets
– Also known as deltas
– Applied to baselines to form new configurations – A set of changes to CI:s that is logically grouped
• Good integration to change management
• Interoperability of several change sets is an issue
Long transaction
• Workspaces
– Isolate developers
– Everyone has a sandbox
• Co-operation models – Conservative
• Locking
• No simultaneous change
– Optimistic
• No locking
• Co-operative variants
• Provides solution to simultaneous work problem
• Doesn’t consider change management as a whole
A different approach
• A more modern view of SCM is presented by the concept of recomposition work
• Recomposition work describes all work that takes place after an initial decomposition of a task is made
• Dependencies used to present the social connections between individuals, teams and organisations
• Tool concept extended to social relations
Decomposition <> Recomposition
• Decomposition is based on the organisation at hand – Four developers – four modules
• Decomposition has long traditions in software engineering ~late 1960’s
• Recomposition is the work to put the items of the decomposition together
Technical SCM
• The tool oriented SCM
• Traditional SCM
• Everything presented in the first part
• What your coursebook presents
Social SCM
• The social relations that form the base on which software development is done on
• The essence of recomposition work
• Knowledge that is shared
• Expertise that someone has
• Comparable to silent knowledge in organisations
• The Yin to the Yang of technical SCM
Tools
• Version control
• Build management
• Change management
• Audit / review systems
• Bug tracking
• Issue management
Some examples
• Research team building a new tool for internal use
• A team of forty people distributedly developing a communication system
• A company of twenty doing implementation projects on top of a web platform
• Several hundred distributed developers creating phone software
Review
• What you should remember from today
– Traditional view of SCM – these can be used to describe the whole world of traditional SCM:
• Four processes
• Four SCM models
– Recomposition approach
• It’s all about the people
• Dependencies as social relations
• Levels of dependencies
– Tool support for SCM
– Applying SCM to practise is mostly common sense
Thank you for your interest!
For more information:
• SEI SCM site: http://www.sei.cmu.edu/legacy/scm/
• Lund University SCM: http://www.lucas.lth.se/cm/
• Scandinavian Network of Excellence in SCM (SNESCM):
http://www.cs.lth.se/SNESCM/
• CM Crossroads: http://www.cmcrossroads.com/
• CM Crossroads wiki: http://www.cmcrossroads.com/w/cm- wiki.html
• IEEE standards 828 and 1042; plans and activities respectively