Using UML For modeling a distributed Java Application