Managing Software Projects, Release 2002.05.00, Windows
1. Choosing Between UCM and Base ClearCase
1.1 Differences Between UCM and Base ClearCase
Branching and Creating Views
Using Components to Organize Files
Creating and Using Baselines
Managing Activities
Enforcing Development Policies
2. Understanding UCM
2.1 Overview of the UCM Process
2.2 Creating the Project
Creating a PVOB
Organizing Directories and Files into Components
Shared and Private Work Areas
Starting from a Baseline
Setting Up the UCM-ClearQuest Integration
2.3 Setting Policies
2.4 Assigning Work
2.5 Creating a Testing Stream
2.6 Building Components
MultiSite Consideration
2.7 Making a New Baseline
2.8 Recommending the Baseline
2.9 Monitoring Project Status
2.10 Overview of the UCM-ClearQuest Integration
Associating UCM and ClearQuest Objects
UCM-Enabled Schema
State Types
Queries in a UCM-Enabled ClearQuest Schema
3. Planning the Project
3.1 Using the System Architecture as the Starting Point
Mapping System Architecture to Components
Deciding What to Place Under Version Control
Mapping Components to Projects
Amount of Integration
Need for Parallel Releases
Example
3.2 Organizing Components
Deciding How Many VOBs to Use
Identifying Additional Components
Defining the Directory Structure
Identifying Read-Only Components
3.3 Choosing a Stream Strategy
3.4 Specifying a Baseline Strategy
Identifying a Project Baseline
When to Create Baselines
Identifying the Initial Baseline
Ongoing Baselines
Defining a Naming Convention
Identifying Promotion Levels to Reflect State of Development
Planning How to Test Baselines
3.5 Planning PVOBs
Deciding How Many PVOBs to Use
Understanding the Role of the Administrative VOB
3.6 Identifying Special Element Types
Nonmerging Elements
Nonautomerging Elements
Defining the Scope of Element Types
3.7 Planning How to Use the UCM-ClearQuest Integration
Mapping PVOBs to ClearQuest User Databases
MultiSite Requirement
Projects Linked to Same Database Must Have Unique Names
Use One Schema Repository for Linked Databases
Deciding Which Schema to Use
Overview of the UnifiedChangeManagement Schema
Enabling a Schema for UCM
4. Setting Policies
4.1 Components and Baselines
Modifiable Components
Default Promotion Level for Recommending Baselines
4.2 Default View Types
4.3 Deliver Operations
Allow Deliveries from Stream with Pending Checkouts
Rebase Before Deliver
Deliver Operations to Nondefault Targets
Allow Deliveries from Streams in Other Projects
Allow Deliveries That Contain Changes in Foundation Baselines
Allow Deliveries That Contain Changes Made to Components Not in Target Stream
Allow Deliveries That Contain Changes to Nonmodifiable Components
4.4 UCM-ClearQuest Integration
Check Before Work On
Check Before ClearCase Delivery
Do ClearQuest Action After Delivery
Check Mastership Before Delivery
5. Setting Up a ClearQuest User Database
5.1 Using the Predefined UCM-Enabled Schemas
5.2 Enabling a Schema to Work with UCM
Requirements for Enabling Custom Record Types
Setting State Types
State Transition Default Action Requirements for Record Types
5.3 Upgrading Your Schema to the Latest UCM Package
5.4 Customizing ClearQuest Project Policies
5.5 Associating Child Activity Records with a Parent Activity Record
Using Parent/Child Controls
5.6 Creating Users
6. Setting Up the Project
6.1 Creating a Project from Scratch
Creating the Project VOB
Creating a Component for Storing the Project Baseline
Creating Components for Storing Elements
Creating One Component Per VOB
Creating a VOB That Stores Multiple Components
Creating the Project
Defining Promotion Levels
Creating an Integration View
Creating the Composite Baseline That Represents the Project
Creating the Directory Structure
Importing Directories and Files from Outside ClearCase
Making and Recommending a Baseline
6.2 Creating a Project Based on an Existing ClearCase Configuration
Creating the PVOB
Making a VOB into a Component
Making a Baseline from a Label
Creating the Project
Creating an Integration View
6.3 Creating a Project Based on an Existing Project
Using a Composite Baseline to Capture Final Baselines
Reusing Existing PVOB and Components
Creating the Project
Creating an Integration View
6.4 Enabling a Project to Use the UCM-ClearQuest Integration
Migrating Activities
Setting Project Policies
Assigning Activities
Disabling the Link Between a Project and a ClearQuest User Database
Fixing Projects That Contain Linked and Unlinked Activities
Detecting the Problem
Correcting the Problem
How MultiSite Affects the UCM-ClearQuest Integration
Replica and Naming Requirements
Transferring Mastership of the PVOB's Root Folder
Transferring Mastership of the Project
Linking Activities to ClearQuest Records
Changing Project Policy Settings
Changing the Project Name
6.5 Working with Rational Suite
6.6 Creating a Development Stream for Testing Baselines
6.7 Creating a Feature-Specific Development Stream
7. Managing the Project
7.1 Adding Components
Making the Component Modifiable
Synchronizing the View
Updating Snapshot View Load Rules
7.2 Building Components
Locking the Integration Stream
Finding Work That Is Ready to Be Delivered
Completing Remote Deliver Operations
Undoing a Deliver Operation
Building and Testing the Components
7.3 Creating a New Baseline
Making the New Baseline
Making a Baseline for a Set of Activities
Making a Baseline of One Component
Unlocking the Stream
7.4 Testing the Baseline
Fixing Problems
7.5 Recommending the Baseline
7.6 Resolving Baseline Conflicts
Conflicts Between a Composite Baseline and a Noncomposite Baseline
Conflicts Between Two Composite Baselines
7.7 Monitoring Project Status
Comparing Baselines
Querying ClearQuest User Databases
Using ClearCase Reports
7.8 Cleaning Up the Project
Removing Unused Objects
Projects
Streams
Components
Baselines
Activities
Locking and Making Obsolete the Project and Streams
8. Using Triggers to Enforce Development Policies
8.1 Overview of Triggers
Preoperation and Postoperation Triggers
Scope of Triggers
Using Attributes with Triggers
When to Use ClearQuest Scripts Instead of UCM Triggers
8.2 Sharing Triggers Between UNIX and Windows
Using Different Pathnames or Different Scripts
Using the Same Script
Tips
8.3 Enforce Serial Deliver Operations
Setup Script
Preoperation Trigger Script
Postoperation Trigger Script
8.4 Send Mail to Developers on Deliver Operations
Setup Script
Postoperation Trigger Script
8.5 Do Not Allow Activities to Be Created on the Integration Stream
8.6 Implementing a Role-Based Access Control System
Preoperation Trigger Script
8.7 Additional Uses for UCM Triggers
9. Managing Parallel Releases of Multiple Projects
9.1 Managing a Current Project and a Follow-On Project Simultaneously
Example
Performing Interproject Rebase Operations
9.2 Incorporating a Patch Release into a New Version of the Project
Example
Delivering Work to Another Project
9.3 Using a Mainline Project
9.4 Merging from a Project to a Non-UCM Branch
10. Managing Projects in Base ClearCase
10.1 Setting Up the Project
Creating and Populating VOBs
Planning a Branching Strategy
Branch Names
Branches and ClearCase MultiSite
Creating Shared Views and Standard Config Specs
Recommendations for View Names
10.2 Implementing Development Policies
Using Labels
Using Attributes, Hyperlinks, Triggers, and Locks
Global Types
Generating Reports
10.3 Integrating Changes
11. Defining Project Views
11.1 How Config Specs Work
11.2 Default Config Spec
The Standard Configuration Rules
Omitting the Standard Configuration Rules
11.3 Config Spec Include Files
11.4 Project Environment for Sample Config Specs
11.5 Views for Project Development
View for New Development on a Branch
Variation That Uses a Time Rule
View to Modify an Old Configuration
Omitting the \main\LATEST Rule
Variation That Uses a Time Rule
View to Implement Multiple-Level Branching
View to Restrict Changes to a Single Directory
11.6 Views to Monitor Project Status
View That Uses Attributes to Select Versions
Pitfalls of Using This Configuration for Development
View That Shows Changes of One Developer
Historical View Defined by a Version Label
Historical View Defined by a Time Rule
11.7 Views for Project Builds
View That Uses Results of a Nightly Build
Variations That Select Versions of Project Libraries
View That Selects Versions of Application Subsystems
View That Selects Versions That Built a Particular Program
Configuring the Makefile
Fixing Bugs in the Program
Selecting Versions That Built a Set of Programs
11.8 Sharing Config Specs Between UNIX and Windows
Pathname Separators
Pathnames in Config Spec Element Rules
Config Spec Compilation
Example
12. Implementing Project Development Policies
12.1 Good Documentation of Changes Is Required
12.2 All Source Files Require a Progress Indicator
12.3 Label All Versions Used in Key Configurations
12.4 Isolate Work on Release Bugs to a Branch
12.5 Avoid Disrupting the Work of Other Developers
12.6 Deny Access to Project Data When Necessary
12.7 Notify Team Members of Relevant Changes
12.8 All Source Files Must Meet Project Standards
12.9 Associate Changes with Change Orders
12.10 Associate Project Requirements with Source Files
12.11 Prevent Use of Certain Commands
12.12 Certain Branches Are Shared Among MultiSite Sites
12.13 Sharing Triggers Between UNIX and Windows
Using Different Pathnames or Different Scripts
Using the Same Script
Notes
13. Setting Up the Base ClearCase-ClearQuest Integration
13.1 Overview of the Integration
13.2 Configuring ClearQuest and ClearCase
Adding ClearCase Definitions to a ClearQuest Schema
Installing Triggers in ClearCase VOBs
Quick Start for Evaluations
Setting Environment Variables for the ClearQuest Web Interface
Setting the Environment for the ClearQuest Perl API
Editing the Configuration File
Testing the Integration
Checking Performance
13.3 Using the Integration Query Wizard
14. Integrating Changes
14.1 How Merging Works
Using the GUI to Merge Elements
Using the Command Line to Merge Elements
14.2 Common Merge Scenarios
Scenario: Selective Merge from a Subbranch
Scenario: Removing the Contributions of Some Versions
Scenario: Merging All Project Work
All Project Work Is Isolated on a Branch
All Project Work Isolated in a View
Scenario: Merging a New Release of an Entire Source Tree
Scenario: Merging Directory Versions
14.3 Using Your Own Merge Tools
15. Using Element Types to Customize Processing of File Elements
15.1 File Types in a Typical Project
15.2 How ClearCase Assigns Element Types
15.3 Element Types and Type Managers
Other Applications of Element Types
Using Element Types to Configure a View
Processing Files by Element Type
15.4 Predefined and User-Defined Element Types
16. Using ClearCase Throughout the Development Cycle
16.1 Project Overview
16.2 Development Strategy
Project Manager and ClearCase Administrator
Use of Branches
Creating Project Views
16.3 Creating Branch Types
16.4 Creating Standard Config Specs
16.5 Creating, Configuring, and Registering Views
16.6 Development Begins
Techniques for Isolating Your Work
16.7 Creating Baseline 1
Merging Two Branches
Integration and Test
Labeling Sources
Removing the Integration View
16.8 Merging Ongoing Development Work
Preparing to Merge
Merging Work
16.9 Creating Baseline 2
Merging from the r1_fix Branch
Preparing to Merge from the major Branch
Merging from the major Branch
Decommissioning the major Branch
Integration and Test
16.10 Final Validation: Creating Release 2.0
Labeling Sources
Restricting Use of the main Branch
Setting Up the Test View
Setting Up the Trigger to Monitor Bug-fixing
Fixing a Final Bug
Rebuilding from Labels
Wrapping Up
A. Moving from View Profiles to UCM
A.1 View Profiles and UCM
Feature Comparison
Branches and Streams
Moving Work Among Branches or Streams
VOBS and Components
Checkpoints and Baselines
A.2 How to Move View Profile Information to UCM
Preparing Your View Profile Project
Moving the View Profile Information
B. ClearCase-ClearQuest Integrations
B.1 Understanding the ClearCase-ClearQuest Integrations
Managing Coexisting Integrations
Schema
Presentation
C. Customizing ClearCase Reports
C.1 How ClearCase Reports Works
C.2 What You Can Customize in ClearCase Reports
Run-Time Processing Sequence for Reports Programming Interface
Configuring Shared Report Directories
Adding Report Procedures to Source Control
Setting the Report Builder to the Customized Directory
Default Directory Structure for ClearCase Reports
Populating the Report Builder Tree Pane
C.3 Report Procedure Interface Specifications
Interface Specification for All_Views.prl
Interface Specification for test_null.prl
Interface Specification for test2_null.prl
Description Specification
Help ID Specification
Parameters Specification
Rightclick Specification
Fields Specification
field_type Conventions
Parameter Choosers
Path Chooser
UCM Targets Chooser
Type Chooser
Date/Time Chooser
Text Chooser
Viewing the Report
Saving Report Data
C.4 Report Programming Examples
Example 1: Adding a Column to Report Output
Processing Logic
Interface Specification
Changes Required
Modified Report Procedure
Example 2: Changing Report Directory Organization, Report Description, and Report Output
Processing Logic
Interface Specification
Changes Required
Modified Report Procedure
Example 3: Changing Report Description, Parameter Types, and Report Output
Processing Logic
Interface Specification
Changes Required
Modified Report Procedure
Example 4: Changing the Shortcut Menu for the Right-Click Handling Mechanism
Interface Specification
Changes Required
Modified Report Procedure
Example 5: Adding a New Command to the Report Viewer Shortcut Menu
Interface Specification
Changes Required
Modified Report Procedure
C.5 Troubleshooting
Errors in the Interface Specification
C.6 Coding High-Level Languages Other Than ccperl