La importancia de la arquitectura de software: cómo los patrones de diseño  pueden mejorar la calidad