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