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 as 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 it’s 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 (most) 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 say is still in the book. This looks at every thing 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.