// this is a comment // place imports here, e.g. // import uri // Summary of operators // '=' is an assignment // ':' starts a list (e.g.: elementA, elementB, elementC) AdaptationProcess ExampleProcessName { goal // '=' is an assignment, i.e., a text is assigned to myDescription Description myDescription = "A verbose description of the goal of the adaptation process so that anyone can understand the purpose of the modeled adaptation process" objectives: // ':' starts a list Objective Objective1Name = "A string specifying the objective 1", Objective Objective2Name = "A string specifying the objective 2" actions: Action Action1Name operationType SCALE_OUT { // optional input output parameters input: param1Name, param2Name output: param3Name referredAdaptationPoint ref:xyz1 THIS INCREASE // I have no clue so far how to refer to external model instances // THIS and INCREASE are values for AdaptationScope and AdaptationDirection } // Alternative notation for an Action (possible in Xtext?): // param3Name Action1Name(param1Name, param2Name) {referredAdaptationPoint ref:xyz1, THIS, SCALE_UP} Action Action2Name operationType SCALE_IN { // optional parameters referredAdaptationPoint ref:xyz2 RANDOM MIGRATE// I have no clue so far how to refer to external model instances } tactics: Tactic Tactic1Name { // optional input output parameters input: param1Name, param2Name output: param3Name implementedPlan: StartAction, Action1Name, ... Action2Name, StopAction } // Alternative notation for a Tactic: // param3Name Tactic1Name(param1Name, param2Name) {StartAction, Action1Name, ... Action2Name, StopAction} Tactic Tactic2Name { // optional input output parameters implementedPlan: StartAction, // Some other actions StopAction } strategies: Strategy Strategy1Name { objective=Objective1Name triggeringEvents=EventXYName tactics: WeightedTactic1Name=Tactic1Name 1.3 1.0 ref:LastImpactXY1, WeightedTactic2Name=Tactic2Name 2.1 2.0 ref:LastImpactXY2 weightingFunction WeightingFunction1Name { WeightedMetric1Name = 1.9 ref:ResponseTimeMetric1 WeightedMetric2Name = 2.3 ref:UtilizationMetric1 } } // definition of parameters should be optional parameters: ParamTypeA param1Name, ParamTypeB param2Name, ParamTypeC param3Name }