Introduction
In this document, we explain the Quality and Resource Management Language (QRML), combined with a small tutorial exercise. We start with providing an overview of the constructs of the QRML language, after which we illustrate them using a Biometric Access Control (BAC) System example. Throughout the document, some practice exercises are provided, to make you familiar with the language and concepts. Both a partial BAC model to be used with the exercises and a complete version of the BAC model are available in the public section of this site.
Overview of the constructs of the QRML language
The key concept in QRML is the component. A component has an interface consisting of six parts, inputs, outputs, required budgets, provided budgets, qualities, and parameters.

The component interface, as graphically depicted above, is described as follows.
- output is a functional output (usually drawn horizontally) which is connected to the functional input of another component.
- input is a functional input (usually drawn horizontally) which is connected to the functional output of another component.
- provided budget is a resource provision (usually drawn vertically) which is connected to the resource dependency of another component.
- required budget is a resource dependency (usually drawn vertically) which is connected to the resource provision of another component.
- parameter is a configurable aspect of a component.
- quality is an aspect of a component that is intended to be optimized.
Component dependencies connect interfaces of different components, indicating that they depend on each other. These dependencies can be specified using the following constructs.
-
outputs toconnects the functional output of one component to the functional input of an other component (usually drawn horizontally). -
runs onconnects the resource dependency of one component to the resource provision of an other component (usually drawn vertically).
Each of the six elements of a component interface have a type, which can be defined in three different ways:
-
channelis used for the input and output interfaces. It therefore also concerns theoutputs todependency. -
budgetis used for the provides and requires interfaces. It therefore also concerns therun ondependency. -
typedefis used for parameters and qualities but can also be used for a provide, require, input and output.
Additionally, a component can be a composition of other components, yielding a component hierarchy, in the following two ways.
- Component aggregation is used when a component consists of (one or) multiple components.
- Alternatives concerns a component that can behave in different ways, each specified as a component.
The following diagram shows the component hierarchy of the BAC model. Relations between component with diamonds end points indicate component aggregations, or alternatives. It has been automatically generated with the QRML tooling on the basis of the QRML model.
