Use cases are intended to specify system behavior from the user’s point of view. In UML, use cases are meta-modeled as classifiers, trying to fit them within the general object-oriented paradigm. Classifiers specify a set of instances, and use case instances are said to be occurrences of emergent behaviors, that is, concrete system-actor interactions. This idea poses some difficulties, since it is not clear how an interaction can have classifier features such as attributes, operations and associations. Therefore, we challenge the notion that use case instances are interactions. On the other side, if we proceed on to the complete specification of system behavior by means of use cases, we reach a notion of use case (a coordinated use of system operations) that is very close to the traditional role with an associated protocol interface, therefore concluding that use cases and protocols are not essentially different things.
['Gonzalo Génova', 'Juan Llorens']
The Emperor's New Use Case