Automating Component-Based System Assembly

Abstract

One of the ma jor challenges in the development of large
component-based software systems is the system assembly problem: from
a sea of available components, which should be selected and how should
they be connected, integrated, and assembled so that the overall
system requirements are satisfied? We present a powerful framework for
automatically solving the system assembly problem directly from system
requirements. Our framework includes an expressive language for
declaratively describing system-level requirements, including
component interfaces and dependencies, resource requirements, safety
properties, objective functions, and various types of constraints. We
show how to automatically solve system assembly problems using
verification technology that takes advantage of current advances in
Boolean satisfiability methods. We have implemented our techniques in
the CoBaSA tool (Component-Based System Assembly), and we have
successfully applied it to several large-scale industrial examples.