Lecture
In object-oriented programming (OOP), the organization of data flows relies on the concept of decomposing an application into small, independent modules called objects. These objects can interact with each other by exchanging messages and data.
An ADFD (Action Data Flow Diagram) provides a graphical representation of the process modules within an action and of the interactions between them. It is built for each state of each class's objects.
An Action Data Flow Diagram (ADFD) is a graphical model used to model the data flows in a system, describing the sequence of actions the system performs in response to input data. An ADFD consists of the following elements:
When writing pseudocode, a sequence of actions is singled out – here we depart from that principle; a process can execute once all the data required for it to run become available.
Processes can receive data from other processes and from any external entities.

Conditional execution is also possible – a process executes depending on conditions. In this case there is no data transfer, only a conditionality of execution – a dashed arrow is drawn from the “conditional” process with the execution condition indicated for each transition.
Execution rules for an ADFD:
A process can execute once all its inputs are available.
A process's outputs become available once it finishes executing.
Event data (^ just an arrow on top) is always available; data from data stores and terminators is also always available
We break actions down into processes that can occur:
Validation process
Transformation process
Accessors (a process whose sole purpose is to access the data of a single data store)
Create
Read
Write
Destroy
Event generators (produce only a single event as output)
Each process needs to be clearly named and described.
Accessors – which attributes they read or write, which objects they create or destroy.
Event generators – result event, event label.
Transformations – what they do.
Validations – “check that...”
All processes in a subsystem are combined into a single table. The same processes can occur in different actions – they will be shared. Shared processes can perform the same function, read and write, and create and destroy the same objects, etc.
| Process ID | Type | Name | Where used |
|---|---|---|---|
| State model, action |
An ADFD is a useful tool for analyzing and designing a system, since it makes it easy to determine what data enters the system, how it is processed, and what data leaves it. It also helps identify weak points in the system and improve its performance.
Comments