A major trend in software development is the use of commercial-off-the-shelf (COTS) products. COTS products offer the potential of rapid delivery to end users, shared developmental costs with other customers, and opportunities to expand capability and performance as improvements are made in the products. However, because commercial products are controlled by the marketplace and not by the projects that use them, implementing COTSbased systems (CBS) is challenging and requires a new set of practices. These practices have to balance the constraints imposed by the systems context, its architecture and design, and by the realities of the COTS market. Unfortunately, builders of COTS-based systems often assume that products can be merely thrown together. Or they attempt to use traditional engineering practices that do not work successfully when integrating COTS products. The objective of this course is to outline the differences between custom and COTS-based systems development and present techniques and recommendations for dealing with the challenges of developing systems using commercial products.