My definition of a Use Case

By Alvin J. Alexander, devdaily.com

Every time I read an article or book about Use Cases I cringe a little bit. Every author says that Jacobson left the definition of a use case too open, and then they try to work through some elaborate scheme of what a use case means to them.

So, following in that grand tradition, I'll do the same thing here:

A use case is the smallest unit of activity that is meaningful to the user. A use case must be self-contained, and leave the business of the application being counted in a consistent state.

Do you like that? Wonder where I came up with it?

Frankly, I came up with it from my knowledge of Function Points, or more specifically Function Point Analysis. You see, the definition I just set forth is actually the definition of an elementary process in Function Point land. Interestingly, this simple description, along with descriptions of External Inputs, External Outputs, and External Inquiries fits perfectly well with the concept of Use Cases, and in fact, simplifies and even resolves the situation.

I'm not going to take any more time to explain this right now, other than to say that Function Point Analysis has been around for more than 25 years. I don't know why the definition of a use case hasn't been resolved yet, but if you'll take the time to read the Function Point Counting Practices Manual, I think you'll see that a standard definition of a Use Case can be found quite readily.

Okay, I lied, five more minutes for three more definitions that might really help you:

An external input (EI) is an elementary process that processes data or control information that comes from outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.
An external output (EO) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external output is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information . The processing logic must contain at least one mathematical formula or calculation, create derived data maintain one or more ILFs or alter the behavior of the system.
An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information from an ILF of EIF. The processing logic contains no mathematical formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered.

Again, all three of these definitions come from the good people at IFPUG.


devdaily logo