After killing the Actor in The Death of the Actor my next victim is the use case. Don’t use Use cases in SysML (or UML) models anymore!
My statement seems to be revolutionary or stupid (or both). Just to be not misunderstood, I’m not against the concept of use cases and actors. I believe that the SysML model elements Actor and UseCase are not necessary and useful. I’ve already explained it for the Actor in my previous post The Death of the Actor.
The definition of the use case in the OMG specification document is free of any method and only explains the language element UseCase. It depends on your modeling method how to use the use case. I use the modeling process SYSMOD which is not very specific, but more a collection of common best practices. In SYSMOD a use case has some additional information like trigger and result or pre- and postcondition. The functional details of an use case are described with activities. A typical use case diagram looks like this (again I use the forest fire detection system):
And the model structure with the activity behind the use case looks like this:
The use case contains the activity and both have the same name “Detect and report fire”. So why do we need the use case element? You could add additional information like the trigger and result to the activity element. And you could still create “use case diagrams” with real actors or blocks as actors (see The Death of the Actor):
If you are a big fan of the ellipse symbol, create a new stereotype “use case activity” and define the ellipse symbol for it. Then you can’t see any change in the diagram, but you have no actors and use case elements in the model.
Without use case elements
- automation scripts on the model are easier to implement (e.g. model checker, document generation, simulation).
- you have fewer elements for the configuration management.
- you have fewer elements for reviews.
- it is easier to navigate through the model tree.