Home > Articles > Programming > Java

J2EE: An Introduction to the Rational Unified Process

  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close Window

Peter EelesKelli A. HoustonWojtek Kozaczynski 

Learn more…

Sorry, this author hasn't written any articles.

Sorry, this author doesn't have anything for sale.

Sorry, this author hasn't posted any blogs.

Peter Eeles, Kelli Houston, and Wojtek Kozaczynski provide a brief introduction to the Rational Unified Process (RUP), including the software engineering best practices from which it originates, the key concepts used to describe it, and the support provided for tailoring it.

The purpose of this chapter is to introduce the Rational Unified Process (RUP), the process framework on which this book is based. We start with a discussion of the software best practices that form the foundation of RUP. We then discuss the key concepts and overall organization of RUP (the RUP "architecture"), and then close with a discussion of the use of RUP as a process framework for developing a customized process.

This chapter is important because it sets the context for the next chapter, Chapter 4, An Introduction to the J2EE Developer Roadmap, which provides an overview of our customized view of RUP that has been explicitly tailored to meet the needs of the J2EE developer. The J2EE Developer Roadmap is the process we use in this book to describe the development of the Online Auction application described in Chapter 5, An Introduction to the Sample Application.

Best Practices—The Foundation of RUP

The Rational Unified Process is a software development process framework that provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end users within a predictable schedule and budget ("better software faster").

Best practices are a set of commercially proven approaches to software development. When used in combination, best practices ensure the success of a software development project by striking at the root causes of typical software development problems. RUP was explicitly designed to support the implementation of six best practices1.

  • Develop iteratively. Deliver the functionality of the system in a successive series of releases of increasing completeness, where each release is the result of an iteration. The selection of which requirements are addressed within each iteration is driven by the mitigation of project risks, with the most critical risks being addressed first.

  • Manage requirements. Use a systematic approach to elicit and document the system requirements, and then manage changes to those requirements, including assessing the impact of those changes on the rest of the system. Effective requirements management involves maintaining a clear statement of the requirements, as well as maintaining traceability from these requirements to the other project artifacts.

  • Use component architectures. Structure the software architecture using components2. A component-based development approach to architecture tends to reduce the complexity of the solution, and results in an architecture that is more robust and resilient, and which enables more effective reuse.

  • Model visually. Produce a set of visual models of the system, each of which emphasizes specific details, and "ignores" (abstracts, filters away) others. These models promote a better understanding of the system being developed and provide a mechanism for unambiguous communication among team members ("a picture is worth a thousand words").

  • Continuously verify quality. Continuously assess the quality of the system with respect to its functional and nonfunctional requirements. Perform testing as part of every iteration. It is a lot less expensive to correct defects found early in the software development life cycle than it is to fix defects found later.

  • Manage change. Establish a disciplined and controlled approach for managing change (changing requirements, technology, resources, products, platforms, and so on). Control how changes are introduced into the project artifacts, who introduces the changes, and when those changes are introduced. Provide a means to efficiently synchronize those changes across the different development teams, releases, products, platforms, and so forth.

These best practices are the result of Rational's experiences in developing its software products together with the experiences of Rational's many customers. Implementing these best practices puts a software development organization in a much better position to deliver high-quality software in a repeatable and predictable fashion.

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Related Resources

User Group Organizations: Finding Support in the Greater IT Community
By Emily Nave on July 29, 2010 1 Comment

Birds of a feather flock together, right? If you’re already a member of an established user group or looking for other like-minded technology evangelists, connecting with peers is an important part of being an active voice in the IT community.

 Big Nerd RanchAsk Big Nerd Ranch: Blocks in Objective-C
By Big Nerd Ranch on June 24, 2010 No Comments

Adam Preble answers a question about blocks.

Danny KalevYves Smith: Suspicions that The Fed is manipulating Wall Street
By Danny Kalev on May 24, 2010 No Comments

Yves Smith, the nom de plume of the creator of Naked Capitalism and one of the most savvy and respected members of the blogosphere. In professional life Yves is known as Susan Webber. Yves recently gave an interview to an Israeli financial newspaper in which she claims that a federal team unofficially called "the plunge protection team" is manipulating the stocks on Wall Street.

See All Related Blogs

Informit Network