Software Modeling & Design : UML, Use Cases, Patterns, and Software Architectures - Gomaa, Hassan (Cambridge University Press, 2011)