From: tranngocduong@gmail.com
Subject: Re: Boeing 737 and 737 MAX software
Date: Thu, 18 Apr 2019 09:21:51 -0700 (PDT)
Date: 2019-04-18T09:21:51-07:00 [thread overview]
Message-ID: <70d7f427-ddce-4ec0-aba3-99edab0780bc@googlegroups.com> (raw)
In-Reply-To: <ghrifuFssqbU1@mid.individual.net>
On Thursday, April 18, 2019 at 10:13:05 PM UTC+7, Niklas Holsti wrote:
> The descriptions of the MCAS system that I have seen say quite clearly
> that it used only one of the two AoA sensors mounted on the aircraft
> (and that this single-sensor design is unacceptable for a flight-control
> system that ended up with this level of authority and criticality).
>
> I have not seen any statement about other standard SW that would be able
> to flag an AoA sensor as faulty. There was an optional addition that
> could do it, not mounted on the planes that crashed. The whole MCAS
> system was an add-on and perhaps for that reason not well integrated
> with the rest of the flight SW (this is speculation on my part).
>
The optional "AoA disagree" indicator is just a surface issue. I've seen a couple of analysis stating that it is really not very helpful. To my limited knowledge, AoA is a critical parameter that is used by many flight control algorithms, not just the MCAS. The real issue is thus the failure to detect an unreliable sensor. If the failure was a "feature, not bug", the entire flight software (and its certificate) would be questioned.
> > 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).
>
> From the descriptions I have read, it is clear (to me) that (b) was the
> case, at least that MCAS used a single AoA sensor and there was no
> cross-check against the other AoA sensor or other sensors or
> computations. Moreover, the descriptions of the planned correction to
> the 737 MAX focus on using both AoA sensors and warning the pilots if
> they disagree, which is coherent with (b) but not with (a).
>
If b) was the case, not only the software, but the entire process would be questioned. A bug would take weeks or months to fix. A software would take years to re-engineer. A process would take decades to develop. Would Boeing as a company risk its very existence by comiting such a big mistake? I don't think so.
> On the issue of Ada subtypes, it seems to me that if the SW
> specification, design and coding considers sensor faults (as it of
> course should), the normal approach for such critical SW is _not_ to use
> strongly constrained subtypes and rely on Constraint_Error handling. The
> normal approach is to add explicit and specific range checks and
> sensor/computation cross-checks. That would be much easier to specify
> and test, and would also make it much easier to identify the faulty
> sensor(s) and to handle such situations properly.
>
> --
> Niklas Holsti
> Tidorum Ltd
I know. SPARK and ParaSail do not allow exceptions for a reason. But because the MCAS was [mistakenly] classified as a non-critical component, programmers may choose to use less formal/rigorous methodology, which give rise for constraints and exceptions if Ada was selected.
next prev parent reply other threads:[~2019-04-18 16:21 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
2019-04-18 15:13 ` Niklas Holsti
2019-04-18 16:21 ` tranngocduong [this message]
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