| Figures.  | 
| Tables.  | 
| Foreword.  | 
| Preface.  | 
| I. INTRODUCING THE RATIONAL UNIFIED PROCESS.  | 
| 1. Introducing the Rational Unified Process.  | 
| What Is the Rational Unified Process? | 
| The RUP—The Approach. | 
| Underlying Principles of the RUP Approach. | 
| The RUP and Iterative Development. | 
| The RUP--A Well-Defined Software Engineering Process. | 
| The Dynamic Structure of the Rational Unified Process. | 
| The Static Structure of the Rational Unified Process. | 
| The RUP-A Customizable Process Product. | 
| Configuration and Process Authoring Tools. | 
| Process Delivery Tools. | 
| Who Uses the RUP Product? | 
| Conclusion. | 
| 2. The Spirit of the RUP: Guidelines for Success.  | 
| Attack Major Risks Early and Continuously, or They Will Attack You. | 
| Summary. | 
| Ensure That You Deliver Value to Your Customer. | 
| Summary. | 
| Stay Focused on Executable Software. | 
| Summary. | 
| Accommodate Change Early in the Project. | 
| Summary. | 
| Baseline an Executable Architecture Early On. | 
| Summary. | 
| Build Your System with Components. | 
| Summary. | 
| Work Together as One Team. | 
| Summary. | 
| Make Quality a Way of Life, Not an Afterthought. | 
| Summary. | 
| Conclusion. | 
| 3. Comparing Processes: The RUP, Agile Methods, and Heavyweight Government Standards.  | 
| How Can We Compare Processes? | 
| Agile Development: Low-Ceremony, Iterative Approaches. | 
| SEI CMM, SEI CMMI, ISO/IEC, DOD-STD, MIL-STD: High Ceremony Striving for Higher Predictability. | 
| SEI CMM: Process Assessment Framework. | 
| SEI CMMI: Process Assessment Framework. | 
| ISO/IEC 15504: Process Assessment Framework. | 
| DOD-STD and MIL-STD: High-Ceremony Processes. | 
| The RUP: An Iterative Approach with an Adaptable Level of Ceremony. | 
| How Iterative Do You Want to Be? | 
| How Much Ceremony Do You Want? | 
| What Kind of RUP Configuration Meets Your Process Needs? | 
| Project Deimos: Team of One. | 
| Project Ganymede: Small Project with Tight Timeline. | 
| Project Mars: Average-Size Project without Iterative Development Experience. | 
| Project Jupiter: Large Distributed Project. | 
| Conclusion. | 
| 4. The RUP for a Team of One: Project Deimos.  | 
| A Solo Software Project: Project Deimos. | 
| The Seminal Idea (Saturday Night). | 
| The Proposal (Monday Morning). | 
| The Vision. | 
| The Plan. | 
| The Risk List. | 
| The Business Case. | 
| The Architecture. | 
| The Commitment (Monday Lunch). | 
| The Vision, Take Two. | 
| The Plan, Take Two. | 
| The Risk List, Take Two. | 
| The Business Case, Take Two. | 
| Digging In (Later Monday). | 
| Pressing On (Tuesday). | 
| More Progress, More Changes (Wednesday). | 
| Nearing Completion (Thursday). | 
| Beta and Ship (Friday). | 
| Conclusion. | 
| II. THE LIFECYCLE OF A RATIONAL UNIFIED PROCESS PROJECT.  | 
| 5. Going Through the Four Phases.  | 
| A Major Misconception. | 
| Major Milestones. | 
| No Fixed Workflows. | 
| No Frozen Artifacts. | 
| Three Types of Projects. | 
| 6. The Inception Phase.  | 
| Objectives of the Inception Phase. | 
| Inception and Iterations. | 
| Objective 1: Understand What to Build. | 
| Produce a Vision Document. | 
| Generate a “Mile-Wide, Inch-Deep” Description. | 
| Hold a Workshop or Brainstorming Session. | 
| Detail Key Actors and Use Cases. | 
| Objective 2: Identify Key System Functionality. | 
| Objective 3: Determine at Least One Possible Solution. | 
| Objective 4: Understand the Costs, Schedule, and Risks Associated with the Project. | 
| Objective 5: Decide What Process to Follow and What Tools to Use. | 
| Project Review: Lifecycle Objective Milestone. | 
| Conclusion. | 
| 7. The Elaboration Phase.  | 
| Objectives of the Elaboration Phase. | 
| Elaboration and Iterations. | 
| First Iteration in Elaboration. | 
| Second Iteration in Elaboration. | 
| Objective 1: Get a More Detailed Understanding of the Requirements. | 
| Objective 2: Design, Implement, Validate, and Baseline the Architecture. | 
| Architecture: Defining Subsystems, Key Components, and Their Interfaces. | 
| Use Architecturally Significant Use Cases to Drive the Architecture. | 
| Design Critical Use Cases. | 
| Consolidate and Package Identified Classes. | 
| Ensure Architectural Coverage. | 
| Design the Database. | 
| Outline Concurrency, Processes, Threads, and Physical Distribution. | 
| Identify Architectural Mechanisms. | 
| Implement Critical Scenarios. | 
| Integrate Components. | 
| Test Critical Scenarios. | 
| What Is Left to Do? | 
| Objective 3: Mitigate Essential Risks, and Produce Accurate Schedule and Cost Estimates. | 
| Plan the Project and Estimate Costs. | 
| Objective 4: Refine the Development Case and Put the Development Environment in Place. | 
| Project Review: Lifecycle Architecture Milestone. | 
| Conclusion. | 
| 8. The Construction Phase.  | 
| Objectives of the Construction Phase. | 
| Construction and Its Iterations. | 
| Objective 1: Minimize Development Costs and Achieve Some Degree of Parallelism. | 
| Organize Around Architecture. | 
| Configuration Management. | 
| Enforce the Architecture. | 
| Ensure Continual Progress. | 
| Objective 2: Iteratively Develop a Complete Product That is Ready to Transition to Its User Community. | 
| Describe the Remaining Use Cases and Other Requirements. | 
| Fill in the Design. | 
| Design the Database. | 
| Implement and Unit-Test Code. | 
| Do Integration and System Testing. | 
| Early Deployments and Feedback Loops. | 
| Prepare for Beta Deployment. | 
| Prepare for Final Deployment. | 
| Project Review: Initial Operational Capability Milestone. | 
| Conclusion. | 
| 9. The Transition Phase.  | 
| Objectives of the Transition Phase. | 
| Transition Iterations and Development Cycles. | 
| Transition and Iterations. | 
| Transition and Development Cycles. | 
| Objective 1: Beta Test to Validate That User Expectations are Met. | 
| Capturing, Analyzing, and Implementing Change Requests. | 
| Transition Testing. | 
| Patch Releases and Additional Beta Releases. | 
| Metrics for Understanding When Transition Will be Complete. | 
| Objective 2: Train Users and Maintainers to Achieve User Self-Reliability. | 
| Objective 3: Prepare Deployment Site and Convert Operational Databases. | 
| Objective 4: Prepare for Launch: Packaging, Production, and Marketing Rollout. | 
| Packaging, Bill of Materials, and Production. | 
| Marketing Rollout. | 
| Objective 5: Achieve Stakeholder Concurrence That Deployment is Complete. | 
| Product Acceptance Test. | 
| Objective 6: Improve Future Project Performance Through Lessons Learned. | 
| Project Review: Product Release Milestone. | 
| Conclusion. | 
| III. ADOPTING THE RATIONAL UNIFIED PROCESS.  | 
| 10. Configuring, Instantiating, and Customizing the Rational Unified Process.  | 
| Configuring the RUP. | 
| Producing a RUP Process Configuration. | 
| Producing Process Views. | 
| Customizing RUP Templates. | 
| Instantiating the RUP in a Project. | 
| A RUP Development Case. | 
| Project Web Site. | 
| Alternatives to Producing a Development Case. | 
| Customizing the RUP. | 
| Rational Process Workbench and Process Engineering Process. | 
| Creating Thin RUP Plug-Ins Using RUP Organizer. | 
| Creating Structural RUP Plug-Ins Using RUP Organizer. | 
| Conclusion. | 
| 11. Adopting the Rational Unified Process.  | 
| Adopting the RUP in a Project. | 
| Assess. | 
| Plan. | 
| Configure and Customize. | 
| Execute. | 
| Evaluate. | 
| Adopting the RUP in Small Projects. | 
| Adopting the RUP in a Large Organization. | 
| Process and Tool Enhancement Projects (PTEP). | 
| Pilot Projects. | 
| Software Development Projects. | 
| A Typical Program for Moderate Change. | 
| A Typical Program for Major Change. | 
| An Aggressive Program for Major Change. | 
| Conclusion. | 
| 12. Planning an Iterative Project.  | 
| Motivation. | 
| Key Concepts. | 
| Cycle. | 
| Phases. | 
| Iteration. | 
| Build. | 
| Time-Boxing. | 
| Coarse-Grain and Fine-Grain Plans: Project Plans and Iteration Plans. | 
| The Project Plan. | 
| The Iteration Plan. | 
| Building a Project Plan. | 
| Determining the Number of Iterations. | 
| Iteration Length. | 
| Staffing the Project. | 
| Iteration Planning. | 
| Inception and Elaboration. | 
| Construction and Transition. | 
| Identifying Activities. | 
| Estimating. | 
| An Iterative Estimation Technique: Wideband Modified Delphi. | 
| Optimizing the Project Plan. | 
| Overlapping Iterations. | 
| Parallel Iterations. | 
| Conclusion. | 
| 13. Common Mistakes When Adopting and Using the RUP--and How to Avoid Them.  | 
| Mistakes When Adopting the RUP. | 
| Adopting Too Much of What Is in the RUP. | 
| Adopting Everything at Once, Rather than Incrementally. | 
| Not Planning the Implementation of the RUP. | 
| Not Coupling Process Improvement with Business Results. | 
| Customizing Too Much of the RUP Too Early. | 
| Paying Lip Service to the RUP. | 
| Mistakes When Managing Iterative Development. | 
| Having a Functional, Specialized Organization. | 
| Not Setting the Right Stakeholder Expectations or Using an Old-Fashioned Acquisition Model. | 
| Too Many Developers at Project Start. | 
| Solving the Easy Stuff First. | 
| Having an Extended Initial Iteration. | 
| Having Overlapping Iterations. | 
| Allowing Too Many Changes Late in the Project. | 
| Mistakes in Analysis, Architecture, Design, Implementation, and Testing. | 
| Creating Too Many Use Cases. | 
| Having Analysis-Paralysis. | 
| Including Design Decisions in Your Requirements. | 
| Not Having Stakeholder Buy-In on Requirements. | 
| “Not Invented Here” Mentality. | 
| Ending Elaboration Before the Architecture Is Sufficiently Stable. | 
| Focusing on Inspections Instead of Assessing Executable Software. | 
| Conclusion. | 
| IV. A ROLE-BASED GUIDE TO THE RATIONAL UNIFIED PROCESS.  | 
| 14. A Project Manager's Guide to the RUP.  | 
| The Mission of a Project Manager. | 
| A Complex Role. | 
| A Person or a Team? | 
| Scope of the Project Management Discipline in the RUP. | 
| Software Development Plan (SDP). | 
| Iterative Development. | 
| Risks. | 
| Metrics. | 
| Activities of a Project Manager. | 
| Launching a New Project. | 
| Developing the Software Development Plan. | 
| Starting and Closing Phases and Iteration. | 
| Monitoring the Project. | 
| Finding Your Way in the RUP. | 
| Conclusion. | 
| Resources for the Project Manager. | 
| Further Reading. | 
| On the Web. | 
| Training Resources. | 
| 15. An Analyst's Guide to the RUP.  | 
| Your Mission as an Analyst. | 
| Where Do You Start? | 
| Understand How Your Business Should Operate. | 
| Understand Stakeholder Needs. | 
| Develop a Vision. | 
| Problem Statement. | 
| Feature List. | 
| Develop a Use-Case Model and Glossary. | 
| Describe Requirements “Mile-Wide, Inch-Deep” . | 
| Detail Actors and Use Cases. | 
| Example Use-Case Specification for Register for Courses. | 
| Fine-Tune Your Model. | 
| Develop User-Interface Prototypes. | 
| Develop Use-Case Storyboard or Prototype. | 
| Capture Nonfunctional Requirements. | 
| Update and Refine Requirements. | 
| Ensure That the Requirements Are Delivered and Tested. | 
| The Analyst's Role in the Rational Unified Process. | 
| Resources for Analysts. | 
| Further Reading. | 
| Training Resources. | 
| 16. An Architect's Guide to the RUP.  | 
| The Mission of an Architect. | 
| A Jack-of-All-Trades. | 
| A Person or a Team? | 
| A Vertex of Communication. | 
| Architecture. | 
| Architecture Defined. | 
| Models and Views. | 
| Software Architecture Document. | 
| Executable Architectural Prototype. | 
| Architectural Mechanisms. | 
| Additional Architecture? | 
| An Evolving Role. | 
| What Do Architects Do? | 
| Vision. | 
| Rhythm. | 
| Anticipation. | 
| Partnering. | 
| Simplification. | 
| The Architect's Activities in the RUP. | 
| Working with the Requirements and Project Management. | 
| Refining the Architecture. | 
| Maintaining Architectural Integrity. | 
| The Architect's Roles in the RUP. | 
| Finding Your Way in the RUP Product. | 
| Resources for the Architect. | 
| Further Reading. | 
| Useful Web Sites. | 
| 17. A Developer's Guide to the RUP.  | 
| Your Mission as a Developer. | 
| Overview of the Developer's Tasks. | 
| Understand the Requirements and Design Constraints. | 
| Design, Implement, and Test Use Cases and Components. | 
| Design Use-Case Realizations and Components. | 
| Implement Use Cases and Components. | 
| Developer Testing. | 
| Design, Implement, and Test Any Necessary Databases. | 
| Frequently Integrate Your Application with the Work of Other Developers. | 
| Configuration Management Workspaces. | 
| Integration Planning. | 
| Produce a Build. | 
| Developer Best Practices. | 
| Test First. | 
| Refactor Your Code and Design. | 
| Use Patterns, Architectural Mechanisms, and Other Reusable Assets. | 
| Keep Your Design Simple. | 
| Pair Programming. | 
| The Developer Role in the Rational Unified Process. | 
| Available Resources for Developers. | 
| Recommended Reading. | 
| Recommended Training. | 
| 18. A Tester's Guide to the RUP.  | 
| The Mission of the Tester. | 
| The Concept of Product Quality in the RUP. | 
| Paradigms of “Good Enough” . | 
| The Cost of Quality. | 
| Wouldn't Quantification Help?. | 
| Conformance to Standards. | 
| What Is Testing? | 
| The RUP Testing Philosophy. | 
| Mission. | 
| Test Cycles. | 
| The Test Discipline in the RUP Product. | 
| Various Roles Related to Test in the RUP. | 
| Key Test Artifacts. | 
| Activities of the Tester. | 
| Define Test Mission. | 
| Verify Test Approach. | 
| Validate Build Stability (Smoke Test). | 
| Test and Evaluate. | 
| Achieve an Acceptable Mission. | 
| Improve Test Assets. | 
| Other Related Activities. | 
| Conclusion. | 
| Resources for Testers. | 
| Further Reading. | 
| Training Resources. | 
| Glossary.  | 
| Bibliography.  |