How Airbus is debugging the A350
businessweek.com
businessweek.com
Not sure what to think about that.
http://thedailywtf.com/Comments/The_Best-est_Version_Control...
I doubt that when technical drawing "versioning" predates CAD by decades, in the form of drawing release/review and configuration management (CM) groups that were highly organized by WW2. This was then implemented by packages like ENOVIA, SolidWorks PLM, which facilitate the review/signoff process to be paperless, but it is basically the same. This is completely different from the entertainment industry, which doesn't care about part compatibility, analyst reviews (stress, aerodynamics, weights, etc.), not to mention the nature of CAD data (rife with engineering metadata on assembly hierarchies, dimensions with tolerances, materials) being very different from the "looks good" graphics of entertainment/art.
I would agree its less impressive if everyone is forced to used the same CAD package. The video did not state whether or not that was the case.
Initial production of the A380 was troubled by delays
attributed to the 530 km (330 mi) of wiring in each
aircraft. Airbus cited as underlying causes the
complexity of the cabin wiring (98,000 wires and 40,000
connectors), its concurrent design and production, the
high degree of customisation for each airline, and
failures of configuration management and change control.
The German and Spanish Airbus facilities continued to use
CATIA version 4, while British and French sites migrated
to version 5. This caused overall configuration
management problems, at least in part because wiring
harnesses manufactured using aluminium rather than copper
conductors necessitated special design rules including
non-standard dimensions and bend radii; these were not
easily transferred between versions of the software
http://en.wikipedia.org/wiki/A380#Production_and_delivery_de...Nevertheless, CATIA is top-notch is used by many car, ship, aircraft and spacecraft manufactures.
(Here I mean https://en.wikipedia.org/wiki/Static_program_analysis , not https://en.wikipedia.org/wiki/Static_analysis )
Shouldn't they use languages specially suited for this kind of analysis?
I remember learning that stateless programing (ie. functional programming) makes this kind of analysis several orders of magnitude easier since it eliminates coupling and control flow dependence. Yet I've never heard of critical software being written in Haskell or whatever.
There's at least one fairly mature implementation of a certified compiler out there (CompCert) with only minor restrictions to the language.
In other words, the static analysis works on C programs because there are more extant (and mission-critical) C programs than Haskell ones, and the authors of the static analysis software wanted their tool to be as useful as possible, so they chose to analyze C.
What are basing that on?
A stateless side-effect free language would be significantly more amenable to real-time constraints b/c you can guarantee run-times for your functions.
EDIT: Seems I'm wrong http://www.haskell.org/haskellwiki/GHC/Memory_Management
- just allocate, never collect (not infeasible with 64-bit memory spaces, if you have lots of swap and can rebozo fairly frequently, but bad for cache locality)
- garbage collect at provable idle times. Question is: when are those?
- concurrent garbage collect, and proof that it can keep up with allocations
Finally, you could try and design a language where one can (often) prove that bar can be mutated in place in expressions such as
bar = foo(bar,baz)
(That's possible if you can prove there's only one reference to bar at the time of the call)(Rust's memory model may help here)
I am not aware of any claims that it is possible to write meaningful systems based on this model that do not have to allocate new objects regularly. Problem is that, to guarantee the 'one reference' property, you have to make fresh copies of objects all the time, and that beats the reason why you want that 'one reference' rule.
It's okay to have bleeding edge technology in the ancillary tools like the static analyzer. But for safety-critical work, you don't want bleeding edge technology in the language in which you're writing the actual code.
[1] Fifteen Years of Formal Property Verification in Intel by L Fix, 2008 [http://www.cs.ucc.ie/~herbert/CS6320/EXS/LimorFix%20Intel%20...]
Iron birds, flight tests, etc are the requirements from the certification authorities. I.e. this is a fluff piece acting as journalism where the title and conclusions don't match the data.
"This is nothing new and isn't different from Boeing in anything they mentioned in the article."
contradicts this
"Lack of rigor and believing things would just work (too optimistic) from what I have heard on the outside."
The guys over at airliners.net are tracking the state of building frames. They are ~1100 hours into a 2400 hour test flight program and they have only 4 planes flying (or almost there) and 2 in various states of building. Compare that to 787 which had to fix so many uncomplete frames after finding issues in test flights
http://images.businessweek.com/graphics/airbus-a350-3d-graph...
How did they go from the Trimble/Sketchup A350 model to showing the model in the browser in "3D"?
Recommended listening:
http://youtu.be/AjzcdvF3gDc?t=3m48s
http://youtu.be/mGF_0AcHaGs
http://youtu.be/kn6-c223DUU
http://youtu.be/eF-4Cr9Iy_8
edit: further investigation looks like they're using http://threejs.org loading a COLLADA-format file (that can even be QuickLooked on my Mac somehow) http://images.businessweek.com/graphics/airbus-a350-3d-graph...That said, it can still be fussy with many scenes.
A small thing, but hugely gratifying that kalleboo found the recommended listening.
Can someone explain me whether/how Agile methodologies would be applied to an Airbus project? I'm asking this because I can't always explain how to do Agile when people pretend there are a lot of reqs, so an industrial project would be a good example to try it on.
The short answer is 9:00–10:00 AM EST on a weekday.