Software Design Methods For Real-Time Systems by Hassan Gomaa