The Unified Modeling language user guide