Software Configuration Management Strategies and Rational ClearCase®: A Practical Introduction |
|
|
|
|
| Brian White |
| August 2000, Addison Wesley Longman, Inc., Paperback, 336 pages, ISBN 0201604787
|
|
|
|
 |
|
In software development, change is inevitable. Successful projects deal
well with change -- increasingly, through the use of sophisticated Software
Configuration Management (SCM) tools and techniques. Now, there's a complete
guide to both the SCM discipline and the field's #1 tool, Rational ClearCase(r).
Authored by former ClearCase development team leader Brian White, Software
Configuration Management Strategies and Rational ClearCase covers every
aspect of implementing SCM with ClearCase, demonstrating exactly how to
use these tools to avoid cost overruns, stay on schedule, and enhance
software quality.
KEY TOPICS:
Brian White begins by introducing the motivation for Software Configuration
Management, its key concepts, and how SCM tools can be applied to address
the challenges encountered as software projects grow in size and complexity.
White introduces Rational ClearCase's out-of-the-box Unified Change Management
Model, and discusses the role of architects, project managers, developers,
and other team members in SCM-enabled process. He walks through establishing
an initial SCM environment, managing projects with ClearCase, and understanding
the iterative ClearCase process of "integration, build test, and
baseline." Along the way, readers will learn how to use Rational
ClearCase to address today's most widespread software management challenges,
from defect tracking, to managing geographically distributed teams, to
deploying powerful Web applications more quickly.
MARKET: For all software architects, designers, managers, and
engineers.
|
 |
|
Foreword.
Preface.
Acknowledgments.
1. What Is Software Configuration Management?
SCM Best Practices.
SCM Tools and SCM Process.
2. Growing into Your SCM Solution.
Dealing with Changing Project Requirements.
Evolution of SCM Tools.
Summary.
3. An Overview of the Unified Change Management Model.
What Is UCM?
What Is ClearCase?
ClearCase UCM Process Overview.
The Architect: Defining the Implementation Model.
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.
The UCM Baseline+Change Model.
4. A Functional Overview of ClearCase Objects.
The Repository: Versioned Object Base.
Workspaces: Dynamic and Snapshot Views.
Project Management: Projects, Streams, Activities.
Versioned Objects: Elements, Branches, and Versions.
Component Management: Components and Baselines.
Process: Labels, Attributes, Hyperlinks, Triggers.
Building: ClearMake, Derived Objects, Configuration Records.
5. Establishing the Initial SCM Environment.
ClearCase Architecture Basics.
ClearCase Hardware Resource Requirements.
Defining the Implementation Model.
Creating the VOBs.
Baseline Promotion Levels.
6. Project Management in ClearCase.
What Is a ClearCase Project?
Creating a ClearCase Project.
7. Coordinating Multiple Project Teams and Other Scenarios.
Organizing Large Multiproject Development Efforts.
Coordinating Cooperating Projects: Independent Components.
Coordinating Cooperating Projects: Shared Components.
Coordinating Multiple Parallel Releases.
Coordinating IS/IT Development Projects.
Coordinating Documentation Projects or Small Teams.
Using UCM without Activity-Based SCM.
8. Development Using the ClearCase UCM Model.
A Developer's Perspective of UCM.
Joining a Project.
Making Changes.
Delivering Changes to the Project.
Rebasing Your Development Stream.
Dealing with Conflicting Changes.
9. Integration, Build, and Release.
Software Integration.
Isolation and Integration with ClearCase.
Building and Baselining with ClearCase UCM.
Staging and Release.
10. Geographically Distributed Development.
Distributed Development Challenges.
How Does ClearCase Support Distributed Development?
Multiple Teams: Producer/Consumer Scenario.
Multiple Teams: Shared Source Scenario.
Single Team: Distributed Members Scenario.
Other Uses for ClearCase MultiSite.
11. Change Request Management and ClearQuest.
What Is Change Request Management?
What Are Change Requests?
The Change Request Management Process.
What Is ClearQuest?
How Do I Use ClearQuest Data?
How Does ClearQuest Support UCM?
Glossary.
Bibliography.
Index.
|
|
 |
|
"This is an incredible book! It should be required reading for every
software engineer
and manager in the world. There are so many gems of great advice throughout
the book
that I think this is going to be a classic. This is not only a great CM
book, but the chapter
on project management makes this a great book on software engineering."
--Bill Hasling
"This book communicates much of the experience, wisdom, and insight
that was
acquired along the way to discovering what best practices are
and how to implement/deploy them."
--Brad Appleton
Software Configuration Management (SCM) is an essential software engineering
discipline used to manage change in today's complex, fast-paced software
development environment. SCM is used during all lifecycle phases and provides
a structure for identifying and controlling changes to documentation,
requirements, models, code, and Web artifacts such as HTML and XML files.
By enabling concurrent change to shared artifacts, SCM enhances the collaboration
of project teams, allowing them to produce high-quality products faster.
Software Configuration Management Strategies and Rational ClearCase®
is a comprehensive, practical guide, featuring the most popular commercial
SCM tool on the market, Rational Software's ClearCase®. The author
explains the fundamentals first, and then shows how ClearCase supports
the SCM best practices through the Unified Change Management (UCM) model.
It demonstrates specifically how ClearCase can be used to facilitate and
control change in your software development projects. This book goes beyond
the basics and presents more advanced topics that deal with a variety
of real-world development scenarios such as managing multiple projects
and managing project teams located at different sites.
Highlights:
- Introduces basic concepts and the evolution of SCM tools
- Illustrates ClearCase objects, including the repository, workspaces,
and component management
- Provides an overview of the Unified Change Management model
- Illustrates how to create the ClearCase repositories and establish
a UCM environment
- Explains how to coordinate parallel work both within a project and
between multiple projects
- Explores the issues and approaches to managing geographically distributed
development projects
- Compares SCM and Change Request Management
- Provides an essential overview of Rational's ClearQuest ClearCase
technology, ClearCase MultiSite, and ClearQuest technologies
Comprehensive, practical, and clearly written, Software Configuration
Management Strategies and Rational ClearCase® provides software
developers, managers, and technical leaders with the information needed
to take full advantage of SCM and ClearCase in the development of software
projects |
 |
|
What This Book Is About This book is about the engineering discipline of software configuration management (SCM) and how the widely used SCM product, Rational ClearCase®, automates and supports SCM best practices through a model called unified change management (UCM). This book covers basic SCM concepts, typical SCM problems encountered as projects and software systems grow in size and complexity, and how you can apply SCM tools and processes to solve these problems. Advanced SCM topics are also discussed, such as managing large geographically distributed teams and combining the disciplines of SCM and change request management (or defect tracking). Specifically, this book discusses SCM in terms of a specific SCM tool called ClearCase. Although the discussion is specific to ClearCase, some of the material covered is SCM-tool-neutral. There are very few new books on software configuration management and even fewer that provide strategies for a specific tool. It is in the application of an SCM tool where projects most often run into problems and fail. ClearCase is a commercially available SCM tool. It is a good choice of tool for this discussion because it provides an open architecture that is used to implement and automate a wide range of SCM solutions. ClearCase is used in many different development environments on many types of applications, such as mission-critical IT, embedded systems, telecommunication systems, financial applications, Web site content, and other commercial and government software systems. Companies in these diverse industries are successfully using ClearCase as the cornerstone of their SCM environment. This book is not a step-by-step cookbook for using ClearCase, nor does it serve as a substitute for the ClearCase product documentation. You can use the concepts in this book to improve your application of any SCM tool. However, you will get the most out of this book if you are planning to deploy ClearCase or you want to improve the current way you use ClearCase.
On a personal note, this book is a collection of the experience
I've gained by working with some incredible people in the SCM field over
the last ten years. After reading it, you should have a better understanding
of software configuration management, a better idea of the software development
problems solved by using SCM tools and techniques, and a clear understanding
of how you can use ClearCase to solve these problems and meet your SCM
requirements. I sincerely hope you enjoy the book and find it valuable.
What You Need to Know before Reading This Book
The key to your success is understanding SCM, the requirements for your
software project, and how to apply an SCM tool to meet a project's requirements.
This book will get you started if you are new to software configurement
management. However, you will get the most out of this book if you already
have some SCM experience and have used basic version control tools before.
This book assumes you are familiar with the software development process.
It will also be helpful if you have a specific development project in mind
while you are reading.
Who You Are and Why You Should Read This Book
This book is not about the nitty-gritty details of writing ClearCase triggers
and scripting home-grown integrations with legacy tools; rather it will
give you a high-level view of some common SCM scenarios and how ClearCase
can be applied. If you are new to SCM or ClearCase, read this book cover
to cover. If you have used ClearCase or have a strong foundation in SCM,
look through the table of contents and pick chapters and sections that are
of particular interest to you.
For a Software Engineer
The biggest thing an SCM tool can do for a software engineer is to stay
out of the way. SCM should perform its function, yet be as transparent as
possible. The SCM tool and how it is applied should maximize your ability
to make changes to the software. Poor tools or poorly designed processes
can add unnecessary time and effort to your work. This book can help you
identify the areas in your SCM tools and processes to streamline. It discusses
some new advances in the SCM area specifically designed for streamlining
development. One of these is the notion of activity-based software configuration
management. The idea here is to raise the level of abstraction from files
to activities. This makes working with an SCM tool, tracking your changes,
and sharing changes with other software engineers more intuitive.
If you're new to SCM, read Chapter 1, What Is Software Configuration
Management? For an overview of the objects managed by ClearCase, see chapter
4, A Functional Overview of ClearCase Objects. To gain an understanding
of how ClearCase is used on a daily basis from a development perspective,
see chapter 8, Development Using the ClearCase UCM Model.
For a Software Project Manager or Technical Leader
As a leader for a software project, you are concerned with deciding what
changes to make to a software system and then ensuring that those changes
happen. Unplanned changes, made by well-meaning developers, introduce risk
into the project schedule and may cause schedule delays and poor product
quality. The ability to control and track change is essential to your project's
success.
This book should help you gain a solid understanding of
SCM, see why you need it, and learn how ClearCase can be used to solve
problems you may encounter on projects. Specifically, see chapter 6, Project
Management in ClearCase, and chapter 7, Coordinating Multiple Project
Teams and Other Scenarios. If you are managing teams that are not all
in one location, see chapter 10, Geographically Distributed Development,
for a discussion of the issues and strategies involved.
For a Tools Engineer
The role of tools engineer is often overlooked but is essential to success,
particularly in large organizations. Your job is to figure out how to apply
a given tool to the people, processes, and organization for which you work.
This book will give you information about SCM and ClearCase that you can
use to determine the best way to apply ClearCase to projects.
For Those Evaluating ClearCase
This book is a good starting point in the evaluation of ClearCase because
it presents a number of common software development scenarios as well as
more complex scenarios such as geographically distributed development. It
discusses the requirements of SCM processes and tools in terms of a set
of SCM best practices and shows how to apply ClearCase to support them.
Included are overviews of ClearCase's out-of-the-box process, unified change
management, and ClearCase objects.
Use chapter 1, What Is Software Configuration Management?,
and chap- ter 2, Growing into Your SCM Solution, to help determine the
SCM tool requirements for your project. Look to the remaining chapters
to determine whether ClearCase will meet your needs.
For Experienced ClearCase Users
If you are a long-time ClearCase user, this book is interesting from a general
software configuration management perspective and may offer some insights
into how to approach SCM solutions on your projects. It also offers some
advice if you are being asked to support geographically distributed development
teams (see chapter 10, Geographically Distributed Development).
The book contains an overview of ClearCase's out-of-the-box
usage model called unified change management, which is a recent addition
(see chapter 3, An Overview of the Unified Change Management Model). If
you are curious about integrating change request management with ClearCase,
then look at chapter 11, Change Request Management and ClearQuest. Look
also through the table of contents and pick chapters and sections that
are of particular interest to you.
How the Book Is Laid Out Here is a brief summary of all the chapters. - Chapter 1, What Is Software Configuration Management, provides a general introduction to software configuration management and the key best practices behind it. It answers the questions: what is software configuration management?, what are SCM tools?, and what is the SCM process?
- Chapter 2, Growing into Your SCM Solution, discusses the growing complexity of software development projects and proposes that as projects grow in complexity so does their need for richer SCM support. It covers the history of SCM tool evolution using five categories of software projects ranging from software developed by a single individual to projects with many geographically distributed project teams.
- Chapter 3, An Overview of the Unified Change Management Model, provides an overview of ClearCase's out-of-the-box usage model, unified change management, which automates and supports a particular SCM process. The material is discussed in terms of the roles and responsibilities of the various team members, such as the architect, project manager, developer, and integrator.
- Chapter 4, A Functional Overview of ClearCase Objects, provides a functional overview of ClearCase objects and concepts. This chapter serves as a bridge between general SCM terminology and ClearCase-specific terminology.
- Chapter 5, Establishing the Initial SCM Environment, provides information on setting up an initial SCM environment. It discusses the basics of ClearCase architecture. The chapter also covers mapping the software architecture to the physical components in the SCM tool and briefly discusses creating the SCM repositories and importing existing software.
- Chapter 6, Project Management in ClearCase, focuses on the role of the project manager with respect to SCM. Particular attention is paid to automation and functionality in ClearCase that specifically supports the project manager. It presents an example of creating a ClearCase project.
- Chapter 7, Coordinating Multiple Project Teams and Other Scenarios, discusses the issues of coordinating parallel work. It also covers the scenarios involving multiple teams cooperating on a common release, development of multiple releases in parallel with multiple teams, coordination of IS/IT-style projects, and coordination of documentation-oriented projects.
- Chapter 8, Development Using the ClearCase UCM Model, provides an introduction to using ClearCase, specifically focusing on the role of the developer. It shows you how to find and join an existing project, how to make changes to files to accomplish an activity, how to deliver the changes associated with the activity, and how to update the development workspace with changes made by other developers on the project.
- Chapter 9, Integration, Build, and Release, focuses on the role of the integrator and discusses approaches to software integration. This chapter briefly covers building, baselining, and how baselines are promoted. It provides an overview of how components are staged in a separate repository that is used for delivery and version control of the "built" deliverable files and directories. It also discusses how software is released by comparing different types of software systems.
- Chapter 10, Geographically Distributed Development, discusses the organizational, communication, and technical challenges that need to be overcome to be successful in distributed development. It looks at three common scenarios of distributed development and the issues associated with each. Finally, this chapter discusses the technology provided by ClearCase MultiSite and how to apply MultiSite to the three scenarios.
- Chapter 11, Change Request Management and ClearQuest, covers the area of change request management (CRM), a subset of which is defect tracking. SCM and CRM are two closely related disciplines, which together form comprehensive change management support. This chapter also discusses a product called Rational ClearQuest and how it works in concert with ClearCase to provide the foundation technology for the unified change management model.
Conventions Used Commands and Emphasized Text Command line operations are called out with a different font and prompt, for example:
prompt> command -flag1 -flag2
Long commands are written on multiple lines for clarity (as shown here), but should be typed on one line, for example:
prompt> longcommand longobject-identifier
-flag1 //machine/pathname
-flag
Note: Particular points that need to be emphasized appear in the text in a different font with an arrow to alert you.
WARNING: The screened warning box is used to emphasize an issue or concern that might be encountered and should be avoided.
ClearCase Pro Tip A screened box labeled ClearCase Pro Tip denotes information that is specifically useful for people who are already using ClearCase. If you have not used ClearCase, you can skip the tips. UML Diagram Format This book includes diagrams that use a graphical modeling language called the unified modeling language, or UML. For more information on UML, see The Unified Modeling Language User Guide by Grady Booch, James Rumbaugh, and Ivar Jacobson Booch 1999. Here is a description of the small subset of UML used in this book: An object is shown as a box, with text that describes the object. Lines represent associations between the objects, with text that describes the association. For example, "a house has a roof":
The association can be annotated to provide additional information, such as how many objects can be connected. This is called the "multiplicity" of the association. For example, any given house has only one roof and any given roof can be associated with only one house. Any given house can have many windows or no windows. Any given window can be associated with no house (before it is installed) or one house. These annotations would be represented as shown here:
Is it really a house if there are no windows? If not, then you would use "1..n" for the windows rather than "0..n." A black diamond is another association annotation that is used to show composition. Composition means one object is composed of another. Important semantics are implied by this type of association. One object "owns" the other. That is, owned objects can be created and removed, but once created they live forever with the owning object. If the owning object is destroyed, its parts are also destroyed. For example, a database has database tables. When the database is destroyed, all the tables are also destroyed. This would be represented in UML as shown here:
Finally, a UML relationship called "generalization" occurs between a general thing and a more specific kind of that thing. For example, the general thing could be a shoe, and specific types of shoes are running shoes, hiking shoes, and tennis shoes. Generalization is represented by an open arrow pointing toward the general object as shown here:
|
 |
|
Brian A. White has a decade of hands-on experience with Software
Configuration Management tools and methods. During his career, he has
deployed SCM solutions in the industrial controls and telecommunications
industries, many of them to meet ISO 9000 and SEI CMM objectives. He is
currently working on configuration and change management and product strategy
for Rational Software.
|
From Book News, Inc. A practical guide to a popular software configuration management tool. Explains fundamentals, then shows how ClearCase supports best practices through the Unified Change Management model. Demonstrates how ClearCase can be used to facilitate and control changes in software development projects, and deals with advanced topics such as managing multiple projects and managing project teams located at different sites. For software developers and managers. White has a decade of experience with software configuration management tools.Book News, Inc.®, Portland, OR
|
|