Skip to Main Content
Component-based software development must deal with the fact that in practical settings, components information may be incomplete, imprecise and uncertain. Architects wanting to evaluate candidate architectures regarding requirements satisfaction need to use whatever information be available about components, however imperfect. This article introduces constraint programming as a formal technique to generate, evaluate and select composite COTS-based software systems (CCSS). This formalization systematically uses components imperfect information, to evaluate and rank CCSS, according to functional and non-functional requirements. The use of constraint programming allows architects to generate and evaluate alternative solutions within reasonable time and computational resources. The proposed approach is illustrated with a running example taken from the literature.