Tracing Integration Analysis in Component-Based Formal Specifications ⋆ Martín López-Nores, José J. Pazos-Arias, Jorge García-Duque, Belén Barragáns-Martínez, Rebeca P. Díaz-Redondo, Ana Fernández-Vilas, Alberto Gil-Solla, and Manuel Ramos-Cabrer Department of Telematics Engineering, University of Vigo, 36310 Vigo, Spain {mlnores,jose,jgd,belen,rebeca,avilas,agil,mramos}@det.uvigo.es Abstract. The correctness of a component-based specification is not guaranteed by the correctness of its components alone; on the contrary, integration analysis is needed to observe their conjoint behavior. Existing approaches often leave the results of the analysis at the level of the integrated system, without tracing them onto the corresponding components. This effectively results in loss of architec- ture, as it is no longer possible to reason over those components and evolve their specification while keeping the results of integration analysis. This paper presents a formal approach to automatically translate changes on the integrated system into revisions of the components and the architecture initially defined by the developers. Several architectural alternatives are provided that, besides allowing developers to reason about the system from different points of view, promote its correct modularization in two overlapping perspectives: the en- capsulation of crosscutting concerns and the elaboration of the architecture de- sired for the final implementation. 1 Introduction Component-based approaches have been around for a long time as a means to split complexity in software development, promising better understanding of a system by its developers, improved quality and easier maintenance. A more recent idea to improve software engineering practice has been to apply incremental development techniques, which are based on obtaining successive revisions of a system until achieving the de- sired functionality. These techniques are especially suitable to deal with changeable specifications, and also with maintenance and evolution tasks. Due to the well-known problem of feature interaction, the correctness of a system is not guaranteed by the correctness of its parts, considering these in isolation. On the contrary, certain properties can only be verified by observing the conjoint operation of several components. This points out the need for integration analysis. Current approaches to component-based development often limit themselves to find- ing whether integration analysis succeeds. In case of failure, no information is given on how to modify the components, forcing the developers to attempt manual changes until getting a positive response, which is clearly unsatisfactory. The ideal would be to deter- mine the changes needed to satisfy the integration properties over the integrated system ⋆ Work partially funded by the Xunta de Galicia Research Project PGIDIT04PXIB32201PR. M. Steffen and G. Zavattaro (Eds.): FMOODS 2005, LNCS 3535, pp. 147–162, 2005. c IFIP International Federation for Information Processing 2005