This book presents a general overview of software design within the context of software development. It contains the components Reuse and COTS (Commercial off-the-shelf Software) to enhance the lessons presented in the text. A balanced view of the carried software design methodologies most widely used are presented in a way that teaches the reader how to become a better judge of what method to adopt while working in the field. The strengths and limitations of each method are discussed to enhance judgement as well. For designers who want to increase their knowledge in the various methods of software design.
Review By: Mary Ann Overbaugh, CSQA
"Software Design, Second Edition" explores the methods and tools of software design. Originally written in 1993 by David Budgen, it was revised in 2003 to include current ideas and trends. Budgen discusses software design approaches, evolution of design methods, and where these methods are best utilized when developing software solutions. The author talks about design being a means of representing a body of knowledge, a result of professional expertise that springs from our ability to create. Unfortunately, this creative thinking makes software solution design difficult to clearly define. Design can be approached in many ways. For that reason, we struggle to find a common language for design. This book discusses how a design concept is expressed through the use of multiple forms, views, notations, visual and verbal formats, templates, and tools. It is then translated into requirements documentation, coded, and somehow emerges as a software solution.
Budgen addresses these questions in the book:
What is the nature of the design process?
What is the software design process?
How is it used to develop software?
How do we transfer our knowledge to create software?
What are the current design practices?
Where do we go from here?
If you want to learn something about software design, you will! The author originally designed the book for instructors who help students relate to these issues. Discussions of formal methods and notation are well presented. The author's approach is from the designer's point of view, so the reader understands the designer’s concerns, vocabulary, frustrations, and tools.
Methodologists, coaches, and trainers will find this information useful when presenting design concepts and methods to others. I highly recommend this book to those who formulate or interpret design documentation. This book also will help project managers better understand their architects.
The book provides an in-depth overview of many design topics. Perhaps the greatest value of this book is the author's interpretation of our evolution, formalization, and continuation of refinement in approaching software design.
Is there a Zen of software design? What are the languages and tools of designers, and why is software design still considered an art form? "Software Design," by David Budgen, examines conceptual thought processes about software design. He also describes attributes, methods, notations, and approaches to design abstraction used in creating software. The author's approach takes a historical perspective, while educating us on the modern complexities of software design. He also explains current methods and predicts how design strategies will evolve in the future.