Further Reading — Chapter 8: Paragraph and Section Design

Books

  • Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. While not COBOL-specific, Martin's principles of small functions, meaningful names, and single responsibility apply directly to COBOL paragraph design. Chapter 3 (Functions) is particularly relevant.

  • Yourdon, E., & Constantine, L. (1979). Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice Hall. The definitive text on cohesion and coupling. Yourdon and Constantine's classification of cohesion types (functional, sequential, communicational, procedural, temporal, logical, coincidental) provides a rigorous framework for evaluating paragraph design.

  • Stern, N., Stern, R., & Ley, J. (2006). COBOL for the 21st Century (11th ed.). Wiley. Chapters on program design and structured programming provide COBOL-specific guidance on paragraph organization and top-down development.

  • Murach, M. (2020). Murach's Mainframe COBOL. Murach. Chapter on program design includes practical naming conventions and structure guidelines used in production mainframe environments.

Historical Papers

  • Dijkstra, E. W. (1968). "Go To Statement Considered Harmful." Communications of the ACM, 11(3), 147-148. The paper that launched the structured programming movement. Required reading for context on the GO TO debate — and often misunderstood. Dijkstra's argument was more nuanced than the title suggests.

  • Bohm, C., & Jacopini, G. (1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules." Communications of the ACM, 9(5), 366-371. The mathematical proof that any algorithm can be expressed with sequence, selection, and iteration. The theoretical foundation of structured programming.

  • Knuth, D. E. (1974). "Structured Programming with go to Statements." ACM Computing Surveys, 6(4), 261-301. Knuth's balanced counterpoint to Dijkstra. He argues that certain uses of GO TO are not only acceptable but preferable for clarity and efficiency. Essential reading for the GO TO debate.

  • Mills, H. D. (1972). "Mathematical Foundations for Structured Programming." IBM Technical Report FSC 72-6012. The paper that brought structured programming to IBM and, through IBM, to the COBOL world.

IBM Documentation

  • IBM Enterprise COBOL for z/OS Programming Guide (SC27-1412). The chapter on program design and structure includes IBM's recommendations for paragraph organization, PERFORM THRU usage, and program flow patterns.

  • IBM COBOL Coding Standards and Guidelines (various internal publications). While not publicly available as a single document, IBM's coding standards have influenced most mainframe COBOL shops. They emphasize hierarchical numbering, verb-noun naming, and the PERFORM THRU with EXIT paragraph pattern.

Online Resources

  • McCabe, T. (1976). "A Complexity Measure." IEEE Transactions on Software Engineering, SE-2(4), 308-320. The original paper defining cyclomatic complexity. Understanding this metric helps you evaluate paragraph design quality quantitatively.
  • Chapter 6: Advanced Conditional Logic — The conditional constructs that paragraphs organize: EVALUATE, 88-levels, nested IF management.
  • Chapter 7: Iteration Patterns — PERFORM in all its forms: the mechanism by which paragraphs are invoked.
  • Chapter 9: Copybooks and Code Reuse — Extending design principles beyond a single program to shared data definitions and code.
  • Chapter 22: Modular Design with Subprograms — Design principles for inter-program communication via CALL, extending the cohesion and coupling principles from paragraphs to programs.
  • Chapter 35: Code Review and Quality Standards — Formal methods for evaluating the quality of paragraph design in code reviews.