Incorporating SPE into MDA: Including Middleware Performance Details into System Models Tom Verdickt Bart Dhoedt Department of Information Department of Information Technology (INTEC) Technology (INTEC) Ghent University - IMEC Ghent University - IMEC Ghent, Belgium Ghent, Belgium tom.verdickt@intec.UGent.be Frank Gielen Department of Information Technology (INTEC) Ghent University - IMEC Ghent, Belgium ABSTRACT A typical feature of a distributed system is the heterogeneity of its components (their geographical spreading, using dif- ferent programming languages and platform architectures, etc.). To solve some of the problems related to this hetero- geneity, many distributed systems use communication mid- dleware. This paper presents an MDA model transformation algo- rithm and tool for transforming a high-level Platform Spe- cific Model (high-level PSM) to a low-level PSM by including the structural changes and the overhead of using CORBA as a middleware. The resulting PSM (a UML model annotated with performance information, using the UML performance profile) can be used for generating performance models of the system, using existing methods and tools. Categories and Subject Descriptors C.4 [Performance of Systems]: Modelling techniques General Terms Design, Performance 1. INTRODUCTION One of the critical aspects of the quality of a software sys- tem is its performance. However, software designers usually apply a "fix-it-later" approach to software performance. The application is designed to meet its functional requirements, while considerations about the non-functionM requirements (such as performance) are postponed to the final develop- ment stages. In order to meet the performance demands, lengthy fine-tuning, expensive extra hardware or even (par- tial) redesign are necessary. And even after the fine-tuning, the system may still fail to meet the performance require- ments. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permissionand/ora fee. WOSP 04, January 14-16, 2004, Redwood City, CA Copyright 2004 ACM 1-58113-673-0/04/0001...$5.00 1.1 Software Performance Engineering (SPE) An important disadvantage of the current methodologies for performance engineering (constructing a performance model of the system and using analytical solvers or simulators to extract performance estimates [3]) is that they demand an extra effort from the system architects. The system archi- tects need to study a new modelling formalism (e.g. Petri Nets or queueing networks) and need to create new models of their system. Therefore, much recent research is focused on the automatic transformation of generM-purpose system models into performance models [1, 2]. These transforma- tion tools allow system designers to model the system using the formalisms they .are familiar with (e.g. UML) and ex- tract the performance models automatically. This requires the possibility to include performance information in the system models. Therefore, some modelling formalisms have been extended with performance modelling features (e.g. the UML profile for schedulability, performance, and time). This research follows the approach taken in [2], using the same types of UML diagrams (activity, collaboration and de- ployment). This allows to obtain performance models from the output of the methodology presented in this paper by using the algorithm and the tool described in [2]. 1.2 System modelling Several modelling formalisms have been designed to aid in the design of software systems. The Unified Modelling Lan- guage is one of the most widely used modelling formalisms. It is the modelling language that will be used in this paper. Performance information is expressed in the models using the UML Profile for Schedulability, Performance and Time. The Model Driven Architecture (MDA) [4] aims at increas- ing the power of models in system development, by pre- scribing how to model the architecture of a system. MDA describes what kinds of models should be used, how those models should be used and what relationships exist between the various kinds of models. It is not a new modelling for- malism, but an approach to system development trying to standardize the use of models. MDA describes several types of models to be used. The most important types are the Platform Independent Model (PIM, addressing the opera- tion of the system, independent of the supporting platform, possibly using a technology-neutral virtual machine) and the Platform Specific Model (PSM, combines the PIM with the 120