What is UML and why is it used?