Logo

Object-Oriented Systems Engineering
Object reuse

Careless Code Reuse Causes Killer Kangaroos

Mutant Marsupials Take Up Arms Against Australian Air Force

The reuse of some object-oriented code has caused tactical headaches for Australia's armed forces. As virtual reality simulators assume larger roles in helicopter combat training, programmers have gone to great lengths to increase the realism of their scenarios, including detailed landscapes and - in the case of the Northern Territory's Operation Phoenix- herds of kangaroos (since disturbed animals might well give away a helicopter's position). The head of the Defense Science & Technology Organization's Land Operations/Simulation division reportedly instructed developers to model the local marsupials' movements and reactions to helicopters. Being efficient programmers, they just re-appropriated some code originally used to model infantry detachment reactions under the same stimuli, changed the mapped icon from a soldier to a kangaroo, and increased the figures' speed of movement. Eager to demonstrate their flying skills for some visiting American pilots, the hotshot Aussies "buzzed" the virtual kangaroos in low flight during a simulation. The kangaroos scattered, as predicted, and the visiting Americans nodded appreciatively... then did a double-take as the kangaroos reappeared from behind a hill and launched a barrage of Stinger missiles at the hapless helicopter. Apparently the programmers had forgotten to remove that part of the infantry coding. The lesson? Objects are defined with certain attributes, and any new object defined in terms of an old one inherits all the attributes. The embarrassed programmers had learned to be careful when reusing object-oriented code, and the Yanks left with a newfound respect for Australian wildlife. Simulator supervisors report that pilots from that point onward have strictly avoided kangaroos, just as they were meant to.

From June 15, 1999, Defense Science and Technology Organization Lecture Series, Melbourne, Australia, and staff reports. Item taken from Software Testing and Quality Engineering magazine, Volume 1, Issue 6 (November/December 1999).

*******************************************************************

This kangaroo story is an example of how urban myths propagate. I (Andrew Gabb) chased this one down after receiving a similar report from Jim van Gaasbeek some months ago. Amazingly, there is some truth in it, but only a smidgin. Apparently, the kangaroos did show some aggression at an early stage of integration and test, but this was only for a day or two, and not publicly. It should also be noted that they were not actually disarmed, but underwent behaviour modification to prevent armed response. The potential however is still there and can be reactivated at any time. The story is very useful for a number of reasons:
# It is an excellent example of reuse, and the advantages of inheritance. I use it myself as an example of OO in some of my training courses.
# It demonstrates 'unwanted inheritance', including the dangers of reuse (as opposed to re-engineering), in that it is difficult to guarantee that inherited traits will not emerge some day (blood will tell!).
# It shows the power of apocrypha over truth in spreading the word (I must have heard this one about 10 times by now).
# It shows how truth is the first victim of journalism - the story was nowhere near as interesting before a journalist got hold of it.
Andrew Gabb
____________________________________________________________________

Forum on Risks to the Public in Computers and Related Systems, ACM Committee on Computers and Public Policy, Peter G. Neumann, moderator, Volume 20, Issue 76, 23 January 2000.

Here's an update to the simulated Kangaroos story (RISKS-20.47)

Dr Anne-Marie Grisogono, Head, Simulation Land Operations Division at the Australian DSTO has told us what actually happened and we are delighted to set the record straight.

"I related this story as part of a talk on Simulation for Defence, at the Australian Science Festival on May 6th in Canberra. The Armed Reconnaissance Helicopter mission simulators built by the Synthetic Environments Research Facility in Land Operations Division of DSTO, do indeed fly in a fairly high fidelity environment which is a 4000 sq km piece of real outback Australia around Katherine, built from elevation data, overlaid with aerial photographs and with 2.5 million realistic 3D trees placed in the terrain in those areas where the photographs indicated real trees actually exist.

"For a bit of extra fun (and not for any strategic reason like kangaroos betraying your cover!) our programmers decided to put in a bit of animated wildlife. Since ModSAF is our simulation tool, these were modeled on ModSAF's Stinger detachments so that the associated detection model could be used to determine when a helo approached, and the behaviour invoked by such contact was set to 'retreat'. Replace the visual model of the Stinger detachment in your stealth viewer with a visual model of a kangaroo (or buffalo...) and you have wildlife that moves away when approached. It is true that the first time this was tried in the lab, we discovered that we had forgotten to remove the weapons and the 'fire' behaviour.

"It is NOT true that this happened in front of a bunch of visitors (American or any other flavour). We don't normally try things for the first time in front of an audience! What I didn't relate in the talk is that since we were not at that stage interested in weapons, we had not set any weapon or projectile types, so what the kangaroos fired at us was in fact the default object for the simulation, which happened to be large multicoloured beachballs.

"I usually conclude the story by reassuring the audience that we have now disarmed the kangaroos and it is again safe to fly in Australia."

************************************************************

Terry Bahill states that he has no idea which, if any, of these stories is true. However, in general, he disbelives most of what comes across the Internet.


You are the visitor to this directory since Feb 7, 2000. This site is maintained by A. Terry Bahill (terry@sie.arizona.edu). It was last changed on Feb 7, 2000. Would you like to go to Bahill's main Systems Engineering page?