An Algebraic Semantics of UML Supporting its Multiview Approach