Software Design · Software Engineering

Data-Oriented Design

Watch lectures

Data-Oriented Design

Definition

Data-Oriented Design (DOD) is a design approach where the structure of the data (its layout, relationships, and flow) is the primary driver of the system design — the program's structure is derived from and mirrors the structure of the data it processes.

Core Idea

Unlike function-oriented design (which starts from "what processes are needed"), data-oriented design starts from "what does the data look like, and how does it flow" — the program structure follows from that.

Jackson Structured Programming (JSP) — Key Data-Oriented Technique

  1. Model the structure of the input data
  2. Model the structure of the output data
  3. Merge the input/output structures into a combined program structure
  4. Derive the program's control logic (sequence, iteration, selection) directly from this merged structure

Data Structure Notations Used

  • Sequence — data items occur one after another
  • Iteration — a data item repeats (0 or more times)
  • Selection — a data item can be one of several alternative types

Advantages

  • Well suited to data-processing-heavy applications (batch processing, file processing, report generation)
  • Program structure closely mirrors data, making it intuitive to derive code
  • Reduces mismatch between data format and program logic — fewer bugs handling malformed data

Disadvantages

  • Not well suited to systems with complex, interactive, or GUI-driven logic
  • Less popular today compared to Object-Oriented approaches
  • Can become rigid if data structure changes significantly

When to Use

  • Legacy data-processing systems
  • Batch-oriented report/file processing applications
  • Systems where data structure is stable and central to the problem

Exam tip: Contrast with Structured (Function-Oriented) Design: DOD derives structure from data; Structured Design derives structure from functions/processes (via DFD → Structure Chart).

Budget AppAndroid App

Pocketly on Android

Log daily food, travel, and hostel expenses instantly. Set monthly spending limits and see where your money goes without complex spreadsheets.

← All Software Engineering modules