Modelling the Flow of Computation
A graph of model objects whose relationships define how data flows through a calculation.
- Input data feeds a filter whose output supplies Node A and Node B.
- Node C receives the outputs of both Node A and Node B; each component applies its own parameters.
- The directed connections describe computational relationships, not just the layout of the drawing.
What It Does
Analysts construct a financial model by connecting data sources, filters and computational components. Each component applies its own parameters to the data it receives. The connections determine which objects supply inputs to others. Changing the structure changes the flow of computation, not just its appearance.
A data source can feed a filter whose output supplies several components. In the illustration, nodes A and B each process that input; node C receives the outputs of both. The graph makes those relationships editable while each object retains its own parameters and supporting data.
The Design Problem
The visible structure has to describe something the calculation system can use. A connection needs a valid source and destination, and may carry settings governing which values pass through it. An object can have several inputs, and a model can refer to a component defined elsewhere.
The editor therefore needs to preserve both the topology—the pattern of connections—and the meaning of the objects it connects.
Design Decisions
Objects and connections
Nodes refer to typed business objects. Connections are model records in their own right, with source and destination identities and their associated settings. Diagram position is stored separately from those relationships.
The canvas translates user actions into this model. Inspectors edit the objects’ properties; the graph edits how those objects participate in the structure. Both operate on the same application state.
Calculation inputs
When preparing an analysis, connections are grouped by destination to describe each object’s sources. Source references resolve to the datasets appropriate to the chosen analysis inputs. Linked components retain the source information needed to identify the model they come from.
The resulting calculation representation carries the structure alongside each component’s parameters and the analysis options. The graph supplies the computational relationships; the calculation service executes them.
Connection validation
Object types constrain the relationships an analyst can draw. Data sources and externally linked components can supply a connection but cannot receive one. Self-links and connections that would close a cycle are rejected as the connection is proposed.
These rules guide construction of a directed model. They belong to the modelling interaction, rather than being instructions users must remember while drawing arbitrary edges.
Copies and references
A copied component receives independent records, child data and identities. A linked component continues to refer to its source. Import remaps connections around that distinction, so a copied structure does not retain ownership of the original’s child records.
Repeated references within an incoming group are consolidated and their connections redirected.