Describir: UML 2 semantics and applications