Large, complex and long-lived software need to be upgraded at runtime. Addition, removal and replacement of a software component are the elementary evolution operations that have to be supported. Yet, dynamic changes are errorprone as it is difficult to guarantee that the new system will still work and that all functionalities and quality are preserved. Few existing work on ADLs fully support component addition, removal and substitution processes from their description to their test and validation. The main idea of this work is to have software architecture evolution dynamically driven by connectors (the software glue between components). It proposes a connector model which embeds the necessary mechanisms to do so. These connectors autonomically handle the reconfiguration of connections in architectures in order to support the addition, removal and substitution of components in a gradual, transparent and testable manner. Hence, the system has the choice to commit the evolution after...