The Q-ImPrESS project aims at developing software tools which enable the design-time Quality Impact Prediction for evolving service-oriented software. The development of the tools is work in progress. This page presents an overview of the different tools, which are encorporated in the Q-ImPrESS IDE.
Backbone plug-ins provide core infrastructure for integration of all Q-ImPrESS tools by offering API to access basic concepts of Q-ImPrESS IDE. Furthermore, they visualize these concepts inside the Eclipse platform.
For more information on the usage and installation of the Q-ImPrESS IDE, please refer to D6.1: Annex – Guidelines and Tool Manuals.
Q-ImPrESS IDE offers different ways of modelling.
The first option is represented by textual editors, which serve for rapid model prototyping and modifications. They are provided for all parts of the Service Architecture Model.
For more information on the usage and installation of the textual editors, please refer to the corresponding section in D6.1: Annex – Guidelines and Tool Manuals.
The Q-ImPrESS IDE offers graphical model editors for the creation of SAM Repository and SAM ServiceArchitectureModels. A graphical representation of the models allows a clearer visual representation of relationships between model elements than textual editors. For this reason, we are offering the choice between a graphical and a textual representation for a selection of models. The graphical model editors were created using the Eclipse Graphical Modeling Framework. For more information on the usage and installation of the graphical editors, please refer to the corresponding section in D6.1: Annex – Guidelines and Tool Manuals.
SISSy Reverse Engineering Toolchain
The Q-ImPrESS Reverse Engineering Toolchain can be used to obtain a SAM Repository model containing components and interfaces that have been detected based on existing source code.
The reverse engineering toolchain of Q-ImPrESS can be started from a unified run dialog in the Java perspective. In the run dialog you can select which design alternative from the alternatives repositories shall be filled with a reverse engineered model. Pick the source code folder which you like to reverse engineer, configure the reverse engineering metrics (if desired), and run the reverse engineering tooling. The resulting models are located in the models folder of the reverse engineering project.
For more information on the usage of the reverse engineering toolchain, please refer to the Reverse Engineering tool section in D6.1: Annex – Guidelines and Tool Manuals.
SAM Performance Prediction
To analyze the performance of a Q-ImPrESS Service Architecture Model, it can be transformed into a Palladio Component Model (PCM) instance. The PCM allows for analyzing the performance of software models based on different solvers as well as a simulation. For this purpose, the PCM has been included into the Q-ImPrESS IDE.
The transformation from a Service Architecture Model into a PCM instance and the execution of a PCM simulation can be done fully automatically.
The PCM performance simulation results help to answer questions about service response times or resource utilizations.
For more information on the usage of the tool, please refer to the SAM Performance Prediction section in D6.1: Annex – Guidelines and Tool Manuals.
SAM Reliability Prediction
A Service Architecture Model composed of both black-box and white-box services is suitable for Reliability Estimation. The core metric for Q-Impress reliability analysis is the Failure Probability per Execution (FPE). Its value is the average, expected fraction of failing runs over a large number of observations.
Black-box services can be annotated with a synthetic FPE value, which summarizes all the knowledge concerning its hidden internal behavior. For white-box services, whose operations’ behaviors are described by
means of a SEFF model, the developer can specify an FPE value for every internal activity composing the operation’s workflow. The tool will automatically compute operation’s FPE by applying Markov stochastic theory.
The reliability analysis tool will forecast the expected reliability, in terms of FPE, for each system call composing a specified usage scenario against any of the SAM design alternatives specified by the developer.
Reliability estimation is a relevant comparison term in alternative selection.
For more information on the usage of the tool, please refer to the Reliability Prediction section in D6.1: Annex – Guidelines and Tool Manuals.
SAM Maintainability Prediction
Within the Q-ImPrESS IDE, we provide a tool implementation of the KAMP method, i. e. Karlsruhe Architectural Maintainability Prediction. The purpose of the tool is to enable software architects to predict the maintainability of a software system using its architectural model. Its major contribution is support for a guided estimation of change efforts. It helps with comparing the change effort of multiple change requests on a set of architecture alternatives.
For more information on the usage of the tool, please refer to the SAM Maintainability Prediction section in D6.1: Annex – Guidelines and Tool Manuals.
Java Performance Measurement Framework
The main purpose of the Java Performance Measurement Framework (JPMF) library is to simplify the process of obtaining performance data from running applications. Instead of having to develop a performance measurement harness for each application, the library provides a generic interface that allows the user to define performance event sources that emit performance events related to application execution. The user then configures what performance are to be collected with particular performance events and the JPMF library takes care of the actual collection and storage of the data in an efficient fashion. The user of the library thus only needs to concern herself with application instrumentation, which can be performed either manually at the source code level, or automatically at the Java byte code level, using tools provided by the library.
For more information on the usage of the tool, please refer to the Java Performance Measurement Framework section in D6.1: Annex – Guidelines and Tool Manuals.
The tool can be downloaded at http://d3s.mff.cuni.cz/software/jpmf.
JPFChecker is a tool for checking consistency between implementation of a service in the Java language and its behaviour model in the TBP formalism. We say that the Java implementation is consistent with the behaviour model in TBP if the actual behaviour of the implementation reflects the behaviour model and vice versa. The algorithm for consistency checking is described in Section 3 of the D5.1 document in detail.
For more information on the usage of the tool, please refer to the JPFChecker section in D6.1: Annex – Guidelines and Tool Manuals.
Random Program Generator (RPG)
The purpose of the Random Program Generator (RPG) tool is to automatically generate software systems composed from primitive components, together with their models. Then, the generated systems can be directly executed with a simulated client load, and their performance (throughput, response times) measured. The corresponding models can be transformed to a particular performance model and to predict the performance.
By comparing the predicted and measured results, we can validate the quality predictions on a large number of systems, and, provided that the generated systems are representative enough, achieve a relatively robust validation of the given prediction method.
In the current version, the tool can generate software systems either from C++ components or from Java components. A number of components were created by porting workloads from the SPEC CPU2006 and SPEC jvm2008 benchmark suites. The models of the generated systems can be imported into the Q-ImPrESS IDE, where the usual workflow can then be applied for performance prediction. For the purposes of validation, a tool for transformation to SimQPN performance models has also been implemented.
Focusing more on developers than end users, the tool has a mostly command line interface and requires a POSIX compliant system (tested on Linux and Solaris) to run. The generated software systems have the same requirements.
For more information on the usage of the tool, please refer to the Random Program Generator section in D6.1: Annex – Guidelines and Tool Manuals.
The tool can be downloaded at http://d3s.mff.cuni.cz/software/rpg.