In a component-based development process the selection of components is an activity that takes place over multiple lifecycle phases that span from requirement specifications through design to implementation-integration. Automated tool support for component selection would be very helpful in each phase. In this paper we introduce a framework that supports the selection of COTS componentsin the requirements phase. The framework lays on a tool that builds and solves an optimization model, whose solution provides the optimal COTS component selection. The selection criterion is based on cost minimization of the whole system while assuring a certain degree of satisfaction of the system requirements. The output of the model solution indicates the optimal combination of single COTScomponents and assemblies of COTS that satisfy the requirements while minimizing costs.