Abstract—A simple and effective composition of software services into higher-level composite services is still a very challenging task. Especially in enterprise environments, Quality of Service (QoS) concerns play a major role when building software systems following the Service-Oriented Architecture (SOA) paradigm. In this paper we present a composition approach based on a domainspecific language (DSL) for specifying functional requirements of services and the expected QoS in form of constraint hierarchies by leveraging hard and soft constraints. A composition runtime will resolve the user’s constraints to find an optimized composition semi-automatically. To this end we leverage data flow analysis to generate a structured composition model and use two different techniques for the optimization, a constraint programming and an integer programming approach.