covers all the areas needed for developing and testing real-time (and embedded) systems
Some five years ago Jim wrote a book with a title similar to this one. It was a good book but over the years he thought about a second edition to bring it up to date. The first book had 450 pages, this one is just short of 800; it has been more than just updated, hence the new title.
This book is about software engineering and its processes, tools and methods, not writing software as such, so there is very little source code in the book. Example software is usually on the web sites of the silicon and tools vendors anyway.
The book covers all the areas needed for developing and testing real-time (and embedded) systems. It is split into three sections, foundations, designing and developing, and finally implementation and performance issues. It follows much the same lines as many software engineering books but it does it from the perspective of a system that controls real moving machinery. This becomes more apparent in the section on development and debugging tools where things are very different to desktop systems.
The design sections highlight some of the unusual and problem areas in embedded and real-time work, also some of the blatantly obvious ones that are overlooked. This is done from several overlapping views, which highlights that there is no one true method and why you may need more than one view of a project.
I was pleased to see the chapter on 'why diagrams' discussing the use of diagrams and graphic designs systems per se, is still in the book. This looks at everything from electronic schematics to use-cases and assembly diagrams. Another discussion chapter is the one on metrics (part of testing) where again a pragmatic common-sense approach is used.
One of the surprises to some will be the inclusion of structured methods (Yourdon). This because a large amount, probably a majority, of real time development is done in C. Some is still done in assembly! OO methods are also covered as well. The useful thing with this book is that it does not push any one method or language but explains the relative merits, when you would use the methods and why.
This book will not teach any of the methods in depth, but puts them into perspective. It gives overviews and shows how they all fit together. Some of the overview diagrams would go well as posters on the wall (especially for students).
This book seems to cover everything. You will of course need books on the language, design methods and specific protocols and algorithms you are using. This book will be invaluable to engineers (and students) moving into embedded and real-time work or as a reference for those already working in the field for inspiration and ideas. I shall keep my copy close to hand. Recommended