Software design : from programming to architecture - Braude, Eric (John Wiley & Sons, 2004)