UML and Design Patterns