David E. Bellagio has been involved in software development for the last 25 years, ever since he got addicted to it in high school. After realizing that he would not be a professional baseball player, he went on to receive his Bachelor of Science and Master of Science degrees in computer science, with honors, from Chico State University, California. David worked previously at CSC, Tandem Computers, ADP, and HP. He first began using ClearCase in 1994, and he spent the next four years deploying ClearCase to many developers while employed at ADP and HP. In 1998, he joined Rational Software as a technical field representative in the Pacific Northwest.
David currently is a Worldwide Community of Practice Leader for Enterprise Change Management at IBM, Rational Software. He works with customers and IBM teams to ensure successful deployment and adoption of Rational SCM solutions. David works with Rational field teams delivering workshops, seminars, and assessments to help improve software process and customer results. He also works onsite with customers around the world to define and manage successful deployment of Rational Software solutions.
David has presented these topics at Rational User Conferences:
1995: "Building Software with Clearmake on Non-ClearCase Hosts"
1996: "ClearAdminA Set of Scripts and Processes for Administrating ClearCaseSites"
2004: "UCM Stream Strategies and Best Practices"
David has also led the UCM Hands on Workshop sessions at the 2003 and 2004 Rational User Conferences.
David currently resides in Washington with his wonderful wife and three children. When time allows, he also enjoys brewing fine ales and mead. He can be reached via e-mail at [email protected].
Tom Milligan is a Senior SCM Technical Marketing Engineer on IBM Rational Software's Worldwide Technical Marketing team. Prior to this assignment he worked in Rational Software's Western Region Consulting Organization.
Prior to joining Atria Software in 1995, Tom worked in Electronic Design Automation, Software QA, software tools acquisition and development as well as real-time embedded software development. Tom holds a B.A (Honors College) in Computer Science from the University of Oregon (1978).
Tom has spoken at the Rational User Conference several times:
1997: "Integrating ClearCase NT with Third-Party Applications"(specifically, integrating ClearCase with Microsoft Word)
1999: "Integrating Requisite Pro and DDTs"
2001: "Using Perl with the ClearCase Automation Library (CAL)"
2003: "ClearCase Performance Analysis, Monitoring and Tuning"
2004: "Fundamentals of Good Software Configuration Management, ClearCase Performance Analysis, Monitoring and Tuning"
Tom has also published the following articles:
The Rational Edge
November 2001: "Using Perl with Rational ClearCase Automation Library (CAL)"
September 2002: "Using Perl with the Rational ClearQuest API"
July 2003: "ClearCase Performance Analysis, Monitoring and Tuning (part 1)"
September 2003: "ClearCase Performance Analysis, Monitoring and Tuning (part 2)"
Websphere Advisor
Rational Developer Network
Tom was also keynote speaker at the 2003 Association of Configuration and Data Management (ACDM) Conference.
Tom resides on the central coast of California with his most excellent wife and three children. In his spare time Tom enjoys playing Ultimate (also known as Ultimate Frisbee), watching his kids play volleyball and soccer, and staying up late with his telescope. He can be reached via e-mail at [email protected].
© Copyright Pearson Education. All rights reserved.
Acknowledgments.
About the Authors.
Preface to the Second Edition.
1. What is Software Configuration Management?
SCM Best Practices.
Identify and Store Artifacts in a Secure Repository.
Control and Audit Changes to Artifacts.
Organize Versioned Artifacts into Versioned Components.
Organize Versioned Components and Subsystems into
New Versioned Subsystems.
Create Baselines at Project Milestones.
Record and Track Requests for Change.
Organize and Integrate Consistent Sets of Versions Using Activities.
Maintain Stable and Consistent Workspaces.
Support Concurrent Changes to Artifacts and Components.
Integrate Early and Often.
Ensure Reproducibility of Software Builds.
SCM Tools and SCM Process.
SCM Tools.
SCM Process.
Summary.
2. Growing into Your SCM Solution.
Dealing with Changing Project Requirements.
Increasing Software System Complexity.
Increasing Project Environment Complexity.
Changing Life Cycle Phase.
Changing Processes and Personnel.
Evolution of SCM Tools.
Five Project Team Categories.
In the Absence of SCM Tools.
Early SCM Tool Support.
Modern SCM Tool Support.
Advanced SCM Tool Support.
Summary.
3. An Overview of the Unified Change Management Model.
What Is UCM?
The Value of UCM.
Abstraction.
Stability.
Control.
Communication.
What Is ClearCase?
The ClearCase UCM Model.
The UCM Baseline + Change Model.
What Is ClearQuest?
ClearCase UCM Process Overview.
The Architect.
The Configuration Manager.
The Project Manager.
The Developer.
The Integrator
The Architect: Defining the Implementation Model.
ClearCase Components.
Components in the Unified Modeling Language.
The Configuration Manager: Setting Up the SCM Environment.
The Project Manager: Managing a Project.
The Developer: Joining a Project and Doing Development.
The Integrator: Integration, Build, and Release.
Releasing a Component.
System Integration.
Releasing Systems and Subsystems.
Summary.
4. A Functional Overview of ClearCase Objects.
The Repository: Versioned Object Base.
Workspaces: Snapshot and Dynamic View.
Snapshot Views.
Web Views.
Dynamic Views.
Differences Between Snapshot and Dynamic Views.
Project Management: Projects, Streams, and Activities.
Projects.
Streams.
Activities.
Versioned Objects: Elements, Branches, and Versions.
Directory Versioning.
Element Types.
Component Management: Components and Baselines.
Components.
Baselines.
Process: Labels, Attributes, Hyperlinks, Triggers.
Labels.
Attributes.
Hyperlinks.
Triggers.
Creating and Managing Types.
Building: Clearmake, Derived Objects, Configuration Records.
Build Audit.
Object Sharing.
Parallel and Distributed Builds.
Clearmake versus Classic Make
Summary
5. Establishing the Initial SCM Environment.
ClearCase Architecture Basics.
The License Server and Registry Server.
The VOB Server and View Server.
The ALBD Server and Client Processes.
The Multiversion File System.
Example Hardware Configuration.
ClearCase Hardware Resource Requirements.
Memory Requirements.
Disk I/O Requirements.
Network Bandwidth and Reliability.
CPU.
Other Recommendations.
User, VOB, and View Limits.
VOB Sizing Considerations.
Monitoring and Tuning for ClearCase Performance.
Measuring the Lowest Level.
Measuring the Middle Level.
Measuring the Top Level.
Defining the Implementation Model.
Creating the VOBs.
Creating the PVOB Using the Command-Line Interface.
Creating the PVOB Using the Graphical User Interface.
Using Administration VOBs.
Using More Than One PVOB.
Creating VOBs and Components Using the Command-Line Interface.
Creating VOBs and Components Using the Graphical User Interface
Importing Existing Source Code.
Baseline Promotion Levels.
Summary.
6. Project Management in ClearCase.
What Is a ClearCase Project?
Who Is Making Changes?
What Is Being Changed?
How Are Changes Being Made?
How Do Changes Flow and Get Integrated?
Creating a ClearCase Project.
Identifying Your Project Manager.
Identifying Your Components and Baselines.
Determining Your Project’s Policies.
Determining Your UCM Project Properties.
Choosing the Location for Your Project.
Creating Your Project.
Summary.
7. Managing and Organizing Your ClearCase Projects.
Coordinating Multiple Parallel Releases.
The Follow-On Project.
The Mainline Project.
Project Completion.
Project Creation.
Multiple Parallel Projects.
Organizing Large Multiproject Development Efforts.
Architecture-Oriented Project Teams.
Feature-Oriented Project Teams.
Coordinating Cooperating Projects: Independent Components.
Project Creation.
Iteration Planning.
Integration.
Coordinating Cooperating Projects: Shared Components.
Project Creation.
Iteration Planning.
Integration.
Coordinating IS/IT Development Projects.
Choosing Which Features to Work On.
Implementing an Approval Process.
Performing Emergency Bug Fixes.
Planning for a Major Release.
Coordinating Documentation Projects or Small Teams.
Project Creation.
Joining a Project.
Delivering Changes.
Updating the Workspace.
Creating Baselines.
Summary.
8. Development Using the ClearCase UCM Model.
A Developer’s Perspective of UCM.
Working on a Project.
Making Changes.
Working with Activities.
Modifying Files and Directories.
Working from the Command Line.
Delivering Changes to the Project.
Check In Any Outstanding Checked-Out Elements.
Rebase from the Project’s Latest Recommended Baselines.
Run the ClearCase Deliver Command.
Build and Test the Delivery.
Complete or Cancel the Delivery.
Rebasing Your Development Stream.
Run the Rebase Operation.
Build and Test.
Complete or Cancel the Rebase.
Dealing with Conflicting Changes.
Delivery Scenario 1 (No Conflicts).
Delivery Scenario 2 (No Conflicts).
Delivery Scenario 3 (With Conflicts).
Rebase Scenario 1 (No Conflicts).
Rebase Scenario 2 (With Conflicts).
ClearCase Merge Tools.
Seamlessly Integrating with Developer’s IDE.
Summary.
9. Integration
Software Integration.
Merge Integration.
Assembly Integration.
Integration Scenarios for Teams of Differing Sizes.
Isolation and Integration with ClearCase.
The Shared View: No Isolation.
Branch/LATEST Development: Maximizing Integration.
Using Branches for Isolation and Integration.
Integration with UCM.
Summary.
10.Building, Baselining, and Release Deployment.
Baselining and Building with UCM.
Locking the Integration Stream.
Baselining Software Components.
Building Software Components.
Executing Smoke Tests.
Using Build Stabilization Streams.
Promoting and Recommending Software Component Baselines.
Unlocking the Integration Stream.
Automating the Nightly Build Process.
Staging, Deployment, and Release.
The Staging Component.
Using the Assembly Project for Deployment of Releases.
Modeling the Deployment Stages of a Release with Streams.
ClearQuest’s Role in Deployment.
Summary.
11. Geographically Distributed Development.
Distributed Development Challenges.
Organization.
Communication.
Technology.
How ClearCase Supports Distributed Development.
Remote Terminal or Desktop Access.
Remote Client Access.
Web Access.
Disconnected Use.
Local Access.
What Is the ClearCase Remote Client (CCRC)?
What Is ClearCase MultiSite?
What Is ClearQuest MultiSite?
Using ClearCase MultiSite and ClearQuest MultiSite Together.
Multiple Teams: Producer/Consumer Scenario.
Supporting Producer/Consumer Teams.
How UCM Supports the Producer/Consumer Model.
How Base ClearCase Supports the Producer/Consumer Model.
Producer/Consumer Summary.
Multiple Teams: Shared Source Code Scenario.
How UCM Supports Shared Source Code.
How Base ClearCase Supports Shared Source Code.
Shared Source Code Summary.
Single Team: Distributed Members Scenario.
How the UCM Model Supports Local Access.
How Base ClearCase Supports Local Use.
Branching by Activity.
Single Team: Distributed Members Summary.
Other Uses for ClearCase MultiSite.
MultiSite for Backup.
MultiSite for Delivery.
MultiSite for Platform Interoperability.
Summary.
12. Change Request Management and ClearQuest.
What Is Change Request Management?
What Are Change Requests?
The Change Request Management Process.
Submission.
Evaluation.
Decision.
Implementation.
Verification.
Completion.
What Is ClearQuest?
How Do I Use ClearQuest Data?
Queries.
Reports.
Charts.
How Does ClearQuest Support UCM?
ClearQuest MultiSite.
Summary.
Appendix A. Redoing and Undoing Change Sets with UCM.
Location of Script.
Limit Script Use to Integrator Role.
Script Interface.
Why Is This Useful?
Redoing an Activity on Another Stream.
Glossary.
Bibliography.
Index.