UML Use-Case Diagrams – How to Include Notifications

umluse-case

I'm writing a use-case diagram in which an actor gets a notification. My question is similar to this one except that I'm not sure if my notification use-case is a crosscutting concern.

Suppose my system is an egg timer. The actor is a cook. The cook can set the interval after which the egg timer goes off. The cook also wants to hear the egg timer.

Use-case Diagram

Is this the proper diagram? The cook doesn't perform the "Be Notified" action. However, if I only leave the "Set Alarm Time" use-case, it isn't specified that the egg timer should actually notify the cook.

Should I put the "Be Notified" use-case in a different type of diagram? Should I make another use-case diagram where the cook is the system and the egg timer is the actor?

Best Answer

I don't think that "be notified" should be something that is even on a use case diagram. Each use case is a sequence of steps or actions. What appears on a use case diagram is just a summary of what the full use case is, since it doesn't capture all of the steps, preconditions and postconditions, minimal guarantees, triggers, or any of the other information that is typically associated with a use case.

In your specific use cases, the kinds of use cases that I'd expect would be to "set alarm time", "start timer", and "stop timer". The notification would be one result of the "start timer" use case. It's something that the system does as an output, not something that someone uses the system to accomplish.

I would recommend reading the Wikipedia article on use cases and Scott Ambler's Agile Modeling pages on Use Case Diagrams and Use Cases.

As an aside, in UML Distilled, Martin Fowler doesn't give much weight to use case diagrams, asserting that use cases are best captured in textual or tabular form. I tend to agree with this, since a use case table would capture more details. However, a diagram may provide a quick index of the use cases and their relationships to each other and to actors.