Goddard Space Flight Center, Greenbelt, Maryland 20771  

ENGINEERING COLLOQUIUM 

Monday, February 10, 2003 / 3:30 PM, Building 3 Auditorium 

 

Tim Menzies

"What can software engineering learn from physics?"

ABSTRACT -- There is much software engineering can learn from physics. For example, the physicist John Wheeler advised "In any field, find the strangest thing and then explore it.". The strangest thing about software is that it works at all. Given the complexities of our computer systems, how is it possible that software works at all? Isn't it most likely that software systems written by quirky humans laboring under impractical tight deadlines will just crash all the time? How is it, given the poor state of the art in understanding requirements and testing that our system work at least as well as they do?

Physics not only makes us ask this question, but it answers it as well. Software, like many physical systems, exhibits "phase transition effects" where millions of interactions within a program can be constrained and contained by moving a small number of critical variables over a small number of critical thresholds.

A physical analogy might explain this. A million water molecules bouncing around at random can be converted into something as solid as ice, merely by moving one value (temperature) over one critical threshold (freezing point).

The software phase transition effect changes how we might develop software. Software analysts can become explorers looking for ways to tame the software devices they are constructing. Software construction becomes a process of constraining an evolving set of rapidly built models across the life cycle. "Testing" stops being a separate phase in the software life cycle but fuses into the whole exploration process.

This all sounds like a recipe for chaos, but given the phase transition effect, and the presence of a small number of critical thresholds, then the chaos can quickly be contained and incremental software development should a calm process of elaboration and constraint exploration.

SPEAKER -- Dr. Tim Menzies has been working on advanced software engineering techniques since 1986. He is the author of over 125 research articles and currently is the software engineering research chair at NASA's Independent Verification and Validation (IV&V) Facility. Dr. Menzies received his PhD from the University of New South Wales, Sydney, Australia. 


Colloquium Committee Sponsor: James Rash, GSFC, 301-286-5246
Next Week: No colloquium (holiday)
Engineering Colloquium home page: http://ecolloq.gsfc.nasa.gov