• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Question from a news story

Messages
1,029
Country
us-florida
I read a news story this morning about the Lockheed Martin F-35 which is finally coming on line after an eighteen to twenty year gestation period. The story stated the there are over 8.5 million lines of code running all the systems. So my question is how do you test all that code with certainty that you tested every line?

Ed
 
You don't test each line in isolation. You test all the systems. If you exhaustively test each system, and it functions as it should, then the code supporting it is ok.
 
Depends. Flight sim devs have it easy compared to the real deal....We can easily fake the illusion of a function with far less code than to replicate the real thing.
 
Depends. Flight sim devs have it easy compared to the real deal....We can easily fake the illusion of a function with far less code than to replicate the real thing.

We also get away with any bugs. :D
 
You don't test each line in isolation. You test all the systems. If you exhaustively test each system, and it functions as it should, then the code supporting it is ok.
I would think that you would need to devise a testing program that would be thorough enough that at some point you have actually called each line. Only then would you know that you are bug free.
 
NASA devised a "clean room" methodology for testing the space programme's software: afaik the coders and testers were separated to keep the testing/fixing process rigorous. Considering how successful the Apollo and then Shuttle programmes were, they did a pretty good job. However, you can never make any system foolproof 'cos fools are so smart. Let's hope L-M have been thorough
 
I read a news story this morning about the Lockheed Martin F-35 which is finally coming on line after an eighteen to twenty year gestation period. The story stated the there are over 8.5 million lines of code running all the systems. So my question is how do you test all that code with certainty that you tested every line?

Ed

for safety-critical application there will be redundant code running on different processors and compilers.
 
Different systems carry different levels of validation. Certain code, deemed irrelevant to flight safety, could be categorized a low level, which requires a minimal testing. So the pressure on the manufacturers is really on testing the highly critical lines of code.

In the high criticality categories, there are requirements for 100% code coverage testing against requirements, and a requirement for no "dead code", so yes, the effort to test often is larger than the effort to develop, and it creates iterations.
 
As a Canadian - we are buying the F-35 to replace our ageing F-18, However the Canadian winters affect the F-35 communications/satellite

CBC news - Oct 2011

"Canada's new multi billion-dollar stealth fighters are expected to arrive without the built-in capacity to communicate from the country's most northerly regions — a gap the air force is trying to close.

A series of briefings given to the country's top air force commander last year expressed concern that the F-35's radio and satellite communications gear may not be as capable as that of the current CF-18s, which recently went through an extensive modernization.

Military aircraft operating in the high Arctic rely almost exclusively on satellite communications, where a pilot's signal is beamed into space and bounced back to a ground station.

The F-35 Lightning will eventually have the ability to communicate with satellites, but the software will not be available in the initial production run, according to a senior Lockheed Martin official.

It is expected to be added to the aircraft when production reaches its fourth phase in 2019, but that is not guaranteed because research is still under way."

So more testing for the software ..... :stirthepo
 
The report states:

The error was not in the code itself, but in configuration settings programmed into the electronic control unit (ECU) of the engines.

whatever that means?
 
If the requirements were badly written, the code will be ineffective while still being completely tested to the requirement. You have to expand your definition of "code" to include the entire communication process between needs, the translation of needs into high level requirements, the translation of high level requirements to low level requirements, and finally the accuracy of the code bringing the low level requirement into being, before you can begin to assign blame to the software testing engineers when a system malfunction is exposed.
 
8.5 million lines of code... Let alone, I would like to know how many lines of code makes whatever I do on my computer work as it does ATM.

Systems are not the work of one single guy just like everything in my computer was created by thousand of developers out there. Yet, it's just one computer, not an F35. Manufactured in 2013, I don't think everything in my computer was created in 2012; I'm pretty sure there are components/hardwre/software bits created in 2010, 2005, 2000, even before (Assembler code)... "Avoid reinventing the wheel whenever possible" they constantly told us.

By the way, code blocks are made of lines of codes. Many of those blocks are known working well, so doesn't really require extensive testings unless you changed something in there. You can drop at least 2 millions lines of code from there.
Good codes are 1) working. 2) uses self explanatory keywords. 3) well documented. 4) capable of handling all posible cases of exceptions (bugs). and 5) provides accurate description, context and location of an exception, if one would occur. Failing to take that fith condition is what lengthen beta testings and delays fixes. So, performance in beta testing 8.5 millions lines of code depends on what the programmer did. Yes, you have some obscure lines of code in any application, but usually, professional developers avoid doing it, because they are the first ones to get pissed if anything were to go wrong. Most part of that 8.5 millions lines are not that difficult to get working really well.

Beta/Alpha testing softwares (and hardwares by the way) doesn't occur the moment you merged all systems together, otherwise the F35 wouldn't have been able to fly yet. Each onboard system has ongoing tests from the start. The same for hardware and softwares.

Of course, you have evolving technologies, and just like in your everyday life, some components have to be updated. Ever tried to install a 2007 printer on Windows 10 ? It doesn't work. And so goes for some systems on the F35, the more since in a military/defense environment, data safety and latest researches in data encription are crucial. If you fear leaking data in sensible comunication systems, you can't sell the plane... For a program that has been suspended for a few years, you would surely have obsolete systems that has to be updated or replaced -> further delays.

So, it's very easy to declare "there are 8.5 millions lines of blah blah in the F35" to make our brain focus on the massive amount of task that would have involved, so the software side of the project may be the cause of the delays. Maybe... maybe... a very few of those softwares, but is that the responsibility of the software developper(s) ? In a program such as the F35, you have hundreds of sub-program schedules, hundreds of components manufacturers... When you fail to take account of the development margin errors, and make mistakes in the manufacturing process, you'll surely have delays. This can occur anywhere in the pipeline process of the entire program. And there's also the financial part of that process. Because someone failed to finance one part of the program, you don't get the working system (and software) on time ! Wrong deadline... is it the fault of the developpers, or does any line of code is involved at all ?

8.5 millions or more doesn't mean nothing, at least to me :)
 
I'm amused by the mix on this site..we have folks who are fans of the aviation biz and form their ideas from the media, and others who are veterans of the real aviation business. Not much of the real story can be easily surmised by reading the news.
 
Google Joint Strike Fighter Air Vehicle C++ Coding Standards by Lockheed Martin.
 
Google Joint Strike Fighter Air Vehicle C++ Coding Standards by Lockheed Martin.

A very impressive - and interesting - document, well worth a read if you're into coding. Just as impressive is whose website pops up first on that search: Bjarne Stroustrup; but I still smile when reading type foo anywhere...
 
Back
Top