Ensure That You Deliver Value to Your Customer

Delivering value to your customer is a pretty obvious goal, but how is it done? Our recommendation is closely related to iterative development, with continuous feedback loops from customers, and the " use-case-driven approach." [2] So, what are use cases? Use cases are a way of capturing functional requirements. Since they describe how a user will interact with the system, they are easy for a user to relate to. And since they describe the interaction in a time-sequential order, it is easy for both users and analysts to identify any holes in the use case. A use case can almost be considered a section in the future user manual for the system under development, but it is written with no knowledge about the specific user interface. You do not want to document the user interface in the use case; instead, you complement the use-case descriptions with a UI prototype, for example, in the form of screen shots.

[2] For more information, see Jacobson 1992.

Many people have learned to love use cases for their simplicity and their ability to facilitate rapid agreement with stakeholders on what the system should do. But this is not their primary benefit. We think their major advantage is that they allow each team member to work very closely to the requirements when designing, implementing, testing, and finally writing user manuals (see Figure 2.2). Use cases force you to stay externally focused on the user's perspective, and they allow you to validate the design and implementation with respect to the user requirements. They even allow you to carefully consider user needs when planning the project and managing scope.

Figure 2.2. How Use Cases Relate to Other Software Engineering Models. Use cases are a highly effective vehicle for capturing requirements. They also allow you to work closely to the requirements when doing design, implementation, and testing, ensuring that you deliver the requirements.

graphics/02fig02.gif

Since a use case describes how a user will interact with the system, you can use UML notation such as sequence diagrams or collaboration diagrams to show how this interaction will be implemented by your design elements. You can also identify test cases from a use case. This ensures that the services the users expect from the system really are provided. Since the use cases are "user manuals without knowledge of the UI," they make a solid starting point for writing user manuals. And when prioritizing which capabilities to deliver when managing scope, you choose which use cases to implement. And as we noted above, use cases allow you to work closely to the requirements throughout the development lifecycle.

Summary

Use cases make it easy to document functional user requirements and to help all stakeholders understand the capabilities that are to be delivered. More essentially , use cases allow you to work closely to the requirements when doing design, implementation, and testing, thereby ensuring that you not only document, but also deliver, the user requirements. Combined with iterative development, they help ensure that you deliver customer value.



The Rational Unified Process Made Easy(c) A Practitioner's Guide to Rational Unified Process
Programming Microsoft Visual C++
ISBN: N/A
EAN: 2147483647
Year: 2005
Pages: 173

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net