QML Quickstart

Aus SDQ-Wiki
Zur Navigation springen Zur Suche springen

This page describes how to get a QML model needed for the optimisation of PCM models with PerOpteryx. The QML model describes the quality attributes that should be optimized. Furthermore, it describes the quality requirements on the quality attributes.


You need a working PCM bench and a valid PCM model.

Get started

  • You need to create a QML Declarations model
    • File -> New -> Other...
    • Type in the text field: "QMLDeclarations"
    • QML Quickstart Screen 1.png
    • Click "Next" and choose Folder and file name. Click "Finish".
    • The Editor opens the file and loads standard QML models.
      • Standard models are indicated by "pathmap://PCM_MODELS/..."
    • QML Quickstart Screen 2.png
  • Configure the QML Declarations model to optimise response time, reliability, and cost (standard).
    • Expand "pathmap://PCM_MODELS/PCMStandardQMLProfile"
    • Drag the SimpleQMLProfile item "PCMStandardQMLProfile" and drop it on your QML Declarations
    • QML Quickstart Screen 3.png
    • Load the Usage Model of your PCM model.
      • Right click -> Load resource... -> Search your file and click ok
    • Click your SimpleQMLProfile and choose your Usage Model in the properties view
    • Click your Usage Scenario Requirement in the properties view
      • Set "Require Contract" to "PCMStandardQMLContract" and set "Usage Scneario" to your Usage Scenario of your Usage Model.
      • Create further Usage Scenario Requirements if you have more Usage Scnearios and repeat.
        • Right click on Usage Scenario Requirement -> New Sibling -> Add UsageScenarioRequirement
      • QML Quickstart Screen 4.png
  • If you dont want to optimize the standard quality attributes or if you want constraints, you need to modify the QML Contract.
    • Drag the SimpleQMLContract "PCMStandardQMLContract" and drop it on your QML Declarations. Modify the ID of your new item in the properties view.
    • QML Quickstart Screen 6.png
    • In your Profile, choose your new Contract in the properties view as required contract.
    • QML Quickstart Screen 7.png
      • Repeat for every Usage Scenario Requirement
    • Modify your Contract by addind and removing objectives and/or constraints.
      • Example: QML Quickstart Screen 8.png
        • In this example, I removed one objective, and added a constraint on the response time.
    • Validate your model (Right click -> Validate) to make sure your model is ok.
  • Choose your QML model file in the Run configuration.
    • QML Quickstart Screen 5.png


  • Refinements (Contract, Profile) are not supported yet
  • Entry Level System Call Requirements are not supported yet

Further information

The integration of QML was initialised by the diploma thesis of Qais Noorshams documented by the following artefacts:

  • Thesis: Focusing the optimization of software architecture models using non-functional requirements. (PDF)
    • Contains the QML metamodel description
  • QUASOSS'10: Using Quality of Service Bounds for Effective Multi-objective Software Architecture Optimization. (PDF)
  • QUASOSS'10: Focussing multi-objective software architecture optimization using quality of service bounds, to appear.