Combining fUML and Profiles for Non-Functional Analysis Based on Model Execution Traces
To guarantee that non-functional requirements will be fulfilled by a software system under development, it is crucial to consider non-functional properties of the system already in an early stage of the development process.
Following the model-based engineering paradigm in software development facilitates an early analysis of non-functional properties of the system under development based on the elaborated design models.
We developed a framework for carrying out UML model-based analysis of non-functional properties of a software system based on the fUML standard. This framework is depicted in Figure 1. It takes as input a UML model with (optionally) applied UML profiles capturing additional information on the model required for carrying out analyses (such as for instance performance properties of the system). The UML model is adapted into an executable fUML view corresponding to the model format supported by the fUML virtual machine. The result of executing the model using the fUML virtual machine is an fUML execution trace providing detailed runtime information about the execution of the model which enables to analyze the behavior and properties of the modeled system. However, since the fUML virtual machine does not support UML profiles, the additional information captures using profile applications is integrated into the execution trace by our framework. This integrated UML execution trace can then be leveraged by model-based analyzers to compute concern-specific metrics such as for instance the execution time of a software service provided by the system under consideration. The model-based analyzer as well as the used UML profile applications for capturing additional information about the system are specific to the non-functional property that shall be investigated by the analysis. Thus, our framework enables the implementation of any kind of model-based analysis based on execution traces without dictating any specific analysis methodology.
Our framework offers the following benefits.
- Unlike most of the currently existing model-based analysis approach, no translation of UML models into dedicated formal languages such as Petri Nets has to be performed in order to carry out analyses. Further, the analysis results do not have to be translated back from the formal language to UML.
- Different analysis techniques and methodologies can be performed on one model by applying multiple profiles to the same model and installing dedicated analyzers for answering specific questions.
- The same model can be used for analyzing functional and non-functional properties of the modeled system.
Early Performance Analysis
To illustrate the applicability as well as the benefits of our framework, we implemented a model-based performance analyzer based on our framework capable of calculating the expected execution time of software services provided by a system. We showcase this performance analyzer on the example of a component-based software system in the e-health domain by calculating the execution time of a software service provided by this system.
The UML model of the system analyzed in our showcase can be downloaded in Magic Draw format or in the Eclipse UML 2 format. Further, the performance parameters used for annotating the model can be downloaded as Excel sheet.
Magic Draw UML model: http://www.modelexecution.org/media/fuml_nfr/eHS.mdzip
Eclipse UML2 model: http://www.modelexecution.org/media/fuml_nfr/ehs.uml
Performance parameters: http://www.modelexecution.org/media/fuml_nfr/model_parameters.xlsx
Resource Contention Analysis
In this work, we introduce additional concepts that allow us to analyze resource contention on a software component level. Additionally to the structure and behavior of the software, the user can now define a workload in terms of activity diagrams. This workload represents the expected interactions with the software system and consists of different scenarios. A scenario has a number of operation calls, that can request resources such as execution time from the containing classes (service centers, SC). Each scenario is executed multiple times according to a given pattern, e.g., exponential distribution. As multiple requests can overlap and a class or service center can only serve one request at a time, later arriving requests need to be stored in a queue, allowing the analysis of certain performance properties such waiting time, queue length or utilization. Our performance analyzer is able to calculate these properties and further allows the definition of multiple instances of a class as well as a balancing strategy between multiple instances and dynamic scaling strategies. Additional information necessary for the analysis, is annotated on the software model using the UML MARTE profile.
We showcase our performance analyzer on the example of a simple PetStore system by exploring different software configurations.
We provide the performance analyzer as Eclipse plug-in as well as the source code on Google Code.
Update Site: http://www.modelexecution.org/updates
Visit the installation guide for more details on how to install the plug-in.
Source Code: https://code.google.com/a/eclipselabs.org/p/moliz/source/list?repo=nfr
Youtube Video describing the usage of the plug-in: https://www.youtube.com/watch?v=GI6LR_C6vyo
The UML model of the system analyzed in our showcase can be downloaded in Magic Draw format or in the Eclipse UML 2 format. To show the validity of our performance analyzer, we compared its results with the results obtained from a tool with similar capabilities, namely Java Modelling Tools (JMT). The comparison can also be downloaded here.
This work was partially funded by the European Commission under the Seventh Framework Programme for Research and Technological Development (FP7, 2007-2013) and is part of the ARTIST project.
Martin Fleck, Luca Berardinelli, Philip Langer, Tanja Mayerhofer, Vittorio Cortellessa. Resource Contention Analysis of Cloud-based Systems through fUML-driven Model Execution. 5th International Workshop on Non-functional Properties in Modeling, 16th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2013. (accepted as full technical paper)
Luca Berardinelli, Philip Langer, and Tanja Mayerhofer. Combining fUML and Profiles for Non-Functional Analysis Based on Model Execution Traces. In Proceedings of the 9th International ACM SIGSOFT Conference on the Quality of Software Architectures, QoSA ’12, 2012. ACM. (accepted for publication)