Engineering Bookshelf

Software Design Books
Book Cover: Software Design: From Programming to Architecture

Software Design: From Programming to Architecture

by Eric J. Braude

Publisher: Wiley
ISBN: 0471204595

Check price @ amazon.com , amazon.ca , amazon.co.uk


Book Description

Until now it's been hard to find one, complete, up-to-date guide to software design theory and practice.

Not any more! Starting where programming and data structure courses end, this indispensable book is a comprehensive guide to the theory and actual practice of software design.

Introducing the first complete guide to the theory and practice of software design!

The book begins at the code level with programming issues such as robustness and flexibility in implementation. As it progresses, it increases in abstraction and scope. After covering these basic issues the book analyzes mid-level design issues, emphasizing a thorough understanding of standard design patterns. This is followed by a thorough discussion of components. Finally, it ends with a high-level issues: architectures, frameworks, and object-oriented analysis and design.

Features

From the Back Cover

UML (the Unified Modeling Language), design patterns, and software component technologies are three new advances that help software engineers create more efficient and effective software designs. Now Eric Braude pulls these three advances together into one unified presentation:


Customer Reviews

Very good book
By Robert Bochenski

This book is extremely useful.

First time I found book where UML and source code is coupled together.

A lot of examples, exercises, very clear description and good portion of hints.

I would recommend this book for every developer and architect.

The engineering context of individual practice
By wiredweird

Prof. Braude wrote this book specifically for his students - to clarify and unify a number of concepts.

It has three main centers of attention: design patterns, component software, and software engineering (SWEng). This last is Prof. Braude's specialty. He addresses industrial SWEng directly in another book, in far more detail than this book attempts.

This is not "SWEng-lite" though. It presents SWEng as the context in which software is designed - the environment in which design patterns are applied. Other design pattern books seem to address design as an isolated event, with no context and no further concerns than design. That, in my opinion, is how other books fail. Design is just a fraction, typically 10% down to 1% of a program's lifetime cost. SWEng addresses the whole of a software project's life.

This book exists to place design, in terms of design patterns, in its proper place in a software system's time line. In part, it's a commentary on the "Design Patterns" book by Gamma et al. In part, it's a summary of SWEng process. Other books do each job better. This book unifies the two fields, though, and may be unique in taking on that unification as its main goal.

For the general reader, this book's discussion of component software may seem shallow and tangential. Perhaps it works well in Prof. Braude's classroom, but I think it adds one concept too many to an otherwise good book. The component and .NET sections may have value in his classroom, but I think they add little to an otherwise interesting approach to two important topics.

I think this book has a place in a complete software engineering library. Maybe not the highest place, or second highest. Still, it will give the knowledgeable reader a uncommon view of individual design as part of the professional software practice.