As a result of increasing demands on COTS technology, there is an increasingly huge market of COTS software. Therefore, one of the most critical activities in COTS-based system development is the COTS evaluation and selection. Unfortunately, most existing methods that have been proposed in previous studies for evaluating and selecting COTS software are still have many limitations to be applicable and used in the industry. So without an effective method to select and evaluate COTS software, the time spent for selecting the correct COTS software may offset the advantages of using it. This paper outlines and discusses the common problems in existing methods and the main processes and criteria (non-functional requirements) that are required for evaluating and selecting COTS software through theoretical and empirical studies which goal is to develop new framework to evaluate and select COTS software.