Software metrics can be used to objectively quantify the quality of software components and systems, alleviating quality and risk concerns and raising assurance in component-based systems. In this paper, we present a graph-based model for component-based software development. We assume that a number of components have been characterized in terms of non-functional metrics of importance to the software system being developed, and that the interfaces connecting various components have been similarly characterized. The emphasis of this work is on cost and quality of the system under development, and reaching an acceptable compromise between the two.