Software Configuration Management Strategies and IBM® Rational® ClearCase®: A Practical Introduction, Second Edition

Book description

"I wrote that the first edition of this book "communicates much of the experience, wisdom, and insight that was acquired along the way to discovering what SCM best practices are and how to implement/deploy them." The second edition is full of even more practical experience! It not only refines and expands upon earlier strategies and best practices, it also contains even more concrete "how-to" information about implementing and deploying them."

—Brad Appleton co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration

"Read this book when you're getting started with configuration management (CM); read it again in six months and once more two years later. Software Configuration Management Strategies and IBM Rational ClearCase goes beyond the basics to provide a coherent review of CM strategies for projects of all sizes and complexities."

—Jennie Brown, CM Specialist IBM Corporation

"This book covers practical software configuration management (SCM), ClearCase UCM and ClearCase use for project teams. Every project lead and SCM specialist should (re)read this book before starting a project."

—Roger Jarrett, Senior Software Engineer IBM Rational Software

"This second edition captures vital Unified Change Management (UCM) features and concepts. It brings the entire UCM feature set full circle and lays the ground work for a successful UCM implementation; Bellagio and Milligan continue where the first edition left off. The inclusion of composite baseline concepts, single stream development, performance tuning, and other features and concepts make this the core of any old or new Unified Change Management implementation.

It is rare that a second edition of a book can hold your interest like the first. This publication does just that...this continues to be the standard for users interested in Unified Change Management deployment."

—Adam Levensohn, Manager IBM Rational Software

Software Configuration Management (SCM) can help even the largest, most complex project teams manage change, so they can deliver higher quality products faster. The First Edition of Software Configuration Management Strategies and Rational ClearCase established itself as the definitive single source for guidance on both SCM best practices and the market's leading product, IBM Rational ClearCase. This fully updated Second Edition systematically addresses the latest ClearCase and ClearQuest® innovations, while offering even deeper insight into SCM strategy and management.

The authors each draw on more than 15 years of SCM experience, and the knowledge of working with IBM Rational field teams in customer engagements worldwide. They systematically cover SCM planning and deployment, and SCM's use throughout the entire project lifecycle: development, integration, building, baselining, release deployment, and beyond. They offer practical guidance on addressing challenges that arise as projects grow in size and complexity, from managing geographically distributed teams to tracking change requests.

Coverage includes

  • Understanding basic SCM concepts, and the role, value, and components of SCM systems

  • Mastering IBM Rational's Unified Change Management (UCM) model—including today's most effective usage models, strategies, and policy configurations

  • Creating ClearCase repositories and establishing UCM environments, step-by-step

  • Working as a project manager in the ClearCase environment

  • Leveraging new ClearCase MultiSite and ClearQuest technologies to full advantage

  • Using the new ClearCase Remote Client to access centralized repositories across WANs

  • Monitoring ClearCase and tuning it for maximum performance

  • This book is valuable for everyone concerned with SCM: developers who wantSCM to be as intuitive and convenient as possible; project managers and technical leaders who must efficiently manage change; tools engineers; even IT managersevaluating SCM technologies.

    © Copyright Pearson Education. All rights reserved.

    Table of contents

    1. Copyright
      1. Dedications
    2. Praise for Software Configuration Management Strategies and IBM® Rational® ClearCase®, Second Edition: A Practical Introduction
    3. IBM Press
      1. WebSphere Books
      2. On Demand Computing Books
      3. More Books from IBM Press
      4. DB2® Books
    4. Acknowledgments
    5. About the Authors
      1. David E. Bellagio
      2. Tom Milligan
    6. Preface to the Second Edition
      1. What This Book Is About
      2. What You Need to Know Before Reading This Book
      3. Who You Are and Why You Should Read This Book
        1. For a Software Engineer
        2. For a Software Project Manager or Technical Leader
        3. For a Tools Engineer
        4. For Those Evaluating ClearCase
        5. For Experienced ClearCase Users
      4. How the Book Is Laid Out
      5. Conventions Used
        1. Commands and Notes, Warnings, and Tips
        2. UML Diagram Format
    7. 1. What Is Software Configuration Management?
      1. 1.1. SCM Best Practices
        1. 1.1.1. Identify and Store Artifacts in a Secure Repository
        2. 1.1.2. Control and Audit Changes to Artifacts
        3. 1.1.3. Organize Versioned Artifacts into Versioned Components
        4. 1.1.4. Organize Versioned Components and Subsystems intoNew Versioned Subsystems
        5. 1.1.5. Create Baselines at Project Milestones
        6. 1.1.6. Record and Track Requests for Change
        7. 1.1.7. Organize and Integrate Consistent Sets of Versions Using Activities
        8. 1.1.8. Maintain Stable and Consistent Workspaces
        9. 1.1.9. Support Concurrent Changes to Artifacts and Components
        10. 1.1.10. Integrate Early and Often
        11. 1.1.11. Ensure Reproducibility of Software Builds
      2. 1.2. SCM Tools and SCM Process
        1. 1.2.1. SCM Tools
        2. 1.2.2. SCM Process
      3. 1.3. Summary
    8. 2. Growing into Your SCM Solution
      1. 2.1. Dealing with Changing Project Requirements
        1. 2.1.1. Increasing Software System Complexity
          1. Increasing Software Size and Architectural Complexity
          2. Inclusion of Third-Party Components and Software Reuse
          3. Increasing Number of Platforms to Support
        2. 2.1.2. Increasing Project Environment Complexity
          1. Increasing Team Size and Parallel Development Support
          2. Geographically Distributed Development Teams
          3. Increasing Number and Frequency of Product Releases
        3. 2.1.3. Changing Life Cycle Phase
        4. 2.1.4. Changing Processes and Personnel
          1. Process Changes
          2. Personnel Changes
      2. 2.2. Evolution of SCM Tools
        1. 2.2.1. Five Project Team Categories
          1. Individual Projects
          2. Small Project Teams
          3. Modest Project Teams
          4. Major Project Teams
          5. Extensive Project Teams
        2. 2.2.2. In the Absence of SCM Tools
          1. Using File Copies to Support Early SCM
          2. The Shared Copy Approach
        3. 2.2.3. Early SCM Tool Support
          1. The SCM Repository and Check-Out/Check-In Model
          2. Delta Storage Mechanism
          3. Early Workspace Management
          4. Early Build Management
          5. Early Release Management/Product Maintenance
        4. 2.2.4. Modern SCM Tool Support
          1. Concurrent Changes to the Same Project Files
          2. Parallel Development Support
          3. Modern Workspace Management
          4. Modern Build and Release Management
        5. 2.2.5. Advanced SCM Tool Support
          1. Geographically Distributed Development
          2. Component-Based Development
          3. Activity-Based Configuration Management
      3. 2.3. Summary
    9. 3. An Overview of the Unified Change Management Model
      1. 3.1. What Is UCM?
      2. 3.2. The Value of UCM
        1. 3.2.1. Abstraction
        2. 3.2.2. Stability
        3. 3.2.3. Control
        4. 3.2.4. Communication
      3. 3.3. What Is ClearCase?
        1. 3.3.1. The ClearCase UCM Model
        2. 3.3.2. The UCM Baseline + Change Model
      4. 3.4. What Is ClearQuest?
      5. 3.5. ClearCase UCM Process Overview
        1. 3.5.1. The Architect
        2. 3.5.2. The Configuration Manager
        3. 3.5.3. The Project Manager
        4. 3.5.4. The Developer
        5. 3.5.5. The Integrator
      6. 3.6. The Architect: Defining the Implementation Model
        1. 3.6.1. ClearCase Components
        2. 3.6.2. Components in the Unified Modeling Language
      7. 3.7. The Configuration Manager: Setting Up the SCM Environment
      8. 3.8. The Project Manager: Managing a Project
      9. 3.9. The Developer: Joining a Project and Doing Development
      10. 3.10. The Integrator: Integration, Build, and Release
        1. 3.10.1. Releasing a Component
        2. 3.10.2. System Integration
        3. 3.10.3. Releasing Systems and Subsystems
      11. 3.11. Summary
    10. 4. A Functional Overview of ClearCase Objects
      1. 4.1. The Repository: Versioned Object Base
      2. 4.2. Workspaces: Snapshot and Dynamic Views
        1. 4.2.1. Snapshot Views
        2. 4.2.2. Web Views
        3. 4.2.3. Dynamic Views
          1. UNIX Example
          2. Windows Example
        4. 4.2.4. Differences Between Snapshot and Dynamic Views
      3. 4.3. Project Management: Projects, Streams, and Activities
        1. 4.3.1. Projects
        2. 4.3.2. Streams
          1. Types and Purposes of Streams
          2. Relationships Between Streams
          3. Parent/Child Stream Relationships Within Projects
          4. Parent/Child Stream Relationships Between Projects
          5. Extended Stream Relationships
        3. 4.3.3. Activities
          1. The Conceptual UCM Activity
          2. ClearCase Activity Objects
      4. 4.4. Versioned Objects: Elements, Branches, and Versions
        1. 4.4.1. Directory Versioning
        2. 4.4.2. Element Types
      5. 4.5. Component Management: Components and Baselines
        1. 4.5.1. Components
        2. 4.5.2. Baselines
          1. Composite Baselines
          2. Issues with Composite Baselines
      6. 4.6. Process: Labels, Attributes, Hyperlinks, Triggers
        1. 4.6.1. Labels
        2. 4.6.2. Attributes
        3. 4.6.3. Hyperlinks
        4. 4.6.4. Triggers
        5. 4.6.5. Creating and Managing Types
      7. 4.7. Building: Clearmake, Derived Objects, Configuration Records
        1. 4.7.1. Build Audit
        2. 4.7.2. Object Sharing
        3. 4.7.3. Parallel and Distributed Builds
        4. 4.7.4. Clearmake versus Classic Make
      8. 4.8. Summary
    11. 5. Establishing the Initial SCM Environment
      1. 5.1. ClearCase Architecture Basics
        1. 5.1.1. The License Server and Registry Server
        2. 5.1.2. The VOB Server and View Server
          1. VOBs and Views on the Same Server Machine
          2. VOBs and Views on Different Server Machines
          3. VOBs on a Server Machine and Views on Client Machines
        3. 5.1.3. The ALBD Server and Client Processes
        4. 5.1.4. The Multiversion File System
        5. 5.1.5. Example Hardware Configurations
          1. Evaluation Environment
          2. Basic Environment
          3. Modest Environment
          4. Complex Environment
      2. 5.2. ClearCase Hardware Resource Requirements
        1. 5.2.1. Memory Requirements
        2. 5.2.2. Disk I/O Requirements
        3. 5.2.3. Network Bandwidth and Reliability
        4. 5.2.4. CPU
        5. 5.2.5. Other Recommendations
          1. Dedicated ClearCase Servers
          2. VOB Disk Space
        6. 5.2.6. User, VOB, and View Limits
        7. 5.2.7. VOB Sizing Considerations
      3. 5.3. Monitoring and Tuning for ClearCase Performance
        1. 5.3.1. Measuring the Lowest Level
        2. 5.3.2. Measuring the Middle Level
        3. 5.3.3. Measuring the Top Level
      4. 5.4. Defining the Implementation Model
      5. 5.5. Creating the VOBs
        1. 5.5.1. Creating the PVOB Using the Command-Line Interface
        2. 5.5.2. Creating the PVOB Using the Graphical User Interface
        3. 5.5.3. Using Administration VOBs
        4. 5.5.4. Using More Than One PVOB
        5. 5.5.5. Creating VOBs and Components Using the Command-Line Interface
        6. 5.5.6. Creating VOBs and Components Using the Graphical User Interface
        7. 5.5.7. Importing Existing Source Code
      6. 5.6. Baseline Promotion Levels
      7. 5.7. Summary
    12. 6. Project Management in ClearCase
      1. 6.1. What Is a ClearCase Project?
        1. 6.1.1. Who Is Making Changes?
        2. 6.1.2. What Is Being Changed?
        3. 6.1.3. How Are Changes Being Made?
        4. 6.1.4. How Do Changes Flow and Get Integrated?
      2. 6.2. Creating a ClearCase Project
        1. 6.2.1. Identifying Your Project Manager
        2. 6.2.2. Identifying Your Components and Baselines
        3. 6.2.3. Determining Your Project's Policies
          1. Component Policies
            1. Modifiable and Read-only Components
            2. Recommended Baseline Promotion Level
          2. Deliver Policies
            1. Policies for All Deliveries
            2. Policies for Intraproject Deliveries
            3. Policies for Interproject Deliveries
          3. Access Policies
          4. View Type Defaults
        4. 6.2.4. Determining Your UCM Project Properties
          1. General
          2. ClearQuest
            1. Project Is ClearQuest-Enabled
            2. Link to This ClearQuest User Database
            3. Perform ClearQuest Action Before Work On
            4. Perform ClearQuest Action Before Delivery
            5. Transfer ClearQuest Mastership Before Delivery
            6. Perform ClearQuest Action After Delivery
            7. Transition to Complete After Delivery
            8. Transfer ClearQuest Mastership After Delivery
            9. Perform ClearQuest Action Before Changing Activity
            10. Perform ClearQuest Action After Changing Activity
            11. Transition to Complete Action After Changing Activity
        5. 6.2.5. Choosing the Location for Your Project
        6. 6.2.6. Creating Your Project
      3. 6.3. Summary
    13. 7. Managing and Organizing Your ClearCase Projects
      1. 7.1. Coordinating Multiple Parallel Releases
        1. 7.1.1. The Follow-On Project
        2. 7.1.2. The Mainline Project
        3. 7.1.3. Project Completion
        4. 7.1.4. Project Creation
        5. 7.1.5. Multiple Parallel Projects
      2. 7.2. Organizing Large Multiproject Development Efforts
        1. 7.2.1. Architecture-Oriented Project Teams
        2. 7.2.2. Feature-Oriented Project Teams
      3. 7.3. Coordinating Cooperating Projects: Independent Components
        1. 7.3.1. Project Creation
        2. 7.3.2. Iteration Planning
        3. 7.3.3. Integration
      4. 7.4. Coordinating Cooperating Projects: Shared Components
        1. 7.4.1. Project Creation
        2. 7.4.2. Iteration Planning
        3. 7.4.3. Integration
      5. 7.5. Coordinating IS/IT Development Projects
        1. 7.5.1. Choosing Which Features to Work On
        2. 7.5.2. Implementing an Approval Process
        3. 7.5.3. Performing Emergency Bug Fixes
        4. 7.5.4. Planning for a Major Release
      6. 7.6. Coordinating Documentation Projects or Small Teams
        1. 7.6.1. Project Creation
        2. 7.6.2. Joining a Project
        3. 7.6.3. Delivering Changes
        4. 7.6.4. Updating the Workspace
        5. 7.6.5. Creating Baselines
      7. 7.7. Summary
    14. 8. Development Using the ClearCase UCM Model
      1. 8.1. A Developer's Perspective of UCM
      2. 8.2. Working on a Project
      3. 8.3. Making Changes
        1. 8.3.1. Working with Activities
        2. 8.3.2. Modifying Files and Directories
        3. 8.3.3. Working from the Command Line
      4. 8.4. Delivering Changes to the Project
        1. 8.4.1. Check In Any Outstanding Checked-Out Elements
        2. 8.4.2. Rebase from the Project's Latest Recommended Baselines
        3. 8.4.3. Run the ClearCase Deliver Command
        4. 8.4.4. Build and Test the Delivery
        5. 8.4.5. Complete or Cancel the Delivery
      5. 8.5. Rebasing Your Development Stream
        1. 8.5.1. Run the Rebase Operation
        2. 8.5.2. Build and Test
        3. 8.5.3. Complete or Cancel the Rebase
      6. 8.6. Dealing With Conflicting Changes
        1. 8.6.1. Delivery Scenario 1 (No Conflicts)
        2. 8.6.2. Delivery Scenario 2 (No Conflicts)
        3. 8.6.3. Delivery Scenario 3 (With Conflicts)
        4. 8.6.4. Rebase Scenario 1 (No Conflicts)
        5. 8.6.5. Rebase Scenario 2 (With Conflicts)
        6. 8.6.6. ClearCase Merge Tools
      7. 8.7. Seamlessly Integrating with Developer's IDE
      8. 8.8. Summary
    15. 9. Integration
      1. 9.1. Software Integration
        1. 9.1.1. Merge Integration
        2. 9.1.2. Assembly Integration
        3. 9.1.3. Integration Scenarios for Teams of Differing Sizes
          1. Individual Integration
          2. Small and Modest Team Integration
          3. Major Team Integration
          4. Extensive Team Integration
      2. 9.2. Isolation and Integration with ClearCase
        1. 9.2.1. The Shared View: No Isolation
        2. 9.2.2. Branch/LATEST Development: Maximizing Integration
        3. 9.2.3. Using Branches for Isolation and Integration
        4. 9.2.4. Integration with UCM
          1. The Assembly Project
          2. The Single Stream Project
          3. The Traditional Parallel Project
            1. Developer Streams
            2. Shared Streams
            3. Hierarchy of Streams
          4. Mixing Streams and Projects to Meet Your Needs
          5. Common Variations with Deliver
            1. Push Deliver Versus Pull Deliver
            2. Posting a Deliver
            3. Gating Deliveries with Process
            4. Interproject Deliveries
          6. Other Integration Scenarios
      3. 9.3. Summary
    16. 10. Building, Baselining, and Release Deployment
      1. 10.1. Baselining and Building with UCM
        1. 10.1.1. Locking the Integration Stream
        2. 10.1.2. Baselining Software Components
        3. 10.1.3. Building Software Components
        4. 10.1.4. Executing Smoke Tests
        5. 10.1.5. Using Build Stabilization Streams
        6. 10.1.6. Promoting and Recommending Software Component Baselines
        7. 10.1.7. Unlocking the Integration Stream
        8. 10.1.8. Automating the Nightly Build Process
      2. 10.2. Staging, Deployment, and Release
        1. 10.2.1. The Staging Component
        2. 10.2.2. Using the Assembly Project for Deployment of Releases
        3. 10.2.3. Modeling the Deployment Stages of a Release with Streams
        4. 10.2.4. ClearQuest's Role in Deployment
          1. Commercial Software
          2. Embedded Systems
          3. Web Sites
          4. Internal Software Components
      3. 10.3. Summary
    17. 11. Geographically Distributed Development
      1. 11.1. Distributed Development Challenges
        1. 11.1.1. Organization
        2. 11.1.2. Communication
        3. 11.1.3. Technology
          1. Implementation Technologies
          2. Development Technologies
      2. 11.2. How ClearCase Supports Distributed Development
        1. 11.2.1. Remote Terminal or Desktop Access
        2. 11.2.2. Remote Client Access
        3. 11.2.3. Web Access
        4. 11.2.4. Disconnected Use
        5. 11.2.5. Local Access
        6. 11.2.6. What Is the ClearCase Remote Client (CCRC)?
        7. 11.2.7. What Is ClearCase MultiSite?
        8. 11.2.8. What Is ClearQuest MultiSite?
        9. 11.2.9. Using ClearCase MultiSite and ClearQuest MultiSite Together
          1. UCM and ClearQuest MultiSite
            1. Working on Activities
            2. Delivering Activities
      3. 11.3. Multiple Teams: Producer/Consumer Scenario
        1. 11.3.1. Supporting Producer/Consumer Teams
        2. 11.3.2. How UCM Supports the Producer/Consumer Model
        3. 11.3.3. How Base ClearCase Supports the Producer/Consumer Model
        4. 11.3.4. Producer/Consumer Summary
      4. 11.4. Multiple Teams: Shared Source Code Scenario
        1. 11.4.1. How UCM Supports Shared Source Code
        2. 11.4.2. How Base ClearCase Supports Shared Source Code
        3. 11.4.3. Shared Source Code Summary
      5. 11.5. Single Team: Distributed Members Scenario
        1. 11.5.1. How the UCM Model Supports Local Access
        2. 11.5.2. How Base ClearCase Supports Local Use
          1. Branch by Project or by Site
          2. Branching by User
        3. 11.5.3. Branching by Activity
        4. 11.5.4. Single Team: Distributed Members Summary
      6. 11.6. Other Uses for ClearCase MultiSite
        1. 11.6.1. MultiSite for Backup
        2. 11.6.2. MultiSite for Delivery
        3. 11.6.3. MultiSite for Platform Interoperability
      7. 11.7. Summary
    18. 12. Change Request Management And Clearquest
      1. 12.1. What Is Change Request Management?
      2. 12.2. What Are Change Requests?
      3. 12.3. The Change Request Management Process
        1. 12.3.1. Submission
        2. 12.3.2. Evaluation
        3. 12.3.3. Decision
        4. 12.3.4. Implementation
        5. 12.3.5. Verification
        6. 12.3.6. Completion
      4. 12.4. What Is ClearQuest?
      5. 12.5. How Do I Use ClearQuest Data?
        1. 12.5.1. Queries
        2. 12.5.2. Reports
      6. 12.5.3. Charts
        1. Distribution Charts
        2. Trend Charts
        3. Aging Charts
      7. 12.6. How Does ClearQuest Support UCM?
      8. 12.7. ClearQuest MultiSite
      9. 12.8. Summary
    19. A. Redoing and Undoing Change Sets with UCM
      1. A.1. Location of Script
      2. A.2. Limit Script Use to Integrator Role
      3. A.3. Script Interface
      4. A.4. Why Is This Useful?
      5. A.5. Redoing an Activity on Another Stream
        1. Why Is This Useful?
      6. A.6. Undoing a Delivery or Activity
    20. Glossary
    21. Bibliography

    Product information

    • Title: Software Configuration Management Strategies and IBM® Rational® ClearCase®: A Practical Introduction, Second Edition
    • Author(s): David E. Bellagio, Tom J. Milligan
    • Release date: May 2005
    • Publisher(s): IBM Press
    • ISBN: 0321200195