The primary areas of research of the Software Engineering Group in the COMQUAD-project are:
We are currently working to extend Cheesman/Daniels' software development methodology for component based systems [1] with support for specification and enforcement of QoS constraints.
Also, we found the topic of context models for characteristic definition quite rewarding, and are trying to understand how this can help in the development process. A position paper on this subject has been accepted at IASTED/SE 2004 in Innsbruck; a more detailed paper on the aspect of refinement of non-functional constraints in the development process is in preparation. In addition, we have published a paper together with the operating systems group, which gives an overview of how we support non-functional properties from the development phase all the way thru to the final product. This paper also introduces an example for the concept of Container-Managed QoS (still called Container-Managed Scheduling in the paper), which we consider very important.
Another issue we have been interested in are Quality of Service contracts as defined in [2]. We have done some work on identifying roles that are relevant to QoS-aware components and the types of contracts that come into play. We have written a position paper on this topic which has been accepted for publication at IASTED/SE 2004 in Innsbruck.
We are developing a tool kit supporting analysis and design as well as code generation. The following tools will be available:
- CQML+-Parser. The parser produces an in-memory representation in the form of an instance of the CQML+ metamodel which forms a repository acessible to the other tools. Thus, the parser and repository form the core of the toolkit. The repository will be an instance of an MDR (Model Driven Repository), which also contains the different context models which are of relevance.
- Generation of QoS-descriptors for the runtime environment. These are XML-based files which have been optimized for evaluation by the runtime environment.
- A library of CQML+ characteristics and statements. These can be reused in new specification projects making development easier, faster and less error-prone. A tool will support storing and relocating the characteristics and statements.
- A Visualisation of CQML+ together with a supporting tool allowing developers to understand CQML+ specifications at a glance.
- A graphical front-end for the tool kit embedded in a CASE tool. The front-end will allow graphical definition of components and relations between components together with associated QoS specifications. A paper on the types of diagrams which we developed, together with their embedding in the software development process is in preparation.
We are currently working on the first stage of an implementation of the tool kit. This stage will comprise the graphical front-end as well as the CQML+-Parser and repository.
We currently work on CQML+ an extension of Jan Aagedals Component Quality Modeling Language (CQML [3]). The main new features in CQML+ are:
- Specification of resource demand.
- Explicit computational model.
- Structured Characteristics.
A paper on this has been published in the proceedings of the QoS in CBSE03 workshop.
Furthermore, we work together with the Databases Group in Erlangen trying to understand if and how it is possible to formulate dependencies between offered and used QoS of a component directly in a closed term rather than by giving examples (i.e. an interval of offered QoS that goes with an interval of used QoS). Our first ideas have also been laid down in a paper published at QoS in CBSE03.
An important area of research is the semantics of non-functional specifications. A research abstract on this area of work has been accepted at the Doctoral Symposium of the International Conference on Software Engineering (ICSE'04) in Edinburgh.
The concept of Container-Managed QoS covers all decisions the runtime environment (the container) takes in order to use a given set of component implementations (with known non-functional properties) to support a given load of client requests with at least a required Quality of Service.
An example for this concept has been published in this paper (published at ICSSEA 2003 in Paris) under the name of Container-Based Scheduling. In this example the container determines the number of component instances in a pre-created instance pool and the length of a buffer allocated for incoming requests such that it can give guarantees on the maximum response times for all requests of an incoming stream of requests. This example will be treated in more detail in a paper which is under preparation.
We also work together with other groups in the project on realising a runtime environment for COMQUAD components. There has been a lab course for our students in which some of the concepts of the runtime environment have been implemented in a first prototype.
We have various topics for Diplomarbeiten and Grosse Belege on offer. The topics are in German and can be found on the Chair's list of offered topics: Click here.