Use Cases are more than System Operations
Paper in proceedings, 2005
Abstract. Correctly written use cases can be an important artifact for describing how a software system should behave. Use cases should be informal enough to permit anyone in a software project to understand them, in particular the customer (often lacking a formal background). One consequence of adopting use cases to, for example, MDA (Model Driven Architecture) can be an increasing level of formalism, which can severely limit understanding of use cases. Also, too few guidelines for how to write use cases make them both hard to write and understand. Finding the right level of formalism is the topic of this paper. We suggest a new way of writing the action steps of use cases by introducing action blocks. The introduction of action blocks makes use cases more formal, but still understandable. In addition, action blocks supports the creation of contracts for system operations. In this paper we also argue that treating system operations as use cases is a misuse of use cases system operations and use cases should be separate artifacts. One should be able to obtain several system operations from a use case, otherwise there is no dialog (process) between actors and use cases. We believe that having a clear distinction between use cases and contracts will improve the quality of both.