All Computer Scientists and Software Engineers need to understand software design, but until now there hasn't been one, complete, up-to-date guide to its theory and practice. Eric Braude's Software Design: From Programming to Architecture begins at the code level with programming issues such as robustness and flexibility in implementation. Increasing in abstraction and scope, the book then moves to mid-level issues, emphasizing...