Category Theoretic Approaches of Representing Precise UML Semantics