Motivation and goal
Today, complex software systems are an integral part of many every day products and services from diverse application domains. All these systems need to evolve over long periods of time and service orientation provides the flexibility needed to adapt them to ever changing requirements. Unfortunately, current standards for service-oriented development do not support the analysis of software systems with respect to their quality of service and as a result, many major innovative application domains are not fully exploiting the advantages of service orientation.
The Q-ImPrESS project aims at bringing service orientation to critical application domains, such as industrial production control, telecommunication and critical enterprise applications, where guaranteed end-to-end quality of service is particularly important. The main challenge here is to create a method for quality-driven software development and evolution, where the consequences of design decisions and system resource changes on performance, reliability and maintainability can be foreseen through quality impact analysis and simulation.
The methods and tools developed in Q-ImPrESS will allow for cost-effective development and evolution of service-oriented software. Developers will be able to try out different design scenarios and choose the best possible alternative with respect to the impact of these decisions on the quality of the software, before ever writing any single line of code. Design is always a compromise, a balance of tradeoffs between the different quality attributes considered; both attributes of external quality (quality of service) such as performance and reliability, but also attributes of internal quality such as maintainability. Choosing the right design from the beginning and thus avoiding later refactorings, tweaking and project delays to get certain quality attributes such as performance under control can easily mean savings of millions of euros in large software projects.
The Q-ImPrESS project aims at developing a tool-supported method for design-time quality prediction in service-oriented software systems. A prototypic integrated development environment, the Eclipse-based Q-ImPrESS IDE, will assist software engineers during the iterative development and evolution both in existing as well as in newly started software development projects.
The central element of a Q-ImPrESS-based development process is the Service Architecture Model (SAM), which is a new abstract design model of a software system, capturing information about a system’s static structure, behaviour, deployment and usage scenarios. It is possible to create the SAM manually for existing software systems based on the system architecture documentation and models. The Q-ImPrESS IDE offers both textual and graphical model editors for the simple and efficient creation and modification of the Service Architecture Model. The integrated SISSy (Structural Investigation of Software Systems) and SoMoX (SOftware MOdel eXtractor) tools also enable developers to automatically create a basic instance of the SAM based on the source code (Java or C++) of legacy systems .
Starting from a basic Service Architecture Model, several alternative approaches can be modeled for the implementation of a new requirement. Separate prediction models can be automatically derived to predict the performance, reliability and maintainability for each of these evolution alternatives. The Q-ImPrESS IDE internally uses meta-models of particular partners for the quality prediction analysis and simulation: the Palladio Component Model (PCM), the SOFA component model, ProCom component model and KLAPER. Based on these meta-models, concrete results are determined for the predicted performance, reliability and maintainability of each evolution alternative. Predicted metrics include response time for performance, failure probability for reliability and implementation costs for maintainability.
The integrated quality impact and trade-off analysis will provide a complete picture of consequences of design changes at both the service level and the service architecture level. The aim of this approach will be to ensure possibilities for a software engineer to experiment with different service designs and architectures in order to find the one that fulfills given requirements. In our approach, weights are used to express the relative importance of quality attributes of interest. Based on these weights, the Q-ImPrESS IDE determines the best alternative for a specific evolution scenario.
The applicability of the proposed method will be validated on two real industrial case studies taken from the domains of production control systems and telecommunications. The Q-ImPrESS approach will also be publically demonstrated using the open source Enterprise SOA Showcase.