Here’s an example of a Level-1 Data Flow Diagram (DFD) for our reservation system. It highlights how data moves between external entities, processes, and storage components.
flowchart TD
%% External Entities
Customer[Customer]
ResourceCatalog[Resource Catalog]
PaymentGateway[Payment Gateway]
NotificationService[Notification Service]
%% Processes
Process1[Submit Reservation]
Process2[Check Resource Availability]
Process3[Process Payment]
Process4[Notify Customer]
%% Data Stores
D1[Reservation Data Store]
D2[Customer Data Store]
%% Data Flows
Customer -->|Reservation Details| Process1
Process1 -->|Reservation Data| D1
Process1 -->|Customer Details| D2
Process1 -->|Resource Details| Process2
ResourceCatalog -->|Resource Availability| Process2
Process2 -->|Reservation Confirmation| Process1
Process1 -->|Payment Info| Process3
PaymentGateway -->|Payment Status| Process3
Process3 -->|Notification Request| Process4
Process4 -->|Notification| NotificationService
Explanation
External Entities:
- Customer: Provides reservation details.
- Resource Catalog: Supplies availability data for requested resources.
- Payment Gateway: Processes payments for completed reservations.
- Notification Service: Handles notifications to customers upon reservation confirmation.
Processes:
- Submit Reservation: Accepts input from the customer and initiates the workflow.
- Check Resource Availability: Verifies whether the requested resource is available for the specified time frame.
- Process Payment: Handles payment for the reservation.
- Notify Customer: Sends confirmation or other communication to the customer.
Data Stores:
- Reservation Data Store: Maintains reservation-related information such as dates, status, and resource IDs.
- Customer Data Store: Stores customer details including contact information.
Data Flows:
- Data flows illustrate how information moves between entities, processes, and storage. For example, reservation details flow from the Customer to the Submit Reservation process, which then interacts with the Reservation Data Store and other processes.