Thought Leadership

Book review [part 1]

By Colin Walls

Last week, I talked about learning about embedded software and suggested various sources of information, including books, promising a review of a new book sometime soon. In the meantime, I have had the chance to take a look at the new book “Software Engineering for Embedded Systems” by Robert Oshana and Mark Kraeling.

My first impression was that the book is enormous – over 1000 pages and weighing more than a couple of kilograms. My second impression is that its size is an indication of its comprehensive coverage …

I became aware of this book when I was at Design West a few weeks ago and was very pleased to accept when my publisher asked me if I would like to review a copy. I confess that, when I agreed, I had not appreciated what a big job I was taking on. To do justice to this book will take more than a single blog post permits. So, today I will give an outline of what the book has to offer and, on future occasions, dip in and look in more detail at specific parts of the book.

This is easily the most comprehensive book on embedded software on the market, with the material organized into 25 chapters:

  1. Overview of Embedded and Real-Time Systems
  2. Embedded Systems Hardware/Software Co-design
  3. Specification and Modeling Techniques
  4. Architecture and Design Patterns
  5. Real-Time Building Blocks
  6. The Hardware Interface to Embedded Software
  7. Embedded Software Programming and Implementation Guidelines
  8. Embedded Operating systems
  9. Software Reuse in Embedded Systems
  10. Software Performance Engineering
  11. Optimizing Embedded Software for Performance
  12. Optimizing Embedded Software for Memory
  13. Optimizing Embedded Software for Power
  14. Human Factors and User Interface Design for embedded systems
  15. Integration and Testing techniques and Quality for Embedded Software
  16. Software Development Tools for Embedded Systems
  17. Multicore Software Development for Embedded Systems
  18. Safety-Critical Software Development for Embedded Systems
  19. Intellectual Property Issues with Embedded Software
  20. Managing Embedded Software Development
  21. Agile Development for Embedded Systems
  22. Embedded Software Development for Storage and I/O
  23. Embedded Software for Automotive Applications
  24. Embedded Software Development for Embedded Networking
  25. Linux and Open Source Software for Embedded Systems

along with appendices and case studies …

As Jack Ganssle mentions in the Foreward, it is hard to think of any aspect of embedded software development that is not at least touched on in this book.

My first thought was: “Where do I start?” But the authors [or, rather, as they are termed, editors] have thought of that. An extensive “roadmap” section gives a clear idea of which chapter(s) is/are relevant to particular aspects and phases of embedded software implementation.

My next thought was “How can 2 guys know all this stuff?” The answer there is that Oshana and Kraeling are listed as editors. Although there are very significant parts of the book that they have authored, there are numerous chapters written by experts in specific fields. The other authors are Srini Addepalli, Michael C Brogioli, Bruce Powel Douglass, Shelley Gretlein, Inga Harris, Jean J. Labrosse, Frank Schirrmeister, Gary Stringham, Erich Styger, Jim Trudeau, Catalin Udma, Whitson Gamaliel Waldo III, Pete Wilson, Dr. Xin-Xin Yang, Mark Pitchford and Andrew McKay.

I will return to review in more detail sections of this book that particularly interest me in the weeks to come.

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at