A goal represents the user’s functional or QoS objectives for a particular execution scenario. A goal consists of a metric and a utility. A metric is a measurable quantity (e.g., response time) that can be obtained from a running system. A utility function is used to express the user’s preferences (satisfaction) for achieving a particular metric. For instance, goal G1 in Figure 1a specifies the user’s degree of satisfaction (U) with achieving a specific value of Quote Response Time (M).