Proceedings of the 22nd international conference on Software engineering
The architecture of a UML virtual machine
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Pragmatics of Model-Driven Development
IEEE Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Model-driven Development of Complex Software: A Research Roadmap
FOSE '07 2007 Future of Software Engineering
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Execution and simulation of (profiled) UML models using pópulo
Proceedings of the 2008 international workshop on Models in software engineering
A UML simulator based on a generic model execution engine
MoDELS'06 Proceedings of the 2006 international conference on Models in software engineering
Symbolic execution for software testing in practice: preliminary assessment
Proceedings of the 33rd International Conference on Software Engineering
Model-Driven engineering in a large industrial context — motorola case study
MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
Testing and debugging UML models based on fUML
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
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.