Service discovery has been recognised as an important aspect of service oriented computing. This is even more the case when developing service centric systems in which software systems are constructed based on the identification and composition of web services that together can fulfil the functionality of the system being developed. In this paper we present a framework that supports the discovery of services that can provide the functionality and satisfy the properties and constraints of service-based systems during their design phase. Our framework makes use of linear composition of service operations in which more than one web service operations can be combined to fulfil a functionality of the system when no single operation can be identified. The discovery process is based on a graph-matching algorithm. A prototype tool has been developed to demonstrate and evaluate the framework.