Congratulations to Ms. Fazilat Hojaji for selecting her paper entitled “Model Execution Tracing: A Systematic Mapping Study” as one of the best papers of the Software and Systems Modeling (SoSyM) Journal in 2019.ِ For this reason, the paper found an opportunity to be presented in a special session at MODELS 2019 in Munich, Germany.
Dynamic verification and validation (V&V) techniques are used to verify and validate the behavior of software systems early in the development process. In the context of model-driven engineering, such behaviors are usually defined using executable domain-specific modeling languages (xDSML). Many V&V techniques rely on execution traces to represent and analyze the behavior of executable models. Traces, however, tend to be overwhelmingly large, hindering effective and efficient analysis of their content. While there exist several trace metamodels to represent execution traces, most of them suffer from scalability problems. In this paper, we present a generic compact trace representation format called generic compact trace metamodel (CTM) that enables the construction and manipulation of compact execution traces of executable models. CTM is generic in the sense that it supports a wide range of xDSMLs. We evaluate CTM on traces obtained from real-world fUML models. Compared to existing trace metamodels, the results show a significant reduction in memory and disk consumption. Moreover, CTM offers a common structure with the aim to facilitate interoperability between existing trace analysis tools.
Schedule details: schedule.pdf. Speakers: speakers_introduction.pdf Slides: Day One – Session 1 (Dr. Zamani) Day One – Session 2 (Ms. Hojaji) Day One – Session 3 (Dr. Mahmoudzadeh & Mr. Mousavi) Day Two – Session 1 (Mr. Fazli) Day Two – Session 2 (Dr. Afsharchi) Day Two – Session 3 (Mr. Tavassoli) Pictures: See the […]
Model-Driven Engineering is a development paradigm that uses models instead of code as primary development artifacts. In this paper, we focus on executable models, which are used to abstract the behavior of systems for the purpose of verifying and validating (V&V) a system’s properties. Model execution tracing (i.e., obtaining and analyzing traces of model executions) is an important enabler for many V&V techniques including testing, model checking, and system comprehension. This may explain the increase in the number of proposed approaches on tracing model executions in the last years. Despite the increased attention, there is currently no clear understanding of the state of the art in this research field, making it difficult to identify research gaps and opportunities. The goal of this paper is to survey and classify existing work on model execution tracing, and identify promising future research directions. To achieve this, we conducted a systematic mapping study where we examined 64 primary studies out of 645 found publications. We found that the majority of model execution tracing approaches has been developed for the purpose of testing and dynamic analysis. Furthermore, most approaches target specific modeling languages and rely on custom trace representation formats, hindering the synergy among tools and exchange of data. This study also revealed that most existing approaches were not validated empirically, raising doubts as to their effectiveness in practice. Our results suggest that future research should focus on developing a common trace exchange format for traces, designing scalable trace representations, as well as conducting empirical studies to assess the effectiveness of proposed approaches.
Our paper entitled “Model Execution Tracing: A Systematic Mapping Study” was accepted in the Software and Systems Modeling (SoSyM) journal.
Understanding software behavior by analyzing its execution traces is an important enabler for many software engineering tasks. In Model-Driven Development (MDD), dynamic analysis methods are often used to analyze executable models to enable the understanding of software behavior in early stages of the development process. An execution trace of a model can provide information to help reason about executable models. However, understanding an execution trace is not an easy task due to the size and complexity of typical traces. In this work, we aim at tackling this problem by proposing a model tracing framework, comprising compaction techniques to simplify the analysis of large traces at a higher level of abstraction, and a model tracing language, to capture run-time behavior of the executed model adequately.