F-35 Program Office Signs Off on Air Force 3i Software
defensenews.com
defensenews.com
> But the new, improved version of 3i is a significant improvement, according to the JPO. The new version showed approximately twice the level of stability as the previous load, Block 2B, and three times better stability than the original 3i software
Does that mean it "only" needs to reboot once every 6-8 hours? If that's considered stable enough to sign off for production, does that mean they will simply reboot before each flight and just hope for the best?
Ferry flights must be an experience.
Here, I found the link:
https://news.ycombinator.com/item?id=11260927
EDIT: Heck, I'll just copy the meat of it here:
http://breakingdefense.com/2016/02/bogdan-predicts-f-35s-for...
The toughest problem the program is having is matching the timing of the aircraft’s fusion software with its sensors’ software. “As we add different radar modes and as we add different and capabilities to the DAS system and to the EOTS system, the timing is misaligned,” and then you have to reboot it. Bogdan said he’s aiming for eight to nine hours between such software failures when a radar or DAS or EOTS needs to be rebooted, which is what legacy aircraft boast. Right now they are at four to five hours between such events. “That’s not a good metric.”
I have to be reading this wrong - they can't even enforce the time budget for different tasks/threads under varied configurations?
Don't nobody here know how to play this game?
I guess all they need to do is hire "ArkyBeagle" from the comments section of hacker news, right?
Don't forget this is a weapon decreasing latency by 0.0001 seconds might be worth a lot of pain.
In such an environment you very quickly get used to living with workarounds rather than bugfix.
[edit]
Oh, another thing I forgot that isn't universal, but is unfortunately too common. Dealing with managers after the bug is fixed asking why you spent time, and thereby the company's money fixing a bug in code that is the responsibility of another company.
But there could be indeed some SW failures that are more likely after a given time of running. E.g. memory [de]allocation problems, memory fragmentation - in case the use some kind of dynamic memory. Or other types of resource leaks.
So what did they do with this software update? Just install "CTRL+ALT+DEL"?
And I'm not only concerned about the plane staying in the sky.
I also want the jet fuel and the weapons to stay in the plane, to name a couple other items that are pluses.
Nor do I have any confidence that a plane that stays in the sky today will do so tomorrow, given the record of this team.
All kinds of things can go wrong[1]. Focusing on one aspect and claiming (without evidence) that this aspect is safe doesn't help a bit. And triply redundant means very little (as with a famous bomb accident example, sometimes all those redundancies are shown to still be cutting it very close)[2]. This is especially the case when the entire system is a poster child for projects going wrong[3].
1. http://catless.ncl.ac.uk/Risks/
2. http://www.theguardian.com/world/2013/sep/20/usaf-atomic-bom...
"This new design approach breaks avionics into two categories: mission systems and vehicle systems. The former includes tools that help the aircraft do its job, such as sensors, displays, and weapons. The latter are subsystems that help the aircraft function correctly, such as power generation, cooling, and flight control."
For more on the Vehicle Managment Computers, see [1], particularly:
""Each F-35 will have three boxes, making it a triple-redundant system," said Tom Burbage, executive vice president and general manager of the Lockheed Martin JSF program. "Each box 'votes' and compares its decision with that of the others before executing a command -- a process that takes place in much less than the blink of an eye. If one or even two boxes were to be damaged or malfunction, the aircraft would continue to operate normally." The all-digital VMCs, which save weight and space while improving precision, are at the heart of the distributed F-35 Vehicle System."
When we say "Block 3i" we are talking about the mission systems hardware[2] and software that are all about "sensors, displays, and weapons". All I intended was to point out this difference, and to point out that the vehicle systems are controlled by physically distinct components and simply saying "The F-35 software" isn't completely accurate.
You'll note I made no claim about safety, nor do I intend to do so. Future performance of the system does not necessarily depend on its past performance. Allow me to point out,though, that through 50,000+ flight test hours, no F-35 has been lost through a flight control failure (again, no guarantee that there isn't some latent failure case awaiting discovery!) And, as an engineer who is struggling to tame some complexity on a rather bothersome flight test instrumentation system, I'm well aware of risks (I love Risks Digest!). Heck, check some of my post history, I'm often exhorting people to read John Gall's Systemantics and heed its lessons.
Discuss technical failings of the program if you wish, but remarks about the "record of this team" and a google search to "f35 failed project" are rather offputting and are, in my humble opinion, needlessly negative.
[0]: http://www.militaryaerospace.com/articles/print/volume-14/is...
[1]:http://www.prnewswire.com/news-releases/first-lockheed-marti...
[2]: http://www2.l-3com.com/displays/pdfs/redesign/ICP(2011)_LR.p...
The F-35's reason for existence is its software. Other existing aircraft are faster, can carry more, fly further, or be more stealthy. The F-35's value statement is that its pilots will know more about what's going on around it than any other combat aircraft, for the next ten or fifteen years.
COTS stuff is used at the base layers of military avionics. LynxOS is used under the hood of the Army's very successful CAAS helicopter avionics system.
From https://en.wikipedia.org/wiki/Lockheed_Martin_F-35_Lightning...
Integrity-178B is the DO-178B–compliant version of Integrity. It is used in several military jets such as the B-2, F-16, F-22 and F-35, as well as the commercial airframes Airbus A380. Its kernel's design guarantees bounded computation times by eliminating features such as dynamic memory allocation.
The auditing and security engineering capabilities have allowed it to obtain the EAL6 rating by the NSA.
Integrity-178B has a unique feature: an EAL6 rating.
https://en.wikipedia.org/wiki/Integrity_%28operating_system%...
EAL6: Semiformally Verified Design and Tested
This sounds ridiculous. Surely it would be very easy to get as many programmers as they wanted for whatever tech they need with the 1 trillion USD that they have.
It would be fine if C++ was the best tool for the job, but I suspect it isn't. If it is not the best tool for the job, then whatever is gained in "programmer availability" is lost in productivity, correctness, reliability or whatever metric a fighter jet's software development is measured against.
Furthermore, this whole IT industry fetish with hiring for a particular programming language is completely misguided. Domain knowledge is usually the bottleneck. I'd expect that to be even more so in flight or sensor software.
You want real time, you want a minimal OS and you probably want some of the nicer type capabilities over c.
http://www.stroustrup.com/JSF-AV-rules.pdf
Here's the link that gets posted in all of these conversations. A strict subset of C++ is exactly what's been used.
But that's probably a personal bias, one that's been hard-earned. It's a way of leveraging the decades of mistakes made by those folks - and aid for by previous employers.
A "'C' with classes" approach is probably a good one - but I'd hate to find some subtle template or Boost bug in mid flight...
This is all IMO, but an approach like Bruce Powell Douglass "Doing Hard Time' is a pretty good way to satisfy the "systems engineer" customers for UML charts and still have rigorous development.
UML is quite the anti-pattern and Rose is kind of awful but this should be a compromise that can work. CASE tools have gone out of fashion.
I'm not sure how much benefit that would bring, especially since dynamic dispatch is probably not encouraged. As for templates I'm not much of a c++ guy but wouldn't most template errors exist at compile time?
I think dynamic dispatch would be more permissible than you might think. You end up doing it in c manually in complicated code bases, might as well let the compiler dou the heavy lifting.
The use of C++ is a (non)reaction to the explosion of pet language systems. It got coded into whatever documentation was in process at the time, and probably cannot be changed.
That's not the experience of very wealthy Silicon Valley companies, who not only can pay much better than government defense contractors, but offer other incredible perks - yet still can't get all the talent they need.
Also, performance is extremely important for this application. If the plane is a little slow, a little too easy to track, the computer a little slow, then the pilots die, the people they are defending are bombed and killed, the battle is lost, and maybe the war too. It's not a place to compromise performance to save money and use COTS, even if it was a available.
RTLinux will be treated with open source FUD. Doesn't matter if you escrow it or not - a single licensing slip would be a security breach. Since you can't successfully argue that this is specious, you're done before you start.
It's impossible to understand the way this plays out without seeing it up close. I don't know how it is in all DoD contractors, but the lifespan of an actual programmer in the one I saw was five years. If you tried to stay technical, you'd get a PIP and be laid off in the next round unless you made yourself indispensable to the customer. Doing that is tantamount to a life sentence - you have to actively politick to get on another program and that's unlikely.
Charge numbers are life or death.
You might be left alone if you got an advanced degree and published certain sorts of papers. And if you do stay technical, you'll be subject to death marches.
And of course it's all processes optimized for maximum paperwork; waterfall and crushing technical debt. Each action item is budgeted and when the budget runs out, you're done regardless.
You are expected to angle towards program management to feed the beast. Even then , it's still "up or out."
So of course it's going to fail at times. I really want to know the actual capabilities of the things, but I know I'll have to wait some years before russia or china are even able to copy those systems.
http://breakingdefense.com/2016/05/f-35-wins-denmark-competi...
For example, the engineers did not sign off on buggy systems. The executive officers did because they had a contract with an archaic structure that is not compatible with software development and required the milestone to be met or there be penalities. But the reason the milestones weren't met in the first place was poor management and contract structure created by those executives in the first place.
Biggest issue is too much ambition and too much budget trying to be crammed into one project. Other big issue is lack of closed feedback loops. It looks like the devs do not have a production system to do integration testing on. There are probably communication barriers between QA testers ie pilots and devs, caused again by poor structure and culture of military. Also likely very long lag between releases so few opportunities for iteration. Also likely using outdated programming languages like C++ for application-level logic.
The nation-state's deadly enforcers eg military are directly descended from historical organized crime, since nations generally started as simply the most powerful families.
Look at the first premise of this whole thing: we are going to fly around and missile/bomb the shit out of you if you don't go along with our global domination. So from the beginning it is poorly planned.
I understand completely your point. The distinctions between militaries and crime families is the chain of command and accountability - they're subject to oversight by a legitimate government.
The hot job in DoD contractor is contracting itself - feed the beast. The actual work is a minor annoyance to them. It's just careerism on stilts.
There have been many large scandals with military hospitals and veterans care in the U.S.
https://duckduckgo.com/?q=walter%20reed%20scandal%20site%3An...