Home
Consultant Summary
Publications
Books
Downloads
Contact

 Software engineering for real-time systems Software engineering for real-time systems

Software engineering for real-time systems
Addison-Wesley, ISBN 0-201-59620-2, 800pp, 2003

Review by www.accu.org

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.


Review by www.programming123.com

One problem I have found in embedded area is that almost everybody uses procedural language to code i.e. C but nobody trains you (at least no body does in Computer Engineering/Computer science undergrad) how to design large scale software in C. You read books about C and advanced C but how do you actually go about designing an embedded system from scratch. You go to the bookstores and everywhere you find "Object Oriented Analysis and Design". I haven't found even a single book on Structured Design anywhere except in the company library.

And one fine day I happen to see this book in a Borders bookstore.

The only book you will find about software engineering/design for real-time systems that covers as many topics and with the depth (in some areas) that I haven't found anywhere else. It covers methods/design based on Structured, data flow and Object Oriented.

Every software engineer/computer engineer working on embedded systems must at least have a look at this book. I have read and looked at a lot of other books but I keep on coming back to this book for one thing or another that I find only in this book.

Here are MAJOR areas in which this book shines:

1. Very good coverage of software design. Must for beginners in the field.
2. RTOS fundamentals with detailed analysis and review of scheduling policies.
3. Superb programming languages overview and list of what are the pluses and minuses of each major language being used today for embedded development. I haven't found discussion of this sort in any other book.
4. Extensive coverage of diagrams to help in design.
5. Coverage of Mission-critical and safety-critical systems PLUS performance engineering.

Again, a must to look at at least once in your embedded career. If you are a beginner, I think you would want to buy it.


Review by Cheong Soon Yau on amazon.com

I have read numerous RTOS books which includes books from Labrose and Qing Li. I think this book delivers the best explanation on RTOS concept. Unlike Labrose and Qing Li's book that throw you every details of a full working RTOS components, this books take an alternative to slowly and clearly explain why should we have this features in RTOS, and take you through slowly from real life problem to code implementation.

Yet, RTOS is only 2 chapters in this book. This book has many more to offer which include software requirement analysis, design, modeling, documentation, safety critical system and so on. This is especially valuable to people like me whom had not receive any formal training in software engineering.

EE engineers, if you have already mastered embedded C/C++ for small project, this is the book that can help you to move on to building larger embedded software project.


Review by Dmitry Vostokov, Monkstown, Co. Dublin Ireland

Editor-in-Chief of Debugged! MZ/PE magazine
Sometimes I'm asked about a broad software engineering book to recommend for general memory dump analysis that covers software architecture, design methods and diagramming languages like UML, programming languages, concurrency, real-time issues and many other topics you need to know to have systems understanding that helps in problem identification and debugging.

Here's the book that I was fortunate to buy 4-5 years ago in a book shop and is a sheer pleasure to read. Today I found that there even exists an OMG certification based on it.

Return to Books section