Designing Concurrent, Distributed And Real-Time Applications With Uml by Hassan Gomaa