Formal modelling of use cases with X-machines

Use cases are a popular method for capturing the behavioral requirements of software systems. They are usually written in informal text form describing the interactions between users and the system. Use cases are the central driving artifacts in Unified Process (UP), an agile software methodology. Testing plays a very important role in UP and other agile methodologies, such as Extreme Programming. X-machines is a formal method for the specification of systems. Furthermore, a method for testing systems specified by X-machines exists that generates a complete test case set. This paper proposes the integration of X-machines in the UML use case model, in order to facilitate the generation of a complete test case set for system testing. We present a transformation that semi-automatically transforms use case text into its corresponding X-machine model and we demonstrate the transformation by using the example of an ATM. We also suggest some improvements in the design of X-machine models, such as the use of compound inputs (consisting of interaction functions and data) and a structured representation of the memory, giving an object-oriented flavor, and we discuss the benefits of these improvements.

[1]  Samuel Eilenberg,et al.  Automata, languages, and machines. A , 1974, Pure and applied mathematics.

[2]  Doug Rosenberg,et al.  Use case driven object modeling with UML: a practical approach , 1999 .

[3]  Petros Kefalas,et al.  A DESIGN LANGUAGE AND TOOL FOR X-MACHINES SPECIFICATION , 2000 .

[4]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[5]  Markus Lepper,et al.  Using use cases in Executable Z , 2000, ICFEM 2000. Third IEEE International Conference on Formal Engineering Methods.

[6]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[7]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[8]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[9]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[10]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[11]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[12]  Nikolai Tillmann,et al.  Testable use cases in the Abstract State Machine Language , 2001, Proceedings Second Asia-Pacific Conference on Quality Software.

[13]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[14]  M. Holcombe,et al.  A Formal Method for the Development of Agent-Based Systems , 2003 .

[15]  Tsun S. Chow,et al.  Testing Software Design Modeled by Finite-State Machines , 1978, IEEE Transactions on Software Engineering.

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

[17]  Lionel C. Briand,et al.  A UML-Based Approach to System Testing , 2001, UML.

[18]  Ivar Jacobson,et al.  Object-oriented development in an industrial environment , 1987, OOPSLA '87.

[19]  Gunnar Övergaard,et al.  A Formal Approach to Use Cases and Their Relationships , 1998, UML.

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

[21]  C. J. Harwood Correct Systems: Building a Business Process Solution , 2000 .