Abstract
A major challenge of dynamic composition is to find ways to model components and analyze their composition in order to guarantee that the composition is free from interaction errors and deadlocks. Existing techniques for validation typically require expert knowledge in formal modelling and reasoning, and do not lend themselves to be used at runtime. However, we find that a coarse-grained description of a composition can be sufficient to ensure the consistency of compositions and to detect potential deadlocks. Our approach requires software developers to specify component models from which the properties needed for validation at runtime can be derived, and to perform some well-formedness and compliancy checks at design time. The new development tasks are integrated in a UML-based development process using concepts that developers are familiar with. The assessment of the approach indicates that developers with ordinary modelling skills are able to detect problems in composition at an early stage, and thereby design safe systems in an efficient manner.