Re: How many classes?!? (was: Question)
Re: How many classes?!? (was: Question)
- Subject: Re: How many classes?!? (was: Question)
- From: "Erik M. Buck" <email@hidden>
- Date: Mon, 3 Dec 2001 11:16:39 -0600
- Organization: EMB & Assocites Inc.
As someone who designed real time aircraft software systems on occasion, I
have several comments:
1) C++ is not used for such applications (at least not all of C++ features)
due to the necessity to verify the input to the compiler and also the output
from the compiler for certification reasons.
2) The typical banking system is much more complex than the typical aircraft
control software. First, aircraft control software has not changed much in
function since the late 1970's when it ran on very small computers. Second,
aircraft control software must comply to the DO178B standard and therefore
is necessarily kept simple for certification reasons.
3) Aircraft control software (Flight director, autopilot, auto-throttle) is
almost entirely based on control theory and feedback loops. The whole
airplane is modeled like a bunch of interconnected springs. Tools like
MatrixX are used to model these systems.
4) More complex software like FMS (flight management system) and EIFIS
(Engine instruments and Flight information system) which includes the flight
displays and radio tuning are another issue. In most cases these systems
must be certified to DO178B which means that a lot more money is spent
verifying the software than writing it. As a result, every effort is made
to assist verification rather than maximize productivity of the programmers
or efficiency of the code.
5) C++ is not used and classes are probably not used because older safer
compilers are used. Verification needs prevent almost all compiler
optimizations. For example, loop unrolling, template code generation, code
reordering, inlining, peep hole optimizations etc. can not be used. For
verification, it must be possible to trace every byte of object code to
exactly one line of source code in a reasonably direct way.
C, Ada, custom Java variants, and even PL1 are fairly popular for aircraft
software development. I have never heard of anyone using C++ unless they
were only using the "better C" subset. I obviously don't know everything
that is happening in the industry, but I have worked with Rockwell Collins,
Boeing, Northrop, Lockeed Martin, Honeywell, Cessna, Bell-Textron, Grumman,
Raytheon, Dasseau, Canada Air, Beech, Air Bus, GE, USAF, USMC, DARPA...
----- Original Message -----