PPRuNe Forums - View Single Post - US to withhold F-35 fighter software codes
Old 30th Nov 2009, 03:27
  #76 (permalink)  
Jofm5
 
Join Date: Jan 2008
Location: LONDON
Age: 51
Posts: 525
Likes: 0
Received 0 Likes on 0 Posts
My experience as a software developer of 21years is the basis for my answer, my reason for perusing the forums is my goal to fly (a student at the moment) - Just thought I would say .

I observe from the above the general admonishment at the lack of desire to provide the "software" which I read as source code to the F35 project. I also acknowledge the question of whether it can be used to justify an aircrafts airworthiness (I presume as a criteria for acceptance).

Airworthiness and software dont really mix, there may be certain revisions of software accpected for airworthiness purposes but each revision, compatibility may need to be tested etc for insurance purposes as there is no simple answer to airworthiness and software compatibility in any respect.

If I may provide a little background and I apologise if I am trying to teach some to suck eggs..

Since the 70's software development moved from the procedural paradigm to the object orientated paradigm, to put this into laymens terms when working in an object orientated environment both the code and data are encapsulated together into a class (e.g. a rudder) that has parameters and functions that are expected of that object and have predicted outputs.

The object orientated paradigm was embraced whole heartedly by the various military organisations (and commercially) as it allows each individual real life object to be designed as such - e.g. if you think simply a rudder was designed to behave as a rudder, each rudder class could be individually be checked to see if it behaved like a rudder by putting it into a test environment and feeding it parameters - from the inputs you have expected outputs you can check against.

Encapsulation in this manner has added benefits in that should you change anything to do with the rudder you need only perform the extensive tests on the rudder classes to check the input and output parameters. If the test harness for the rudder class passes all parameters it should not have any impact on the overall software environment however it is not uncommon for full regression tests to be performed.


With encapsulation being the key to the modern programming paradigms, it is not unusual to publish a class, its interfaces and what they do, but not necessarily how it goes about accomplishing this.

Whilst I cannot relate to who has what contract with whom, if there is a smart algorithm hidden in certain classes within the source code then I am not entirely suprised it is hidden. The whole point of object orientated programming is that as a subscriber you need to know a given instance of a class (an object) behaves in a particular way when provided parameters, you do not need to know the implementation as to how or why but just how to provide the paramters. This is the concept of using librarys of code (and pre-dates object orientation).

Publishing the class model of the above is often referred to as the API - the applications programming interface - you get given the details as to the input and expected output but not the detail as to what goes on inbetween. Each developer need not know how each component works but what is expected..

Getting the full source code as to how and why something works is a nice to have, if you have found a flaw in for example the rudder then you can reverse engineer what is there and try improve to adapt to your requirements. However, reverse engineering code takes on average (in my experience) around 2-3 times more effort than starting from scratch as you are required to figure out what was trying to be achieved in the first place.

My whole point in writing the above is it may not necessarily be that the software is being witheld but the implementation. I can agree with those that feel if you have paid for the F35 then you should get all that goes with it, however if given the published API for the hardware you should be able to write any software you like regardless of implementation - if you want to write some software to work outside the published limits then that is a bespoke environment.

Apologies to all in that I dont have a military or "true" aviation background but I thought I may add some value to this discussion.

Last edited by Jofm5; 30th Nov 2009 at 03:42.
Jofm5 is offline