(no title)
alandarev | 10 years ago
All safety critical software (every piece of code ran on-board is safety critical the least) in aerospace needs to pass the DO-178 standard [1].
That is far more serious than standard unit tests you are used to in node.js applications. Generally speaking, to develop a piece of code under that standard it takes 20% of time to write the code, and 80% to testing, and enormous amount of documentation (that is optimistic estimation, usually worse).
Quoting speaker from DO-178 training course I attended:
People often ask us. "How do we know the standard works?"
We give this answer: "We do not know. But there have been zero crashes due to software issues since introduction"
If this crash confirms the cause to be a software bug, that is something much bigger than an airplane crash - a huge punch to the whole federal aviation administration.
unknown|10 years ago
[deleted]
Jayschwa|10 years ago
The state on a later Level C & D project was in worse shape: bloated architecture, lots of requirements churn, little to no peer review, one unrealistic deadline after another, and mandatory overtime for large periods. It was not an environment conducive to thoughtfulness or quality. I finally got fed up and quit.
snom320|10 years ago
jonnycowboy|10 years ago
gvr|10 years ago
The standard does mention "formal verification/methods/proof" but to my knowledge it's rarely been used extensively.
userbinator|10 years ago
The actual failure rate of software to this standard seems to be at least two orders of magnitude higher.
[1] http://www.garfors.com/2014/06/100000-flights-day.html
peeters|10 years ago
branchan|10 years ago
calebm|10 years ago
Jtsummers|10 years ago
sliverstorm|10 years ago
Sure sounds like the way it should be to me. Maybe it needs to be made easier to prove your software is correct, but to me it seems like for systems like airplanes, code that cannot be proven correct is worthless.
Considering most programmers are said to produce 6 lines of good code a day, maybe it's not even actually slower in the end if the formal verification process filters out every other line you would have written that day.
emp_zealoth|10 years ago
the apologetic attitude needs to stop. programs are just complicated machines and should be treated as such not some mystical voodo that will be broken no matter what
tormeh|10 years ago
belorn|10 years ago
luch|10 years ago
However it's a complete different matter for civil airplanes : it's the lead dev/project manager which is liable for life for what he has shipped. For example, a retired engineer from Airbus was heard in trial for the Concorde accident in France in 2000.
TeeWEE|10 years ago
Formal verification and state space analysis can prove that the software "model" will not fail. State space exploration of the actual implementation is actually often not feasible due to the enourmous amount of states.
So my question: Are you doing formal analysis of the software models/designs? I know they are using it in software used in space crafts / nuclear power plants.
Reference: - http://ti.arc.nasa.gov/m/profile/dimitra/euromicro-share.pdf - http://javapathfinder.sourceforge.net/
sfrank|10 years ago
For example Astree [1] has been developed for decades now, with Airbus as one of the major sponsors.
[1] http://www.astree.ens.fr/
tedunangst|10 years ago
bglazer|10 years ago
https://sel4.systems/
castell|10 years ago
shepardrtc|10 years ago
On the other hand, I also wonder why people don't think of using Erlang for something like this. The VM is designed for a ridiculous amount of uptime, it has a supervisor tree that can monitor and restart failed processes, and it can interface with C/C++. A rock-solid VM should be running and monitoring life-safety systems.
jcadam|10 years ago
I once worked on satellite systems using Ada95 and Ada2005 (Ada is definitely not dead). The language is a pain to use but is impressive in that it catches more crap at compile-time than anything else I've seen.
unknown|10 years ago
[deleted]
lamby|10 years ago
agumonkey|10 years ago
I wonder if someone can pull an #ElonMusk on the DO-178 to slim things down in order to have better control.
ps: planes fly with bugs, see the DreamLiner, Airbus ones aren't free from them either, employees know this. (I guess they travel by train)
ExpiredLink|10 years ago
The train brake control systems are written in ... C.
mrmondo|10 years ago
unknown|10 years ago
[deleted]