This paper introduces the basic concepts of coordination based design and addresses three important issues of COTS-based systems:
meeting user needs, selection of proper COTS software and meeting non-functional requirements. It shows that established engineering
practices that deal with these issues may be imposed during the development cycle by separating coordination from execution.
By integrating COTS software using a coordinator, designers can address these issues up front.