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
This book is about software engineering and its processes, tools
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.
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.
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
This book seems to cover everything. You will of course
need books on the language, design methods and specific protocols and
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
2. RTOS fundamentals with detailed analysis and review of scheduling
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
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.
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.