Software Design from Programming to Architecture - Eric Braude (John Wiley & Sons)