Software Configuration Management Visiting Lecture Tero 1
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 2
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 3
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 4
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 management is a part of SCM 5
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! 6
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 7
Four SCM processes Configuration identification Change management Status accounting Audit and review 8
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 9
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 10
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 11
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 12
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 13
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 Too simple to be practical 14
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 15
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 16
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 17
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 18
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 19
Technical SCM The tool oriented SCM Traditional SCM Everything presented in the first part What your coursebook presents 20
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 21
Tools Version control Build management Change management Audit / review systems Bug tracking Issue management 22
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 23
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 24
Thank you for your interest! 25
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/cmwiki.html IEEE standards 828 and 1042; plans and activities respectively 26