Wednesday, February 24, 2010

How to Recognize the Requirements in Use Cases?

One of the core values of using a method is that it provides a common "language". That holds for all kind of methods, including those for software engineering. It for example helps when everybody has a same understanding of what a "use case" is. It also helps to have a common format for use cases. Similar to the agreement that (at least in the western culture) we write from left to right, top to bottom, contents at the beginning, index at the end. As is the case with a book, you will appreciate that a common format for use cases not only helps those writing them, but especially those reading them (business as well as IT people).

Next I will discuss a format that I have learned to appreciate very much, and can recommend to everyone who is writing use cases.

If you have not already decided upon a common format, or when you have the opportunity to do so, you may consider writing use cases in a two column format. I learned this technique more than a year ago from a great guy called Vince Bordo (hi Vince!). I practice this technique since then, as I find it to be more effective than what I used to do (i.e. a one-column format).

In practice this looks as in the following example, which is a reformatted version of a use case I used in some previous posting:

The beauty of this format is that it visually depicts what the system needs to do in order to satisfy the requirements, as that is exactly what the right column is about. The left column describes how actors (primary as well as secondary) interact with the system in order to satisfy the goal of the use case.

In theory (I would not try this in practice, but in theory) you should be able to cut out the right hand column of the use case and only hand that over to the developeras and tell them that this is what they need to realize. That, plus the supplemental requirements of course.


Douwe Pieter said...

Hi Jan,

Great article. I recently started using OUM and I'm pretty impressed. I think it can help us deliver the Oracle stack with our Agile vision to our customers. I've written about it on my own blog:

(And now enough with the intro).

I will follow your blog now, great to know there's a guy in The Netherlands with this knowledge!


Douwe Pieter van den Bos

Jan Kettenis said...

Thanks Douwe! You do that!

army ration said...

My weakpoint was how to find the requirements from the use case. In fact I was unaware of actual use of use case and that's why I always felt it's a headache to draw use case ans analyse it. But now I can easily get the points and use it. Can you post for class diagram with such information??

jacosawilliam said...

I must say that your language to explain things are so easy to understand and make it easier to understand by examples in real time. What a wonderful illustration of the difference between the alternative scenarios and the exceptional importance of recognizing the value of ideas, even simple, and spread them around!
gum labeling machine

curtisculbert said...

In this tutorial, web based, you will learn how to create a use case model of the functional requirements of a computer system. The course focuses on the creation and understanding of use case diagrams, use case how to write documents and how to structure the use case as a series of connected streams.
Cape Town Flights

Lokesh Sah said...

Hi Jan !!

A Random Google search for "identifying classes from use cases " brought me to your blog.So you don't know me (ofcourse). But i need a little help regarding Java.

I'm a novice in terms of Software Development .Can you please guide me on how to design the software using uml and then implementing it in Java.I'm trying to develop an email client in Java using javamail api for some college buddy. And how can i use the MVC design pattern for desktop apps.

Help will be greatly appreciated.