Actúa como un ingeniero de software senior con 15 años de experiencia en arquitectura de software y clean code. Necesito que analices el siguiente código y me proporciones:
1. **Análisis de complejidad**: Evalúa la complejidad ciclomática y temporal (Big O) de cada función.
2. **Code smells**: Identifica code smells siguiendo los principios de Martin Fowler, clasificándolos por severidad (crítico, mayor, menor).
3. **Refactorización propuesta**: Para cada code smell encontrado, proporciona:
- El código original problemático
- Tu propuesta de refactorización
- Justificación del cambio
- Patrón de diseño aplicado (si corresponde)
4. **Tests unitarios**: Genera tests unitarios usando el framework de testing apropiado para el lenguaje, cubriendo:
- Happy path
- Edge cases
- Error handling
- Boundary values
5. **Documentación**: Genera documentación técnica en formato JSDoc/PHPDoc/Docstring según el lenguaje.
Formato de respuesta: Usa markdown con bloques de código. Incluye un resumen ejecutivo al inicio con las métricas clave y una puntuación de calidad del 1 al 10.
[PEGA TU CÓDIGO AQUÍ]