design patterns and principles for secure systems 5251751