Object Oriented Programming and UML