Object-oriented analysis and design understanding system development with UML 2.0 - O'Docherty (Wiley, 2005)