Service-Oriented Computing (SOC) has gained considerable popularity for implementing Service-Based Applications (SBAs) in a flexible and effective manner. The basic idea of SOC is to understand users' requirements for SBAs first, and then discover and select relevant services (i.e., that fit closely functional requirements) and offer a high Quality of Service (QoS). Understanding users' requirements is already achieved by existing requirement engineering approaches (e.g., TROPOS, KAOS, and MAP) which model SBAs in a requirement-driven manner. However, discovering and selecting relevant and high QoS services are still challenging tasks that require time and effort due to the increasing number of available Web services. In this paper, we propose a requirement-centric approach which allows: (i) modeling users' requirements for SBAs with the MAP formalism and specifying required services using an Intentional Service Model (ISM); (ii) discovering services by querying the Web service search engine Service-Finder and using keywords extracted from the specifications provided by the ISM; and(iii) selecting automatically relevant and high QoS services by applying Formal Concept Analysis (FCA). We validate our approach by performing experiments on an e-books application. The experimental results show that our approach allows the selection of relevant and high QoS services with a high accuracy (the average precision is 89.41%) and efficiency (the average recall is 95.43%).