Our research focuses on the analysis of extra-functional properties of software systems. For this, we assume that software, software architects specify a software model to be analyzed at design-time. The systems we are interested in are component-based systems, service-oriented systems, and systems build on top of cloud computing platforms. The analysis methods we are looking at leverage the fact, that components or services have to be shipped with rich interface specifications. Based on the specifications of these single entities, methods for compositional analysis are developed.
In our recent research activities, we address two significant shifts in the environments of modern software systems. First, the amount of available computing capacity tends to be more and more unbound. On the one hand, this is realised by multi- and many-core CPUs for single desktop and sever PCs. On the other hand, due to the wide-spread adoption of cloud computing, systems can acquire as many computational nodes at runtime as the system’s provider is willing to pay for. Hence, we face an environment in which the bottleneck for performance or scalability should no longer be the number of processing units but other types of resources. In contrast to this trend, both, software modelling languages for quality analyses, e.g., UML2 with MARTE annotations, as well as performance analysis methods, are focused on CPUs as major bottleneck. Additionally, in the models as well as in the analyses runtime reconfigurations, e.g. the acquisition of new resources, have not been addressed explicitly.
In this context, we are researching new modelling languages to specify this new type of systems and analytical approaches to evaluate the fulfilment of their extra-functional properties at design-time. Our current main focus in the latter is on performance or scalability for information systems and safety for mechatronic systems. Performance and scalability are the main drivers of my two large-scale research projects at the moment. First, the CRC 901 ”On-The-Fly Computing” in which we built models for the scalability of dynamic, self-adaptive service compositions, performance analyses which adapt their accuracy to the available analysis time, and advanced model transformation techniques. Second, the EU FP7 STREP ”CloudScale” in which we aim to define a development method to construct scalable service compositions on top of recent cloud computing platforms. This method covers pattern and best practices to design and analyse systems, but also reverse engineering methods to create software scalability models from implementations in which we try to detect scalability bottlenecks.