Need for Design Patterns and the Principles Guiding Design Patterns