In this chapter the authors address the integration of functional models with non-functional models in the context of service-oriented architectures. Starting from the observation that current approaches to model-driven development have a strong focus on functionality, we argue the necessity of including nonfunctional aspects as early as possible in the service design process. We distinguish two modelling spaces, the design space and the analysis space, which can be integrated by means of model transformations. Quantitative results obtained in the analysis space, using special-purpose analysis techniques, can be related back to the design models by means of a reverse transformation. This provides a framework for incorporating non-functional analysis into methodological support for e-service development. While, for detailed design models, quantitative analysis is more or less covered by existing techniques, there is still a gap at the architectural overview level. Therefore, we propose an approach for performance and cost analysis of layered, service-oriented architecture models, which consists of two phases: a “top-down” propagation of workload parameters, and a “bottom-up” propagation of performance or cost measures. By means of an example, the authors demonstrate the application of the approach, and show that a seamless integration with detailed quantitative analysis methods (e.g., queueing analysis for performance predictions) can be achieved.
Current approaches to model-driven development of applications and services, including OMG’s Model Driven Architecture (MDA), have a strong focus on functional properties. Non-functional aspects, such as security, cost and Quality of Service (QoS), are often added as an ‘afterthought’. However, it becomes more and more accepted that these aspects should become an integral part of the design process, from the global architectural descriptions, located in the higher layers of the MDA framework (CIM-PIM) to detailed system specifications (PSM).
Architectures describe components, their relations and underlying design principles of a system (IEEE, 2000). Constructing architectures may help to, among others, increase the insight and overview required to successfully align the business and ICT. Architectural descriptions may be used to relate detailed design models to each other (of applications and services, but also of, e.g., business processes or the technical infrastructure). The combination of design models, together the realisations specified by the architectural description, prescribe the realisation of a system.
While existing techniques for quantitative analysis mainly address properties of detailed design models, the quantitative aspects of architectural models have hardly received any attention in literature. Nevertheless, quantitative properties are important also at this architectural level. In the first place, because the quantitative properties of the detailed designs influence each other: for example, business processes imposes performance requirements on the applications and technical infrastructure, while the performance characteristics of systems influence the quantitative behaviour of business processes. Similarly, the total costs for running the business include costs made in the application and infrastructure layers. Moreover, the availability of global performance and cost estimates in the early architectural design stage can provide invaluable support for system design decisions, and prevent the need for expensive redesigns at later stages.
Based on the above observations, we present in this paper our view on how models of functional and non-functional aspects, as well as the analysis of these models, can be considered in an integrated way, through all the MDA layers of models. We show the role of architectural models, and how model transformations can be used to link the different types of design and analysis models. In this context, we propose an approach for the quantification and quantitative analysis of architectural models. This approach is based on the propagation of quantitative input parameters and of calculated performance and cost measures through a layered, service-oriented architectural model. It complements existing detailed performance and cost analysis techniques (e.g., queueing analysis for performance predictions), which can be ‘plugged in’ to provide the performance results for the model elements.
Through an example, we also show how analysis of non-functional aspects influences the design process, thus corroborating the common claim that non-functional aspects should be integrated in the development process in an early stage.