Executing and debugging UML models: an fUML extension

With the widespread of the Model-Driven Development (MDD) and surfing on the success of the Unified Modeling Language (UML), software development is shifting from being code-centric to model-centric. Models become the key artefacts in the software development process. The success of the project relies on the quality of these models. Early detection of errors by debugging and testing these models is mandatory in order to reduce development cost, ensuring quality and preventing rework at later stages. The fUML standard defines the precise semantics for executing a subset of UML models by defining a virtual machine. The models are then directly executed without transformation. However, the virtual machine is defined to execute the model as an atomic action and does not fulfil the requirements for debugging it. We highlight in this paper the limit of the current specification of fUML (v1.0) and propose an approach for extending the virtual machine with the key functionality that enables debugging of fUML models. A working UML debugger prototype has been implemented and the use and evaluation of the approach are made on a case study.

[1]  Frank Weil,et al.  Model-Driven engineering in a large industrial context — motorola case study , 2005, MoDELS'05.

[2]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[3]  Dolev Dotan,et al.  Debugging and testing behavioral UML models , 2007, OOPSLA '07.

[4]  Dirk Riehle,et al.  The architecture of a UML virtual machine , 2001, OOPSLA '01.

[5]  Brent Hailpern,et al.  Software debugging, testing, and verification , 2002, IBM Syst. J..

[6]  Jonathan B. Rosenberg How Debuggers Work: Algorithms, Data Structures, and Architecture , 1996 .

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[8]  Kurt Jensen Coloured Petri Nets , 1992, EATCS Monographs in Theoretical Computer Science.

[9]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[10]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[11]  Nick Papoylias High-Level Debugging Facilities and Interfaces: Design and Developement of a Debug-Oriented I.D.E , 2010, OSS.

[12]  Steve A. Schneider,et al.  Formal Verification of Tokeneer Behaviours Modelled in fUML Using CSP , 2010, ICFEM.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Sébastien Gérard,et al.  Extending the Standard Execution Model of UML for Real-Time Systems , 2010, DIPES/BICC.

[15]  Lidia Fuentes,et al.  Execution and simulation of (profiled) UML models using pópulo , 2008, MiSE '08.

[16]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[17]  Michael Philippsen,et al.  A FUML-Based Distributed Execution Machine for Enacting Software Process Models , 2011, ECMFA.

[18]  David F. Bacon,et al.  Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion , 2007, OOPSLA 2007.

[19]  Michelle L. Crane,et al.  Towards a UML virtual machine: implementing an interpreter for UML 2 actions and activities , 2008, CASCON '08.

[20]  Alan Hartman,et al.  A UML simulator based on a generic model execution engine , 2006, MoDELS'06.

[21]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[22]  Tanja Mayerhofer,et al.  Testing and debugging UML models based on fUML , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[23]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.