Software Model-Based Performance Analysis 1
Model-Driven Development (MDD) is an evolutionary step in the software field that is changing the focus of software development from code to models. MDD is based on abstraction to separate the model of the application under construction from underlying platform models, and automation to generate code from models. The emphasis on models facilitates the analysis of non-functional properties (NFP), such as performance, scalability, reliability, security, safety, etc. of the software under development based on its model. This brings more “engineering” into software development, leading to the paradigm known as Model-Driven Engineering (MDE).
Over the years, many formalisms and tools for the analysis of different NFPs have been developed, for example queuing networks, stochastic Petri nets, stochastic process algebras, fault trees, probabilistic time automata, formal logic, etc. The research challenge is to bridge the gap between MDE and existing NFP analysis formalisms and tools rather than to “reinvent the wheel”. An approach for the analysis of different NFPs composed of the following steps is emerging in the literature: a) add annotations describing the respective NFP to the software model, b) define a model transformation from the annotated software models to the formalism used for NFP analysis, c) analyze the NFP model using existing solvers, and d) give feedback to designers. Figure 6.1 illustrates this ...