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.
- You need to create a QML Declarations model
- 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
- 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
- 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.
- In your Profile, choose your new Contract in the properties view as required contract.
- Repeat for every Usage Scenario Requirement
- Modify your Contract by addind and removing objectives and/or constraints.
- Validate your model (Right click -> Validate) to make sure your model is ok.
- Refinements (Contract, Profile) are not supported yet
- Entry Level System Call Requirements are not supported yet
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.