The paper proposes an approach to reusing COTS software products to construct software components. This approach supports software component designers to develop software components rapidly by reusing COTS software products under a uniform software component model. We call those software components by reusing COTS software as COTS-Based software components, in short COTSB components. A software component specification is defined to serve COTSB components. It can be applied on cross platforms. Moreover, a software re-engineering technique named wrapping is used to support reusing COTS software as COTSB components. We also adopt two existing design patterns-Adapter and Abstract Factory as a systematic design approach for designing and implementing COTSB components. It can be regarded as a design blueprint for the COTSB component designers.