S2D2: Software Security Driven Development Metodología para evitar la aparición de vulnerabilidades durante el desarrollo de un producto y facilitar su posterior auditoría