Review of THE (Nate Dire)

From: Nathan Dire (ndire_at_cs.washington.edu)
Date: Tue Jan 06 2004 - 23:26:08 PST

  • Next message: David Coleman: "Review of the THE paper"

    In "The Structure of the 'THE'-Multiprogramming System", Dijkstra presents a
    multiprogramming system designed to process user programs for the
    Technological University on a machine called the EL X8. He outlines the
    implementation of the system, from the guiding principles to the basic
    structure to the method of verification.

    This paper include design principles that remain quite relevant today. The
    layering approach shown in the "hierarchy of sequential processes" remains a
    core principle of modern software engineering. The storage system seems to
    have much in common with modern virtual memory implementations. The notion of
    "relevant states" seems very similar to what I hear commonly referred to as
    "boundary conditions", an important idea in software verification. Lastly,
    Dijkstra appears to make a reference to the notion of portability when he
    advises, "try to keep the specific properties of the configuration for which
    are preparing the system out of your considerations as long as possible."

    Although I think that the design principles outlined in the paper seem
    impressive even in today's context, I see much to criticize in the methodology
    that's presented. Dijkstra suggests that testing the "relevant states" at each
    level of the hierarchy has some inductive power to test all possible states of
    the system. He goes so far as to say "At the time this was written the
    testing had not yet been completed, but the resulting system is guaranteed to
    be flawless." This seems to go against the conventional wisdom of software
    verification, and I find it very hard to believe.

    Another problem with the methodology of the paper is the omission of any
    concrete evaluation of the results. Dijkstra mentions four specific objectives
    related to the purpose of the system, yet makes no effort to measure how well
    the system met those objectives. Without any concrete results, it's
    difficult to evaluate the usefulness of the system or the design principles
    that Dijkstra uses.

    In conclusion, I see many principles of modern systems and software
    engineering methods in Dijkstra's explanation of "THE" that seem quite
    ingenious given the historical context, but the methodology of the paper does
    not to measure up to what I would expect from current research.


  • Next message: David Coleman: "Review of the THE paper"

    This archive was generated by hypermail 2.1.6 : Tue Jan 06 2004 - 23:26:10 PST