Mijatov, S. (2018). A Framework for testing fUML models [Dissertation, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2018.55983
Software industry is constantly looking for ways to improve the productivity of the software development process, as well as the quality and durability of the developed software product. A significant factor behind the difficulty of developing complex software is the wide conceptual gap between the problem and the implementation domain of a developed solution. Model Driven Software Engineering (MDSE) is an approach to software development whose aim is the automation of the development process through the specification of models containing domain specific knowledge of the system under development, and transformation of such models into the implementation of the system. Based on the premise that the implementation code is not the main result of the development process, but rather the system knowledge encoded inside the models, starting point in MDSE are the conceptual and implementation independent models of the domain knowledge which are then transformed, according to some formal rules, into implementations on selected target environments. One of the important issues when using the MDSE approach is that once the implementation artifacts are produced from the models, any existing defects at the model level get transferred to the implementation level, where it is more expensive, in terms of time and effort, to detect and correct them. To improve the development process when using a model driven approach, adequate means for detecting and correcting defects already on the model level are necessary. One of the most popular modeling languages in MDSE is the Unified Modeling Language (UML), a standard by the Object Management Group (OMG). UML is composed of thirteen diagram types, which can be used for specifying structural and behavioral aspects of a software system. In order to support the execution of models defined with UML, OMG introduced a standard called Semantics of a Foundational Subset for Executable UML Models (fUML), which defines the operational semantics for a subset of UML. Furthermore, a reference implementation of an interpreter that can execute fUML compliant models exists. The goal of this thesis is to utilize this precise and standardized specification of the semantics and the interpreter of fUML in order to address the lack of testing facilities for fUML models,