When estimating the quality of an application, usually non-functional properties (NFPs) such as utilization or throughput are monitored. Many different analysis and simulation approaches have been proposed to allow an early stage performance analysis on UML model-level. Due to the lack of formal execution semantics of UML, however, many of these approaches transform the UML software model into a dedicated performance model such as queuing networks. This transformation can introduce additional complexity for the user and developers.
We therefore used the previously presented model-based analysis framework on fUML to develop a performance analyzer that can analyze the software model directly. This analyzer executes a number of modeled workload scenarios and performs operational analysis to calculate different performance properties. The workload scenarios represent expected interactions with the software that need to be analyzed.
Classes in the software model can be declared as service centers, which provide different operations that can be requested by a workload scenario. A workload pattern, e.g., Poisson arrival, defines how often a specified scenario is executed. The requests resulting from multiple executions compete for the service centers and need to wait if the service center is busy with another request (resource contention). This temporal overlap hampers the performance of the overall software and is reflected in the different performance properties. Furthermore, our performance analyzer is able to consider multiple instances of the same service center and supports different balancing strategies as well as different dynamic horizontal scaling strategies.
Further details as well as a case study and the related sources can be found at http://www.modelexecution.org/?page_id=204#resource_contention