Software Specification and Design: An Engineering Approach
Software Specification and Design: An Engineering Approach proposes a strategy for software development that emphasizes measurement. It promotes the measurement of every aspect of the software environment - from initial testing through test activity and deployment/operation. This book details the path to effective software and design. It recognizes that each project is different, with its own set of problems, so it does not propose a specific model. Instead, it establishes a foundation for the discipline of software engineering that is both theoretically rigorous and relevant to the real-world engineering environment.
Review By: R.E.R.
07/08/2010In "Software Specification and Design: An Engineering Approach," author John C. Munson successfully argues that the latest trends in software development--magic bullet fixes and guru-based programming--are becoming substitutes for hard work.
The book is structured in a logical and easy-to-follow manner. It begins with the development process, continues with requirements for both businesses and customers, and then discusses specifications of the operational model. Finally, Munson touches on operational specifications and functional specifications.
Breaking the functional specifications down into a hierarchy, Munson shares practical examples. He focuses on architecture and proper systematic designs, which he believes lead to a stronger, more robust end product. In the later chapters, where I spent most of my time, his focus is on testability. Although this isn't the central theme of the book, it is an important section that is often neglected in the engineering world. Not all testing is neglected on all projects, but it is at this stage that, frequently, a schedule needs to be pulled in or the timeline has to be shortened. And so, the testing suffers.
This book does a good job of tracking a software project from beginning to end. The author thoughtfully describes the process of a solid software design project from an engineer’s point of view, but the book may not be for the faint of heart or a rookie. It is part of his graduate course curriculum, and the concepts described are not entry level. The subject matter and material is better suited as a reference book for professionals than as a teaching tool for beginners.