To facilitate rapid development of service-based systems (SBS), many service discovering and matching techniques have been developed to find services according to users' functionality requirements. However, users usually also have requirements on non-functional qualities of services (QoS), such as throughput, delay, reliability and security, which are also critical for the success of SBS. In this paper, a QoS-based service ranking and selection approach is presented to help users to select the service that best satisfies users' QoS requirements from a set of services having already satisfied users' functionality requirements. To determine how well a service satisfies users' concerned QoS requirements, a set of functions is presented to normalize services' QoS on various QoS aspects with different metrics and scales, compute services' satisfaction scores on each QoS aspect, and combine each services' satisfaction scores on all QoS aspects together as an overall satisfaction scores. Compared with existing service ranking and selection techniques, our approach has the following advantages: 1) selects the service that best satisfies users QoS requirements instead of the service with the best QoS which may be much overqualified for the users' QoS requirements, 2) improves the flexibility in users' QoS requirement specification, and 3) uses the prospect theory to more accurately model the relation between services' QoS and their satisfaction scores.