A System Is Not a Tree - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
A System Is Not a Tree PowerPoint Presentation
Download Presentation
A System Is Not a Tree

play fullscreen
1 / 40
A System Is Not a Tree
1320 Views
Download Presentation
Kevlin
Download Presentation

A System Is Not a Tree

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. A System Is Not a Tree @KevlinHenney

  2. Let us examine [software's] difficulties. Following Aristotle, I divide them into essence — the difficulties inherent in the nature of software — and accidents— those difficulties that today attend its production but that are not inherent.

  3. How much of what software engineers now do is still devoted to the accidental, as opposed to the essential?

  4. Arboricide is the murder of trees. The victims of arboricide are the descriptive tree structures that are so often found in software, holding together many individual elements in one coherent and immediately understandable harmony.

  5. Software development should not be a trade of constructing difficulty from simplicity. Quite the contrary. So where there are trees to be shown you should show them, and refrain from turning the relationships they describe into a puzzle. It is, essentially, a matter of the span of description. Aboricide, then, is using a smaller description span when a larger one would be better.

  6. Trees sprout up just about everywhere in computer science. Donald Knuth

  7. main subroutine subroutine subroutine subroutine subroutine subroutine subroutine subroutine afferent branch transform branch efferent branch

  8. main function function function function function function function function afferent branch transform branch efferent branch

  9. main function function function function function function function function

  10. Concept Hierarchies The construction principle involved is best called abstraction; we concentrate on features common to many phenomena, and we abstract away features too far removed from the conceptual level at which we are working. Ole-Johan Dahl and C A R Hoare "Hierarchical Program Structures"

  11. Infrastructure Services Domain

  12. Domain Services Infrastructure concept realisation

  13. A city is not a tree Christopher Alexander

  14. A city is not a tree Christopher Alexander

  15. The tree of my title is not a green tree with leaves. It is the name of an abstract structure. I shall contrast it with another, more complex abstract structure called a semilattice. Both the tree and the semilattice are ways of thinking about how a large collection of many small systems goes to make up a large and complex system.

  16. The semilattice is potentially a much more complex and subtle structure than a tree. It is this lack of structural complexity, characteristic of trees, which is crippling our concepts of the city. The reality of today's social structure is thick with overlap — the systems of friends and acquaintances form a semilattice, not a tree.

  17. The basic thesis [...] is that organizations which design systems [...] are constrained to produce designs which are copies of the communication structures of these organizations. Melvin Conway How Do Committees Invent?

  18. We have seen that this fact has important implications for the management of system design. [...] A design effort should be organized according to the need for communication. Melvin Conway How Do Committees Invent?

  19. EPISODES: EPISODES: A Pattern A Pattern Language of Language of Competitive Competitive Development Development Ward Cunningham

  20. In simplicity of structure the tree is comparable to the compulsive desire for neatness and order that insists the candlesticks on a mantelpiece be perfectly straight and perfectly symmetrical about the centre.

  21. test test test function

  22. method test test method test method

  23. test test method test test method test test method

  24. tests class tests tests tests class

  25. In simplicity of structure the tree is comparable to the compulsive desire for neatness and order that insists the candlesticks on a mantelpiece be perfectly straight and perfectly symmetrical about the centre. The semilattice, by comparison, is the structure of a complex fabric; it is the structure of living things, of great paintings and symphonies.

  26. A program which has such a structure in which there is no single "highest level"... is called a heterarchy (as distinguished from a hierarchy).