Model-Driven Aspect-Oriented Software Security Hardening