
On the criteria to be used in decomposing systems into modules (1971) - gflandre
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2979&context=compsci
======
sciolizer
Is it too much of a simplification to say that this paper is basically
advocating object-oriented design, before that term was coined?

My summary:

The paper compares two different ways of dividing a codebase into modules. The
program under question is KWIC. In the first case, the modules are divided
into the four major steps of executing the KWIC algorithm: Input, Circular
Shift, Alphabetizing, and Output. In the second case, the modules are nearly
the same, but they are more service-oriented than action-oriented, e.g.
Circular Shifter and Alphabetizer instead of Circular Shift and Alphabetizing.
The chief difference is the interfaces between the two. In the first case, the
contract between modules is the format of the data structures being passed
from step to step. In the second case, the data structures are encapsulated,
and the contract between modules is the api for manipulating the hidden data
structures.

The author argues that the second way is better in terms of changeability,
independence of development, comprehensibility.

At this point I lost interest in the paper (because I sing in the choir), but
scanning the rest, the author talks about how to avoid taking a performance
penalty when using the second design, and then gives a second example, this
time of a markov algorithm translator instead of a KWIC.

~~~
tel
I think they're advocating for some piece of OO design, but I think it's more
core than OO generally. It's a technique for justifying the existence of
existentials/modules of which OO is one kind of elaboration. OO design thus
reflects some of module design.

------
biehl
Urgh - does the text exist in a nicer format somewhere?

~~~
yanowitz
[http://lmgtfy.com/?q=On+the+criteria+to+be+used+in+decomposi...](http://lmgtfy.com/?q=On+the+criteria+to+be+used+in+decomposing+systems+into+modules)

~~~
biehl
Thanks - but, I hoped someone would save me from looking through lots of
similar pdfs.

