Model-Driven Security with A System of Aspect-Oriented Security Design Patterns