Home

Engineering Colloquium Home
Schedule including this lecture.

Goddard Space Flight Center Engineering Colloquium

Date: Monday, February 10, 2003

Speaker: Tim Menzies

Title: 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


Engineering Colloquium home page: https://ecolloq.gsfc.nasa.gov

Home