- Shopping Bag ( 0 items )
"Per Kroll and Philippe Kruchten are especially well suited to explain the RUP...because they have been the central forces inside Rational Software behind the creation of the RUP and its delivery to projects around the world."
--From the Foreword by Grady Booch
This book is a comprehensive guide to modern software development practices, as embodied in the Rational Unified Process, or RUP. With the help of this book's practical advice and insight, software practitioners will learn how to tackle challenging development projects--small and large--using an iterative and risk-driven development approach with a proven track record.
The Rational Unified Process Made Easy will teach you the key points involved in planning and managing iterative projects, the fundamentals of component design and software architecture, and the proper employment of use cases. All team members--from project managers to analysts, from developers to testers--will learn how to immediately apply the RUP to their work. You will learn that the RUP is a flexible, versatile process framework that can be tailored to suit the needs of development projects of all types and sizes.
Key topics covered include:
Use this book to get quickly up to speed with the RUP, so you can easily employ the significant power of this process to increase the productivity of your team.
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?
2. The Spirit of the RUP: Guidelines for Success.
Attack Major Risks Early and Continuously, or They Will Attack You.
Ensure That You Deliver Value to Your Customer.
Stay Focused on Executable Software.
Accommodate Change Early in the Project.
Baseline an Executable Architecture Early On.
Build Your System with Components.
Work Together as One Team.
Make Quality a Way of Life, Not an Afterthought.
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.
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 Risk List.
The Business Case.
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).
II. THE LIFECYCLE OF A RATIONAL UNIFIED PROCESS PROJECT.
5. Going Through the Four Phases.
A Major Misconception.
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.
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.
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.
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.
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.
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.
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.
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.
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.
11. Adopting the Rational Unified Process.
Adopting the RUP in a Project.
Configure and Customize.
Adopting the RUP in Small Projects.
Adopting the RUP in a Large Organization.
Process and Tool Enhancement Projects (PTEP).
Software Development Projects.
A Typical Program for Moderate Change.
A Typical Program for Major Change.
An Aggressive Program for Major Change.
12. Planning an Iterative Project.
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.
Staffing the Project.
Inception and Elaboration.
Construction and Transition.
An Iterative Estimation Technique: Wideband Modified Delphi.
Optimizing the Project Plan.
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.
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.
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).
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.
Resources for the Project Manager.
On the Web.
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.
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.
16. An Architect's Guide to the RUP.
The Mission of an Architect.
A Person or a Team?
A Vertex of Communication.
Models and Views.
Software Architecture Document.
Executable Architectural Prototype.
An Evolving Role.
What Do Architects Do?
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.
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.
Design, Implement, and Test Any Necessary Databases.
Frequently Integrate Your Application with the Work of Other Developers.
Configuration Management Workspaces.
Produce a Build.
Developer Best Practices.
Refactor Your Code and Design.
Use Patterns, Architectural Mechanisms, and Other Reusable Assets.
Keep Your Design Simple.
The Developer Role in the Rational Unified Process.
Available Resources for Developers.
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.
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.
Resources for Testers.
The Rational Unified Process, or RUP, is a software engineering process framework developed and marketed by Rational Software. It comprises many software development best practices, harvested by many contributors, over many years of experience, in a wide variety of situations. It provides a disciplined approach to assigning and managing tasks and responsibilities in a software development organization. By applying this process, software development teams can produce high-quality software that meets the needs of its end users, and do so within a predictable schedule and budget.
The RUP guides software practitioners in effectively applying modern software best practices, such as developing iteratively, taking an architecture-centric approach, mitigating risk at every stage in the process, and continuously verifying the quality of the software. Although thousands of projects today are using the RUP effectively, many teams are intimidated by the thought of implementing a new process that they perceive as large and complex. The RUP does not have to be large, and it is not complex.
The goal of this book is to show you how simple the RUP actually is. It explains the underlying software development principles behind the RUP and guides you in the application of the process in your development organization. It will also show you the way to carve a RUP Process Configuration of the right size for your organization or project.
During more than a decade of assisting companies in adopting the RUP and its predecessors and six years of leading the development of the RUP product, we have had the opportunity to see what works and what does not. We have seen the rewards of successful adoption of the RUP, and we have seen the challenges that projects and team members may encounter along the way. We have also been privileged to work with many leading software practitioners and have learned from them through daily interaction and practical experience in actual projects.
We felt there was a need for a book on the RUP that not only tells you what to do, but also what not to do.
Lately, we have seen a number of companies adopt too much of the RUP. Yes, there is such a thing as "too much of the RUP." We felt there was a need for a book on the RUP that not only tells you what to do, and what artifacts to produce, but also tells you how to streamline your process and what not to do. We wanted to explain how to adopt the RUP in practice, and when to apply what parts of the RUP in a given project. We wanted to help you understand how to apply the RUP to projects of different sizes or of different types.
Through this book, we want to share some of the insights we and our colleagues have gained over the years: Our intent is to provide Project Managers, Analysts, Architects, Developers, Testers, Process Engineers, and other team members and stakeholders with an easy-to-understand guide to the RUP. We have done this by extracting, from our practical experiences with the RUP, the essence of what each role needs to know about the RUP and explaining their role within it.
This book is not a substitute for the RUP product itself. While the book provides a couple of hundred pages of practical guidance, the RUP product provides thousands of pages of direction for a wide array of roles and activities, as well as templates for accelerating your work. It also provides tight integration with desktop tools, a search engine, graphical navigation, and other features you expect from a Web-based knowledge base. Unlike this book, the RUP is continuously evolving, bringing you up-to-date guidance to apply to your projects. Finally, this book will also guide you in customizing the RUP framework to suit your specific needs.
By reading this book, you will learn
This book is targeted specifically to
This book is divided into four parts: introduction, walkthrough, adoption, and role-specific guidelines.
Part I introduces the RUP. Chapter 1 explains what the RUP is and the motivation behind its development and its application. Chapter 2, "The Spirit of the RUP," describes the underlying principles behind the RUP--these are based on the experiences gleaned from a number of successful projects and distilled into a few simple guidelines. Understanding these principles will help you better apply the RUP to your own projects. Chapter 3 provides a method for comparing processes, and we use it to compare the RUP to other agile processes, to more conventional processes, and to process assessment frameworks such as SEI CMM and SPICE. These comparisons will help you understand which project type should use what type of RUP configuration. Chapter 4 provides an example that applies the RUP to a very small project: one person for one week. By peeling away the ceremony needed for larger projects, you can focus on the essential elements of the RUP.
Part II presents the RUP by walking through each of the four phases in a RUP project: Inception, Elaboration, Construction, and Transition. Chapter 5 addresses some common misconceptions of the four phases by explaining how the iterative approach applies to them. Chapters 6- 9 describe each of the four phases in detail. We focus on what is to be achieved--that is, the objectives of each phase--and guide you in reaching those objectives. This will help you to stay focused on the most essential activities in an actual project. Additionally, we present the RUP activities in a time-based perspective--that is, in the order they are applied in a real project--to give you a reference to understand when to do the activities as you work through a project.
Adopting the RUP requires some preparation and some preliminary knowledge on the part of the adopting organization. Part III provides basic knowledge in key areas to support a streamlined implementation. Chapter 10 walks you through the RUP product, detailing how it can be extended and configured to meet project- and organization- specific needs. Chapter 11 briefly outlines some strategies that may be useful for implementing the process including incremental rollout, pilot projects, and training curricula. Our experience shows that moving from a waterfall approach to iterative development can be a difficult transition for Project Managers, and Chapter 12 provides guidelines for planning a RUP project. Over the years, we have seen patterns of success and patterns of failure in RUP adoptions. Chapter 13 discusses the patterns of failure and how to avoid them, guarding you from repeating the mistakes of others.
The RUP product provides comprehensive guidelines for a wide array of software development activities. Part IV, Chapters 14-18, presents guides for each of the five key roles in any software project: Project Manager, Analyst, Architect, Developer, and Tester. For each role, we present the RUP from that role's perspective, and we describe the mission, the desired qualifications, and the key activities, as well as recommended reading and training. Note that there is no separate chapter for the Process Engineer: Most of this role is described in Chapters 10 and 11.
Based on your role in your software organization and what you want to learn from this book, we recommend the following readings:
Latest information related to this book, including updates, relevant articles, discussion forums, and author speaking schedules can be found on http://www.rupmadeeasy.com.
Additional information about the RUP product, including a data sheet and a product demo, can be obtained from Rational Software at http://www.rational.com/products/rup.
If you are already using the RUP product, additional resources are available from the RUP Knowledge Center on the Rational Developer Network (RDN) at http://www.rational.net.
Academic institutions can contact Rational Software for information on a special program for including the RUP in a software engineering curriculum: http://www.rational.com/corpinfo/college_relations/seed/index.jsp.
Posted March 10, 2003
Posted April 9, 2010
No text was provided for this review.