Every time I read an article or book about UML “Use Cases” I cringe a little bit. Every author says something like “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. IMHO, the best use case definition was created in the early 1980s, long before Jacobson mentioned the term.
I was just updating my Example UML Use Case diagram article and it occurred to me that if you're a Business Analyst, there are a couple of questions you can ask yourself as you write a Use Case (or User Story) that will help improve the quality of your writing. Two questions specifically come to mind:
- What are the main points of this use case? (Which might also be phrased, "What points about this business process do I need to make sure everyone really agrees about?")
- Are the statements I've written testable?
Every once in a while when something hits you, you really remember it; it stands out in your mind as an “Aha” moment. One of those moments for me was when I saw a particular “Model/View/Controller” (MVC) diagram, and the light bulb went on. This diagram made the MVC pattern very simple, and I’ve never forgotten it.
Summary: A collection of UML Use Case examples (software requirements examples), based on a "real world" project.
I've been taking a little time lately to document a lot of what I know about UML Use Cases, and today I thought I'd take a few moments to link up to Use Cases I wrote for a client back in 2004. The client graciously allowed me to reprint these on this website, as long as I removed their name from all the documentation.
In my Use Case quality article yesterday I wrote about a "User Story" for a fictional "User Logs In" requirement. To complete that article, I promised to write a Use Case version of that same user story. Here then is that sample "User Logs In" Use Case, which you can compare to yesterday's User Story.
Just a quick note that over the last few days I finished a major re-work of my old Java and Object Oriented Programming (OOP) training material. I used variations of this Java/OOP training material with several classes I taught from 1998 through about 2005.
I still need to make a few more changes to improve the material, but this big change involved reformatting the training material (courseware) into much longer pages that are easier to read, and improving the appearance of the pages.
Free UML software tools FAQ: Can you recommend any free UML tools?
Over the last week or so I've been looking around again at free UML tools, and one that has really stood out is UMLet. While most UML tools try to do a lot of things, UMLet takes the "UML as sketch" approach, which I've generally come to agree with.
UML Use Case FAQ: Can you share an example of a Use Case diagram?
As I've been preparing to let other writers write on the devdaily.com website, I started to think about what different things (processes) an author would need to do on the website. As I thought about this, I started realizing that I was once again thinking like a business analyst, and then I thought I'd create an example UML Use Case diagram to show these processes.
Model View Controller pattern FAQ: Can you provide some examples and definitions of MVC objects?
Earlier today I shared a Model View Controller (MVC) diagram that I think really simplifies the MVC design pattern. It lays out the interaction rules between MVC elements, i.e., which objects can communicate with each other in a proper MVC design.
Summary: Notes on using Visio for UML diagrams (mostly why I don't like to use Visio).
I think it is okay to use Visio for UML diagrams when you're not going to be doing very many, especially if you already own a copy of Visio. But once the application you're modeling gets to be substantial at all, Visio has a major flaw:
You're trying to model a software application that has a data model with a drawing program.
To me, that's not a very good idea.