Title: Software Configuration Control Tools Summary
1Software Configuration Control Tools Summary
2Software Configuration Management
- Configuration management (CM) is a discipline
whose goal is to control changes to large
software through the functions of component
identification, change tracking, version
selection and baselining, software manufacture,
and managing simultaneous updates (team work).
Tichy 1988
3The Need for Configuration Management
- Some of the problems that CM addresses
- Simultaneous update
- Shared code
- Common code
- Version control
4SCM Potential Problems
- There are many potential problems that may appear
with the SCM - Managing many items large number of documents,
code, variants. - Simultaneous updatewhen two or more developers
are working on the same code at the same time. - Shared codewhen a fix is made to code that
others rely on, they need to be notified. - Common codewhen fixes are made to reuse
libraries, or common code.
5CM System functions
- SCM systems addresses these questions
- What is the current configuration
- What is the status
- How do I control changes to the configuration
- How do I inform others of my changes
- What are the changes that have been made to the
system - Do these changes affect my code?
6SCM
- All SCM systems should ensure proper backup and
recovery processes - Configuration Control
- Change Management
- Revisions
- Versions
- Deltas/ Change Packages/ Change Sets
- Conditional Code
7SCM Member Roles
- Configuration Manager Responsible for
identifying configuration items. The
configuration manager can also be responsible for
defining the procedures for creating promotions
and releases - Change control board member Responsible for
approving or rejecting change requests - Developer Creates promotions triggered by change
requests or the normal activities of development.
The developer checks in changes and resolves
conflicts - Auditor Responsible for the selection and
evaluation of promotions for release and for
ensuring the consistency and completeness of this
release
8SCM Terms
1.0
- Baseline an authorized software work product
that can only be changed through formal change
control procedures - Version An identified and documented software
product
1.1
1.2
2.0
2.1
9SCM
1.0
- Branching A variant development path that
diverges from the primary development path - Variants An alternative form of a configuration
item
1.1
1.2
1.2.1.0
2.0
1.2.1.1
2.1
10SCM
1.0
- Merging the activity of joining modifications
performed simultaneously to different copies of
the same module
1.1
1.2
1.2.1.0
2.0
1.2.1.1
2.1
MERGE
11SCM Process
12CVS
- Concurrent Version System
- Open source project-- still widely used
- Can record the history of your source files
- For each change who, when, and comments
- Non-exclusive control access to one file by
multiple developers
13CVS functions
- Stores entire history of each file efficiently
- Allows multiple developers to work simultaneously
- Enables retrieval of old systems
- Helps manage different versions, releases
- Works for any ASCII file limited support for
binaries
14CVS
- CVS is not the following and was not designed to
be these functions - A build system
- A substitute for management or communication
15CVS
- Server should be Unix/Linux
- Local machine can be any OS
- Repository Central
- Local copy Editing
- Add, remove, commit, tag, checkout, update, diff
16CVS
- Update frequently stay in sync with repository
- Commit changes frequently
- Should not share code except through the
repository - Build early and often
- Most CVS repositories now have GUI front-ends
17CVS Screenshot (Eclipse)
18Rational ClearCase
- Powerful tool for revision control of source code
and development - Versioned file system, which can be mounted as a
virtual file system allowing for the production
of derived objects - Uses Versioned Object Bases to allow for
distributed peer-to-peer repositories (with
add-on modules)
19ClearCase Menu Options (as seen from WSAD)
20ClearCase Screenshots
- ClearCase graphical version tree GUI. The
version tree shows the versions of a repository
element and merge arrows, labels and branch names - The annotations describe the different elements
of the interface and some of the toolbar controls
all of which are accessible from the keyboard,
context menu, and toolbar menu.
21ClearCase Graphical Tree
- The first screenshot is a simple view of a
relatively new file. It was created on the
dev_ng branch, then merged onto dev_lj and
dev_anno_lj. - The 0 versions are only placeholders on empty
branches
22ClearCase Graphical View of Code Branches
http//www.mit.edu/afs/sipb/project/subversion/src
/svn/notes/guis/pics/ClearCase-lsvtree-1.gif
23ClearCase Screen 2
- Same file, but showing only versions contributing
to the version in the current view - The tooltip that shows up can also show the
versions change log - The change log can be configured to show up at
check-out which may be useful as a reminder to
the developer (and others) to see what is being
done to the file
24ClearCase2
http//www.mit.edu/afs/sipb/project/subversion/src
/svn/notes/guis/pics/ClearCase-lsvtree-2.gif
25ClearCase Screen 3
- Same as the first screen, but with Show all
Versions turned off - Only contributors, merge sources, or merge
targets are shown
26ClearCase3
http//www.mit.edu/afs/sipb/project/subversion/src
/svn/notes/guis/pics/ClearCase-lsvtree-3.gif
27ClearCase Screen 4
- Real-Life example
- At first confusing, but eventually users can get
used to it.
28ClearCase4
http//www.mit.edu/afs/sipb/project/subversion/src
/svn/notes/guis/pics/ClearCase-lsvtree-4.gif
29SCM
- Implementing SCM in your organization requires
support from all areas especially management - On larger systems, a CCB is mandatory
- Automated tools are essential for proper CM
activity
30Conclusions
- CM is changing
- Broader scope, wide-ranging responsibility,
intermingling with other disciplines - CM tools will change as well
- Design, development, deployment, and run-time,
not just implementation