Analysing UML Use Cases as Contracts

The Unified Modeling Language (UML) consists in a set of diagrams that describe a system under development. A use case diagram specifies the required functionality of the system, showing the collaboration among a set of actors that are to perform certain tasks. We complement the use case diagrams by providing formal documents (like specifications or programs), called contracts that regulate the behaviour of the actors involved. The contract is written in a language with a precise semantics and logic for reasoning - the refinement calculus - and thus it can be analysed. To express contracts we need to specify the problem domain of the system; we describe classes and UML class diagrams using also the refinement calculus. Thereby, we integrate the functional view of a system, described by the use case diagram with the object-oriented view for the same system, described by the class diagram.

[1]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[2]  Avelino Francisco Zorzo,et al.  Formal development and validation of Java dependable distributed systems , 1999, Proceedings Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'99) (Cat. No.PR00434).

[3]  Bernhard Rumpe,et al.  Systems, Views and Models of UML , 2014, UML Workshop.

[4]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[5]  Ivar Jacobson,et al.  The object advantage - business process reengineering with object technology , 1994 .

[6]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[7]  Bernhard Rumpe,et al.  The UML as a formal modeling notation , 1998, Comput. Stand. Interfaces.

[8]  Ralph-Johan Back,et al.  Contracts, games and refinement , 1997, EXPRESS.

[9]  Patrick Steyaert,et al.  Reuse Contracts as Component Interface Descriptions , 1997, ECOOP Workshops.

[10]  Wolfgang Weck,et al.  Inheritance Using Contracts & Object Composition , 1997, ECOOP Workshops.

[11]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[12]  Bernhard Rumpe,et al.  Towards a Formalization of the Unified Modeling Language , 1997, ECOOP.

[13]  Ralph-Johan Back,et al.  Correctness preserving program refinements: Proof theory and applications , 1980 .

[14]  Ivar Jacobson,et al.  Object Oriented Development in an Industrial Environment , 1987, OOPSLA.

[15]  Martin Schader,et al.  The Unified Modeling Language: Technical Aspects and Applications , 1999 .

[16]  Luigia Petre,et al.  Formalising UML Use Cases in the Refinement Calculus , 1999 .