software configuration management donna albino lis489, december 3, 2014

17
Software Configuration Management Donna Albino LIS489, December 3, 2014

Upload: noah-murphy

Post on 17-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Software Configuration Management

Donna AlbinoLIS489, December 3, 2014

Why do I need it?• Do you have multiple people working on software development?• Do you have multiple clients for your software? Do they want to

have exactly the same version of software as all the others, or will they want custom solutions?

• Does your client want to be able to roll back to an older version if a new version does not function correctly?

• Do you want to be able to do new development on a file, and still have a way of rolling back to a released version of the file in order to investigate a bug report?

• Do you want to keep track of which versions of compilers and development tools you used to create your software, and be able to know when you updated tools in your software development?

Benefits of Software Configuration Management

• Track changes in software– What bugs do we have to fix?– What requirement does this bug trace back to?– Who is assigned to fix each bug?– A new release to your client/clients will include which fixes?– What files did each fix involve, and what lines changed?– What happens if several people are creating changes in the

same file?• Easily roll back to a previous version to undo a fix, or make another

change if the fix is incomplete• Create an archive of the changed files that can be installed on

multiple machines

How does it work?• Create baseline

– What files will be part of it?– One baseline, or more?

• Check files out– For reading? Or for editing?– Current version? Or an earlier version?

• Check files in, or discard changes and revert to a previous version• Add new files to the baseline, or delete obsolete ones• Get information about files

– What is being edited?– What is the latest version?– What is the history on this file?

• Create new releases• Comparing files under control

Branches and Merges

Branches and Merges

What to look for in tools?

• Open source vs. proprietary• How it deals with two people wanting the

same file for different fixes• How it deals with merging fixes that affect the

same file• Do you want only version control, or do you

want bug tracking, requirements tracing, wikis, blogs, etc.

Implementation Differences

• File locking vs File Merging• Client-server vs Distributed

File Locking

• Some tools guarantee that only one developer has access to a file at one time by locking the file.

• If someone has it checked out for editing, no one else can check it out.

• Advantage: no merging problems• Disadvantage: serial development takes

longer, or developers don’t use the tools

Version Merging

• Look for split screen merging – Easy to see your change vs baseline and select

appropriate action at each merge point• Merges in image files will be challenging– If you anticipate this, talk with the vendor and see

if they support what you need to do

Unified Modeling Language (UML)

Distributed vs Client-ServerRevision Control

• Client-server: Single central repository against which a developer merges

• Distributed: Each developer owns a working copy of the code base, and swaps patches among themselves

• Distributed system plus:– Faster; no communication with central server– Each developer’s working copy is a backup of the code base

• Distributed system minus:– No baseline exists by default, only working copies

A look at a few tools

• SCCS• SVN• Clearcase

SCCS

• Source Code Control System• Bundled with Unix, open source• Stable; no active development• Checkouts done one file at a time• File locking• Text-based• Client-server• Construct a release by creating a set of file

versions

SVN

• Subversion• Apache, open source• Check out a copy of the whole baseline• Client-server• Can move directories and files around in the

source tree without losing history• Merging needs work– Integration with IBM Rhapsody is buggy

Clearcase

• Rational Software division of IBM, proprietary• Create a view (sandbox with read-only source)• Check out files within your view• Configuration spec coordinates what other baselines you

are using• Integrates with Clearquest for tracking bugs and DOORS for

referencing requirements• Produces a Configuration Record, which contains the build

procedure, all the input files, and all the derived files that are part of a release

• Text interface or graphic interface

Many other tools

• RCS, CVS influenced many newer tools• Git designed by Linus Torvalds for Linux– An example of distributed revision control

• SVK is a distributed version of SVN• Fossil is a cross-platform system of version

control and bug tracking• cmcrossroads.com