Data-structured programming

This course treats the so-called "data-structured programming design" of Warnier and Jackson. Especially for programs that process huge volumes of data, e.g. in a database context, a data-driven approach is beneficial, and actually common practice. Moreover, this gives guarantees of correctness to software components which use this approach, thereby simplifying the task of application testing considerably.

At the end of this course, the participant:

  • will be convinced of the necessity to create a program in a fixed, stepwise, structured way, and will be able to quickly write new programs without logic flaws, having a structure that corresponds to that of the input and output data;
  • knows the different techniques used in structured programming and their graphical representations;
  • knows the programming standards and rules;
  • knows the Jackson/Warnier technique for the simultaneous, parallel processing of several files with similar hierarchical structure.


No public sessions are currently scheduled. We will be pleased to set up an on-site course or to schedule an extra public session (in case of a sufficient number of candidates). Interested? Please let us know.

Intended for

First of all, COBOL or PL/I programmers who want to improve the structure and maintenance of their programs. Also any programmer, analyst, or application designer confronted with a complex data-oriented problem setting for which a readable and correctly functioning implementation is needed. This certainly applies to any non-interactive programs accessing relational databases. In that sense, an other important target audience of this course are PL/SQL and SQL PL programmers.


Basic knowledge of a programming language. The most popular languages used in data-driven context are COBOL (see COBOL programming - part 1), PL/I (see PL/I programming: fundamentals course), PL/SQL (cf. course PL/SQL database programming), and SQL PL (cf. course SQL PL database programming).

Main topics

  • Syntactic, semantic and pragmatic aspect:
  • Flowcharts, GOTO's, SWITCHING are not beneficial for maintenance
  • Different philosophies of structured programming: functional school versus data school.
  • The basic programme structures: sequence • selection • iteration • invocation of modules
  • The guarantee of an error-free program flow if the design model is strictly followed
  • Basic techniques:
  • General method for the conversion of data structures in a programme structure
  • Treatment of ruptures and levels (level method)
  • Matching of files (of identical or dissimilar structure)
  • Graphical representation of elementary program and data structures: Jackson, Warnier, Nassi-Shneiderman
  • Programming standards:
  • General structure of a batch program
  • Nomenclature variables and paragraphs • rules for typography • forbidden statements • sequence of declarations and paragraphs • division in subprograms

Training method

Classroom instruction with exercises (70% of the time). This course can be tuned to the programming standards of your company.


3 days.

Course leader

Peter Vanroose.