A high-level design defines a system’s modules and the interactions between them. In data-oriented programming, modules are stateless functions, while data remains outside them. section 2.3
Use these guidelines when shaping the design:
- Align high-level modules with high-level data entities. section 2.3
- Pass the relevant data explicitly as function arguments rather than hiding it in module state. section 2.3
- Separate responsibilities such as catalog data and user-management data into distinct modules. section 2.3
Library Management System
A design based on the data mind map uses Library, Catalog, and UserManagement modules. Catalog functions receive catalogData; UserManagement functions receive userManagementData; Library functions receive libraryData and operation-specific arguments. section 2.3
Inspect the module diagram showing Library, Catalog, and UserManagement together with their function arguments. section 2.3
