7 November 2015

Sequence Diagram by Charles Babbage

Charles Babbage designed the Analytical Engine, a mechanical computer, in the 19th century. Only a partial trial model was built when he died in 1871:


In his 1826 paper, On a Method of Expressing by Signs the Action of Machinery, he explains the need for a graphical modeling language in his project:
The difficulty ... induced me to seek some method by which I might at the glance of the eye select any particular part, and find at any given time its state of motion or rest, its relation to the motions of any other part of the machine, and if necessary trace back the sources of its movement through all its successive stages to the original moving power.
Babbage later stated:
Without the aid of this language I could not have invented the Analytical Engine; nor do I believe that any machinery of equal complexity can ever be contrived without the assistance of that or some other equivalent language.
In the paper he uses a clock as an example:
The diagram below shows, in the middle columns (READING OFF PART), the hands of the clock (Hour, Minute and Seconds) and to the left the parts (TIME PART) connected to them. The time parts are labeled with the letters you can also find in the drawing of the clock mechanism above.
In the ORIGIN OF MOTION rows in the diagram you find arrows indicating the interactions between the parts. The lower half of the diagram shows a vertical time line with indications of the activity (active, direction of motion, variable speed...) of each part.   
It is interesting to note how close this resembles UML's sequence diagram is, with its object lifelines, message exchange arrows and activation boxes.


Here's an example of a UML Sequence diagram: