A Design Methodology for Dynamic Reconfiguration: The Caronte Architecture