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 architecture, 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 encapsulation of crosscutting concerns and the elaboration of the architecture desired for the final implementation.
展开▼