comp.lang.ada
 help / color / mirror / Atom feed
From: tranngocduong@gmail.com
Subject: Re: Boeing 737 and 737 MAX software
Date: Thu, 18 Apr 2019 06:53:10 -0700 (PDT)
Date: 2019-04-18T06:53:10-07:00	[thread overview]
Message-ID: <ee336443-cddc-4a26-bba2-610efb82d9be@googlegroups.com> (raw)
In-Reply-To: <47a71ba7-38cb-426b-8dad-564f08afbcb2@googlegroups.com>

On Thursday, April 18, 2019 at 7:44:17 PM UTC+7, Maciej Sobczak wrote:
> > True, airspeed needs not be computed this way. But it must be somehow computed.
> 
> Note that the airspeed had to be computed (or measured) long before the new sensor was invented, so presumably the method of computing it was not taking the new sensor into account anyway. And I don't expect that method to be changed just because some new sensor is installed.
> 
> I don't see any reason for using this addition anywhere in the system.
> 
> > True, it is possible that the software was written in Ada. But then, the fact that it didn't raise an exception
> 
> If the addition was never performed (because there was no reason to do it), then it is quite reasonable that no exception was raised.
> 
> One could imagine a contract that binds several such values in constraints that are motivated at the system-level and this is arguably where Ada could help. But I doubt such novel programming techniques would be even considered.
> 
> > indicating a failure to detect/handle so "exceptional" situations as AoA implying negative [horizontal] airspeed, is simply unbelievable.
> 
> Why? The new sensor was not installed to detect negative airspeed, but to detect stalls.
> 
> This system might have been written in Ada or C (I don't expect anything else to be even considered) with the same results. Which, arguably, is not helping to promote the language (whichever was used).
> 
> -- 
> Maciej Sobczak * http://www.inspirel.com

I'm not sure what is the "new sensor" but I'll try to explain my point in other words.

Generally, flight control softwares are supposed to use multiple, redundant, algorithms (including multiple, redundant, computers and sensors) to derive flight parameters. The derived values, if not used directly to control the aircraft, may be used to monitor the flying computer, the sensors, or the software itself. 

In particular, in the case of the 737, we may assume that sufficiently redundant computation can detect faulty AoA sensor without using any additional AoA sensor. The aforementioned addition is an example of such a (redundant) computation.

Note that this method is not novel. It is just an instance of a more general principle that every input data have to be validated.

Yet the faulty left AoA sensor went undetected. How can it be?

a) Ada was used but programmers have chosen a wrong (too relaxed) subtype, or other language was used and programmers failed to code whatever equivalent to raising and handling a CONSTRAINT_ERROR. Simply: software bug.

b) Contrary to general belief, the software was not programmed with multiple redundant computation. Simply: process failure.

I chose to believe a).

  reply	other threads:[~2019-04-18 13:53 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-05 21:16 Boeing 737 and 737 MAX software Paul Rubin
2019-04-06  1:16 ` Jere
2019-04-06 19:05   ` Paul Rubin
2019-04-18 22:04   ` Paul Rubin
2019-04-19  9:13     ` tranngocduong
2019-04-06 17:30 ` Dennis Lee Bieber
2019-04-06 18:45   ` Niklas Holsti
2019-06-28 23:45   ` Paul Rubin
2019-06-29  2:52     ` Dennis Lee Bieber
2019-06-29  3:38       ` Paul Rubin
2019-06-29 16:29         ` Dennis Lee Bieber
2019-08-07  6:06     ` robin.vowels
2019-11-08  1:12   ` Paul Rubin
2019-11-08 15:32     ` Dennis Lee Bieber
2019-11-18 11:16     ` robin.vowels
2019-11-18 15:32       ` Optikos
2019-04-12  7:46 ` tranngocduong
2019-04-12 22:15   ` Dennis Lee Bieber
2019-04-17 17:27   ` Maciej Sobczak
2019-04-18  9:45     ` tranngocduong
2019-04-18 12:44       ` Maciej Sobczak
2019-04-18 13:53         ` tranngocduong [this message]
2019-04-18 15:13           ` Niklas Holsti
2019-04-18 16:21             ` tranngocduong
2019-04-18 18:20               ` Niklas Holsti
2019-04-20  0:29                 ` tranngocduong
2019-04-18 20:36               ` Randy Brukardt
2019-04-18 20:51                 ` Paul Rubin
2019-04-18 20:20             ` Paul Rubin
2019-04-18 16:39           ` Dennis Lee Bieber
2019-04-19  2:39             ` Dennis Lee Bieber
2019-04-22 19:36             ` Norman Worth
2019-04-28 18:27               ` russ lyttle
2019-04-18 13:50   ` Simon Wright
2019-04-18 15:07     ` tranngocduong
2019-05-05 14:29 ` robin.vowels
2019-05-06 13:54   ` robin.vowels
2019-05-06 15:12     ` Dennis Lee Bieber
2019-08-07  5:51   ` robin.vowels
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox