Hassan Gomaa is Professor and Chair of the Department of Computer Science at George Mason University. Gomaa has more than thirty years experience in software engineering, both in industry and academia. He has published more than 150 technical papers and is the author of three previous books: Designing Software Product Lines with UML; Designing Concurrent, Distributed, and Real-Time Applications with UML; and Software Design Methods for Concurrent and Real-Time Systems.