Simulating software behavior based on UML activity diagram

It is encouraged to develop practical approaches to ensure that the software artifacts are created as expected or defect-free as early as possible. In the industry, software analysis and testing techniques are widely used solutions for codes and executables, respectively. However, software design artifacts can only be verified by manual peer review in design phase. In this paper, we propose an approach to automatically simulate the expected software behavior depicted in UML activity diagrams. First, UML activity diagrams are parsed and initialized semantically with a concrete execution. Second, the model is symbolically executed, to collect paths, input variables, and their path conditions. Then, the path conditions are passed to a constraint solver to generate a set of concrete value of possible input variables. Final, the generated concrete input variables are semantically executed on the model to identify the defects as well as to collect the execution path. The model simulation approach reuses the design models, automates the simulation process by using model-based concolic execution, and has the advantage of visibility and observability on model simulation. In addition, we found that the solvable paths represent behavioral scenarios. While simulating the model, input values corresponding to execution paths in the model are generated automatically. They can also be used as test suites to find the inconsistency between the design and implementation. We have also developed a prototype tool to support the above process, and have conducted a trivial case study to demonstrate the applicability of our approach.

[1]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[2]  Rupak Majumdar,et al.  Hybrid Concolic Testing , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

[4]  Jürgen Dingel,et al.  System-Model-Based Simulation of UML Models , 2014, ArXiv.

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

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

[7]  Z. Zieliński,et al.  UML Simulation of a Topology Configuration Model , 2012 .

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

[9]  Koushik Sen,et al.  Concolic testing , 2007, ASE.

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

[11]  Sarfraz Khurshid,et al.  Symbolic execution for software testing in practice: preliminary assessment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[12]  Manfred Broy,et al.  Definition of the System Model , 2009, UML 2 Semantics and Applications.

[13]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

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