PERFORMANCE EVALUATION OF SOFTWARE ARCHITECTURES WITH QUEUING NETWORK MODELS Simonetta Balsamo Roberto Mamprin Moreno Marzolla Dipartimento di Informatica, Universit` a Ca’ Foscari di Venezia via Torino 155, 30172 Mestre (VE), Italy E-mail: balsamo@dsi.unive.it rmamprin@dsi.unive.it marzolla@dsi.unive.it KEYWORDS Unified Modeling Language, Queuing Networks, Software Performance Evaluation, Distributed Systems ABSTRACT We propose an approach for software performance modeling based on UML software specifications and queuing network performance models. We consider the integration of perfor- mance and specification model to provide a tool for quantita- tive evaluation of a software architecture at the design phase in the software development cycle. The approach derives a performance model starting from an annotated Unified Mod- eling Language (UML) specification, based on a subset of the standard UML Profile for Schedulability, Performance and Time Specification. More specifically, we consider a set of UML diagrams, i.e., Use Case, Activity and Deployment di- agrams, and we propose an algorithm for deriving a product- form queuing network performance model. Then the queuing network model is easily analyzed with product-form algo- rithms to obtain a set of performance indices that are used to provide feedback at the software architectural design level. The analysis cycle can be iterated to meet given performance goals or to compare different software alternatives. The ap- proach has been implemented as a prototype tool written in Java. 1 INTRODUCTION Large software systems play a vital role in many commercial and industrial infrastructures. Complex e-commerce sites, data acquisition networks and distributed computing envi- ronment are very expensive to develop and maintain. Such systems should provide an adequate level of performances in order to be used. Early performance analysis can help to identify and correct problems from the early stages of the software development life cycle, in order to compare design alternatives or to identify system bottlenecks. Early identi- fication of performance problems is desirable as the cost of design change increases with the later phases in the software development cycle. Performance evaluation should be integrated in the soft- ware development process (Balsamo et al., 2004b; Smith, 1990; Smith and Williams, 2002). The SPE approach by Smith (Smith, 1990) was the first integrated approach for de- velopment and performance evaluation of software systems. Several approaches have been proposed in the last years that can be classified by considering various characteristics, in- cluding the software and the performance model. A compre- hensive review of the software performance methods can be found in (Balsamo et al., 2004b). Many approaches consider UML (Object Management Group (OMG), 2001) as the software system specification. This choice is motivated by the fact that UML has a large users base, and is able to model many different aspects (static, dynamic, behavioral) of a system. Moreover, UML provides standard extension mechanisms based on additional constructs. Recently the UML Profile for Schedulability, Performance and Time Specification has been adopted as an OMG standard (Object Management Group (OMG), 2002a). It allows the definition of requirements for performance and scheduling analysis, and the specification of quantitative in- formations directly in the UML model. Some recent ap- proaches for software performance analysis are based on the UML Profile (Xu et al., 2003). As the performance model is concerned, various methods consider formal and analyti- cal models such as Queuing Network (QN), stochastic pro- cess algebras or stochastic Petri nets, and some are based on simulation. It has been observed that QN are the preferred model, taking advantage of the high level of abstraction of the QN formalism that allows easier mapping and feedback of software systems, especially in computer-based software development process (Balsamo et al., 2004b; Grassi and Mi- randola, 2004). In this paper we propose an approach for software per- formance modeling based on UML as the software descrip- tion notation, and Queuing Networks (Kleinrock, 1975) as the performance model. The motivation of the choice of QN models is twofold. First, the high level of abstrac- tion of the model makes it easy to define a direct corre- spondence between software components and performance model elements, so that we can easily derive the QN from UML diagram specification. This allows us to provide a di- rect feedback of performance results at the software design level. The second motivation is that we aim to identify a simple product-form QN (Kleinrock, 1975) in order to ob- tain performance measures by computationally efficient al- gorithms (Reiser and Lavenberg, 1980). We consider the software performance evaluation cycle