Applying Uml & Patterns : An Introduction To Object-Oriented Analysis & Design - Craig Larman (Addison-Wesley New York, 2000)