Software design for Real-time Systems by J.E. Cooling

Software design for Real-time Systems by J.E. Cooling

Why this book and does it have special?

This book is actually a forerunner of Software Engineering for Real-Time Systems, which is mentioned under the IEC61508 literature references, in part 7 (Overview of tecniques and measures), but this is obviously not the only reason to include it here.

First of all, the book puts some names and people, as well as industry and research projects, behind the "dry" methods and techniques listed in the IEC61508 tables.

Secondly, it tackles the real-time software design aspects in a quite holistic and practical manner, considering economical aspects related to software production (to be done within expected timeframe and budget!!) and reminds the reader, at least indirectly, that software is essentially designed by humans and to be used by humans.

Furthermore, the writing style is a kind of mix between a constant pleading to criticism (author himself inviting the reader to question everything, including things in his book) and a hands-on approach from the industry, where research methods have been concretely applied, which types of failures were they exposed to, their effects and causes.

What is the book about?

The book is a thorough exploration of methods used to specify requirements and design, for real-time systems, culminating with concrete examples of them (exposed in chapter 10).

First three chapters are setting the stage, in the way of clarifying essential terminology that will be further used to judge or to determine: what real-time software is, what means good and bad software (including the economic aspects I mentioned above), why and where do we need it, which types of errors is it exposed to. Actually the book excels in classifying everything, is full of taxonomies, from types of system failures, like hard, soft, or fail-safe, to design and coding errors, like syntax, semantic, logic, algorithm, to types of environment interactions with the system.examples of them (exposed in chapter 10).

For someone being interested in software for safety systems, like me, is always helpful to read about interferences and overlaps between safe, real-time and reliable software (Nancy Levenson stresses on that, in her book, Safeware, which I also plan to comment as part of this series). The author does a lot of effort to clean up doubts, mis-understandings and popular wisdom related to what is each of them. Apart from that his personal appreciations (or research) are also interesting to read, like less than 1% of all embedded systems in UK are real-time systems … interesting how or whether this changed until today.

No hay texto alternativo para esta imagen

It also provides an overview of software distribution errors, as well as their corresponding costs, based on statistics obtained by Tom DeMarco, (like in the picture here to the left) which most of readers can be already familiar with, from James Martin’s magnum opus, ?An Information Systems Manifesto“.

Every chapter ends with a comprehensive list of literature references and recommended further readings.

No hay texto alternativo para esta imagen

Interesting effort distributions (split per requirements, implementation and testing) for some groundbreaking critical projects done in the past, like SAGE, NTDS, GEMINI, Saturn V, OS/360 (like is to be noticed in the picture to the right), have their place in the book, too.

Let’s not forget what is the book essentially about, and this is, methods to describe real-time systems, from requirements down to implementation. There is consequently explained the necessity to have a mathematical description of them, and are also introduced some diagramming methodologies which count as the forerunners of UML. These are what comes to be famously known as formal methods. Those are precisely the methods in IEC61508-7 where this book is referred and namely: Structured design (B.3.2), Modularisation (B.3.4), Structured diagrammatic methods (C.2.1), Defensive programming (C.2.5) Modular approach (C.2.9), Performance requirements and modelling (C.5.19 and C.5.20). Chapter 10, in the book is dedicated to them.

Behind those diagrams are names and even ?schools of tought“ which pioneered the computer science and safety/reliability research which definitely worth mention: Michael Jackson, Edward Yourdon, Stephen Mellor, Paul Ward or Larry Constantine.

Last chapter, about ?Documentation and testing“, is a compilation of everything and I liked especially the way it begins, which is, as a writing style, characteristic for the whole book:

Documentation. Paperwork. Records. Words which induce instant apathy in any design team. Such things appeal to bureaucrats, not to creative designers . Maybe this is a slighly harsh judgement – apologies to dedicated bureaucrats- but it is true. Unfortunately, documentation is a key feature of all professional design and development activities. It can be regarded as the life-blood of the design body. 

All of the chapter is worthy to be shared here, but I need to refrain only to few pages (here below), which I think, they are a boon to be read, for every safety expert.

No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen

What struck me most about this book and which are my take-aways?

In my opinion the gist of the book lies in the examples of formal methods and revealing from the research and concrete industry projects where they were initially deployed. It does a great job in familiarising the reader with some initial research projects done in the 70s and 80s in the field of requirements and tools specifications for real-time systems, like STARTS project (guide to methods and tools for construction of large real-time systems) or CASE (used to develop tools for high-quality, defect-free and maintainable software, and a fore-runner for todays' hardware CAD systems)

Furthermore, for me personally, it was one of the first places where I got to know about code "modularity" metrics, like cohesion and coupling, or on formal methods, and their notations, like VDM and Z, or structured analyses, and also on its criticism.

No hay texto alternativo para esta imagen

Beyond the facts that it presents and the systematic approach it takes to describe and classify everything, the book is interesting to read as a piece of literature. The author expresses on many occasions his personal views about various aspects, and some of them are interesting to read now, in retrospect, like for instance this forecast he makes about the evolution of programming languages (to the right).

All in all, this is definitely one of those books, which after reading it, makes you say Sometimes it is really incredible, how things written 40 years ago, can still be actual

Ted Stewart

Team Kaufelt | Key West Real Estate Professional

4 年

I hope you review some books from exida!? https://www.exida.com/Books

Looking forward to the series.

Mike Allocco, Emeritus Fellow ISSS

System Safety Engineering and Management of Complex Systems; Risk Management Advisor...Complex System Risks

4 年

System safety design for real-time systems?

Juan Carlos Venegas

Executive MBA Candidate | LEO & MEO Satellite navigation | Senior GNSS Engineer (Safety-Critical products)

4 年

Thanks for sharing! I will buy that book

Roberth Jonsson

Product compliance consultant. Hj?lper f?retag att s?lja sina produkter och maskiner lagligt inom EU och UK. (CE- och UKCA-m?rkning)

4 年

Thanks for this! Not many dive into the subject of functional safest. I will happily follow your posts.

要查看或添加评论,请登录

Bogdan Gradinaru的更多文章

  • How I cracked my Comptia Security+

    How I cracked my Comptia Security+

    After weeks of hard work and studying, I managed to pass #comptia #securityplus certification. It is indeed an entry…

    4 条评论
  • Safeware - by Nancy Leveson

    Safeware - by Nancy Leveson

    This is a groundwork and on of the most comprehensive books published in the last decades about system safety…

    7 条评论
  • Software Reliability - Principles and practices by Glenford Myers

    Software Reliability - Principles and practices by Glenford Myers

    Style of this book is similar to another one, by the same author, Glenford Myers, also reviewed some while ago in this…

    3 条评论
  • The Mythical Man-Month by Fred Brooks

    The Mythical Man-Month by Fred Brooks

    This book is essentially not about any safety or quality standard, nor is quoted in IEC61508, but is about project…

    5 条评论
  • Safety critical systems

    Safety critical systems

    The book I plan to shortly review now is not quoted or referred by the IEC61508 nowhere, but there are instead plenty…

    4 条评论
  • Software Engineering by Ian Sommerville

    Software Engineering by Ian Sommerville

    Hard to say what this book exactly is about, because ..

    3 条评论
  • Software Reuse and Reverse engineering in practice

    Software Reuse and Reverse engineering in practice

    The book is mentioned only once as a reference for one single technique from IEC61508, part 7 (Overview of techniques…

    4 条评论
  • The Art of Software Testing by Glenford Myers

    The Art of Software Testing by Glenford Myers

    Why this book and does it have special? This is a book which every test manager should keep under his pillow. In a…

    1 条评论
  • Safety for driverless industrial trucks

    Safety for driverless industrial trucks

    Technology, as well as process and environment requirements, for self-driving industrial trucks, so called AGVs, are…

    5 条评论
  • Safety for robotics

    Safety for robotics

    Reading about robots and "cobots", and how the former evolved into the latter, or what both of them have to do with…

    1 条评论

社区洞察

其他会员也浏览了