KeyWord in Context

Example modularizations from "On the Criteria To Be Used in Decomposing
Systems into Modules", by D.L.\ Parnas (1972)

ORIGINAL SPECIFICATION

Accept an ordered set of lines, output all word-wise circular shifts
of all lines in alphabetical order. For example, the input
  xxx yyy zzz
  aa bb xxx
will produce
  aa bb xxx
  bb xxx aa
  xxx aa bb
  xxx yyy zzz
  yyy zzz xxx
  zzz xxx yyy

FIRST DESIGN

See "A/":
  Input, Shift, Sort, Output, Main

SECOND DESIGN

See "B/" which uses the same algorithms and data structures but:
  Lines, Input, Shift, Sort, Output, Main

LIKELY CHANGES

 1. input format                            A,B:Input
 2. ability to store all lines in memory    A:all, B:Lines
 3. (low-level, omitted)
 4. compute shifts eagerly                  A:Shift+Sort+Output, B:Shift
 5. sort lazily                             A:Sort+Output, B:Sort
