by Max H



There are many books you can get if you want to learn to program in C++ and Java. There are books about how to perform software design for business, how to develop embedded systems, and how to develop complex algorithms; but what if you want to write high-assurance software using object-oriented techniques? We’ve got a resource for you.

Object-oriented programming is the method du jour most of modern programming and scripting languages. In fact many recently schooled developers have no practical to non-OO languages at all. Object-oriented analysis and design have spawned an entire generation of tools and techniques.

I’ll admit that I am a fan of objects. Object-orientation is one of the few software paradigms that nearly lives up to the hype it received throughout the 90′s. OO gives us a powerful way to organize our thinking, our designs, and our programs. The problem is, that while OO gives us new abstraction capabilities, it also adds to concerns about safety.

Polymorphism is a powerful programming tool, but it makes static analysis difficult. Hidden tables re-direct calls based on run-time and static information. Default constructors can create unexpected behaviors. Overridden operators can alter semantics and precedence. These and other factors can have a large impact on software assurance in a safety-critical environment. In response, the Federal Aviation Administration has created a 4-volume eBook, formally titled “Handbook for Object-Oriented Technology in Aviation (OOTiA)”.

While the title refers to Aviation, the OOTiA contains information that is pertinent to any high-assurance environment. The volumes for the book are as follows:

  • Volume 1 — contains an overview and history of the handbook.
  • Volume 2 — describes the issues and considerations.
  • Volume 3 — describes best practices to address the issues.
  • Volume 4 — provides guidance for certification officials.

Manager’s should probably be most familiar with volumes 1 and 2. An understanding of the history and the issues will aid the manager in making better decisions about resource allocation and scheduling.

The meat of the book, for developers, lies in volumes 2 and 3. In fact, most developers would probably never need to look outside of volume 3 for answers. Volume 2, however, provides a great deal of terminology, background, and theory that justifies the solutions presented in volume 3. This may aid the understanding and development of alternate approaches when the volume 3 practices don’t quite fit.

Finally, Volumes 3 and 4 will be important to practioners in quality assurance and verification. These provide specific things to look for that could impair code safety.

If you use object-oriented techniques in the production of high-assurance software, OOTiA can provide vital guidance to your team.

That’s My2Cents.