Presentation is loading. Please wait.

Presentation is loading. Please wait.

Configuration Management

Similar presentations


Presentation on theme: "Configuration Management"— Presentation transcript:

1 Configuration Management

2 Configuration Management
Real software systems are huge and involve many components, and multiple engineers working simultaneously on components. This raises many problems related to managing components and the work done on them. Configuration management addresses these problems.

3 Definitions Configuration: the constituent components of a software product (including all of its versions) Configuration management: the discipline of coordinating software development and controlling the change and evolution of software products and components

4 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

5 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

6 Sharing Artifacts: Problems
Suppose you and I both want to modify stack.c What if we just both go ahead? How about if I physically take the file? How about if we each make private copies of it?

7 Sharing Artifacts: Solutions
Make single writer, multiple reader the norm; provide for occasional controlled multiple updates (RCS) Allow multiple writers (optimistic rather than pessimistic) but police checkins (CVS) Either solution requires merge abilities More difficult with dependencies Sharing requires co-ordination of effort

8 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

9 Product Families Programs have components, which have versions and variants Versions are new instances Variants are concurrent instances Versioning schemes help manage product families

10 An Example of Versioning
3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.1.2 3.1.8 3.2.0 3.2.1 First digit: major version Second digit: minor version Third digit: bugfix version 4.0.0

11 An Example of Versioning
3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.1.2 3.1.8 3.2.0 3.2.1 What challenges exist here? 4.0.0

12 Managing Product Families
Possible approaches: Keep separate copy of all materials for each version and variant Keep common code, with deltas for variants (how to manage this?) Other issues: What to keep under configuration management Basic objects vs derived objects When do we abandon versions?

13 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

14 Overseeing Change Imagine engineers just fixed things when they thought they needed to. What could happen? Need: formal/rigorous processes for managing and monitoring changes

15 The Change Management Process
Request change by completing a change request form Analyze change request If change is valid then Assess how change might be implemented Assess change cost Submit request to change control board If change is accepted then Repeat Make changes to software Submit changed software for quality approval Until software quality is adequate Create new system version Else Reject change request

16 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

17 Documentation When systems change, who needs to know?
How do we manage this?

18 Change Request Form Project: Dejavu Number: 1436
Change requester: A. Kinneer Date: 08/16/2007 Requested changes: Postpone test suite union operation until all dangerous edges have been selected Change analyzer: H. Do Analysis date: 08/24/2007 Components affected: SelectTests, EdgeCompare Associated components: None Change assessment: Requires change to interfaces to allow passing edge set, otherwise relatively simple and will improve efficiency. Change priority: Medium Estimated effort: 0.5 days Date to CCB: 08/26/2007 CCB decision date: 09/10/2007 CCB decision: Accept change; implement in release 3.2 Change implementor: Date of change: Date submitted to QA: QA decision: Date submitted to CM: Comments:

19 Configuration Mgmt Problems
Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

20 CM Tools CVS: www.nongnu.org/cvs/ SVN: subversion.apache.org
A mature CM tool SVN: subversion.apache.org Built on CVS, better for distributed collaboration over the net GIT: github.com A web-based CM hosting site TortoiseSVN: tortoisesvn.net An SVN client that operates on Windows through Explorer

21 Questions to ask when Learning a Configuration Management System
How is sharing supported? Policy for readers/writers? How to check things out? How to check things in? How to check for conflicts? How to add/delete items? How to get started? How are merges handled?

22 Questions to ask when Learning a Configuration Management System
How are product families supported? What versioning scheme is used? How to mark releases? Documentation support? What is required for transactions? What info is available to maintainers? Process support? What processes are supported or assumed? Policy for readers/writers?

23 Example: CVS command-line commands
CVS help CVS import CVS checkout CVS commit CVS update CVS log CVS diff CVS remove CVS add Print basic info on CVS commands Import sources into CVS Checkout sources for editing Check files into the repository Bring workspace & repository into sync Print history information for a file Show differences between revisions Remove an entry from the repository - Register a new entry for addition


Download ppt "Configuration Management"

Similar presentations


Ads by Google