This paper purports to describe a new programming paradigm, called the separation principle, which appears to be neither new, nor a programming paradigm. This principle appeared many years ago, in the syntactic construct of Fortran called “named common.” This principle does not provide a paradigm for programming, but provides a principle to be used in designing programs. This principle is defined as the explicit partitioning of data declarations and executable statements into separate modules, with the innovation that this can be represented in graphical form, using lines to represent connections between data modules and the code modules that can reference that data. Code modules are to be constructed by grouping “closely related code” together in modules. The principle says nothing about what “closely related” means. (The importance of defining this term was identified many years ago in the definitions of various types of “cohesion”: temporal, functional, and so on.)
Kambayashi and Ledgard make several claims about the effectiveness of the separation principle, with only one data point as justification. These include: the claim that human programmers do not easily understand scoping rules; the claim that the visibility of a function does not affect human understanding, but data dependency does; and the claim that the separation principle contributes to a program’s simplicity. The authors describe one experiment to test the understandability of a program created via the separation principle versus an object-oriented one, but fail to identify threats to validity, including the quality of the two programs, and the ability and experience of the students.