Engineering Bookshelf

Software Design Books
Book Cover: Introduction to Software Engineering Design: Processes, Principles and Patterns with UML2

Introduction to Software Engineering Design: Processes, Principles and Patterns with UML2

by Christopher Fox

Publisher: Addison-Wesley
ISBN: 0321410130

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


Book Description

Introduction to Software Engineering Design emphasizes design practice at an introductory level using object-oriented analysis and design techniques and UML 2.0. Readers will learn to use best practices in software design and development. Pedagogical features include learning objectives and orientation diagrams, summaries of key concepts, end-of-section quizzes, a large running case study, team projects, over 400 end-of-chapter exercises, and a glossary of key terms.

This text covers all aspects of software design in four parts:


Customer Reviews

The book I go back to
By Jon Whitener (Farmington Hills, MI United States)

I recently earned a master's degree in Computer Science / Software Engineering. Of the many books I was assigned, I think this one is exceptionally well-written and helpful. Now that I develop software projects professionally, Fox's book is the one I pull off the shelf for guidance (as I did again today, prompting this review).

Fox clearly put the extra effort into not just making his book logical and correct, but easy to understand. The writing is a cut above the typical CS / SE text. I also applaud it for it's clarity and usefulness in maintaining a strong sense of the entire SE cycle.

In short, if you are interested in Software Engineering, I give this book my highest recommendation. As I say, it is the one book that I'm glad I kept from my classes, because it helps guide my professional work still.

A fine textbook for learning software design
By Michael Fraka (Shawnee, Kansas USA)

I used Introduction to Software Engineering Design in a graduate course. I found it a very useful text that gives rigorous treatment to the subject. It is a good complement to Larman's "Applying UML and Patterns". Fox is agnostic regarding agile versus heavyweight software development processes but goes into more details than Larman on the different levels of software design.

The book starts by placing software design in the context of design in general. It distinguishes software product design (requirements elicitation and evaluation) from software engineering design (what we normally associate with software design). Fox gives an overview of software product design and then concentrates on software engineering desgn for the remainder of the book.

I liked Fox's continuing case study, an automated irrigation system based on water sensors. He illustrates complete software architecture and detailed design documents using this case study.

Fox clearly illustrates the levels of software engineering design: architecture, mid-level design, and low-level design. He concentrates on component diagrams, class diagrams, sequence diagrams, and state machine diagrams and shows how they should be applied to the various levels of design. Fox shows how to apply design patterns and provides four chapters containing some of the most useful and frequently used patterns. He then applies these patterns to the case study.