En la actualidad, el desarrollo de sistemas software tolerante a fallos se realiza a un nivel dependiente de la tecnología, con lo que aumenta su complejidad y disminuye la reutilización. La mayoría de estrategias de tolerancia a fallos son estáticas: se basan en replicar elementos críticos para que, ante cualquier fallo, sus réplicas tomen el relevo. En este trabajo se describe cómo la reconfiguración dinámica de arquitecturas software puede aplicarse para desarrollar sistemas tolerantes a fallos. Las técnicas de reconfiguración dinámica permiten cambiar la configuración de sistemas software complejos en tiempo de ejecución, sin necesidad de detener el sistema. Este artículo describe cómo la reconfiguración dinámica es soportada a nivel de arquitecturas software y mediante aspectos, separando la funcionalidad de reconfiguración y las políticas de recuperación frente a fallos del resto de funcionalidades del sistema. Esto se ilustra mediante la definición de las políticas de recuperación del sistema de visión del Agrobot, un sistema robótico del ámbito agrícola