A Framework for Bridging the Gap Between Design and Runtime Debugging of Component-Based Applications

One concern when building application by assembling software components is to validate component interactions, e.g., to ensure that components exchange compatible messages. This validation requires examining data values that are only known at runtime. In current practice, this validation is often performed manually at the code level, i.e., architects need to insert validation code into the application code. This situation makes the interaction validation costly. Moreover, few platforms provide sufficient tools for supporting this validation. As a solution, we propose CALICO, a model-based framework for runtime interaction validation. CALICO enables architects to specify validation concerns in the application model. It automatically propagates this specification to application code so that component interactions in the application can be checked at runtime. Based on the detected errors, CALICO allows architects to revisit the design to fix the detected errors, and then to repeat the runtime validation in an iterative process. This paper focuses on the integration of tools in CALICO, for linking between validation specification at design time and validation realization at runtime. Moreover, we show how to extend CALICO to support multiple platforms with small development effort.