Software design : - Braude, Eric (Wiley, 2005)