Here are two ways we might be doing something conceptually specified by the flowchart.
Abstraction: Wiring diagrams
New problem expressed in terms of old problem.
Here is a similar update in the case of wiring diagrams, where there are many high level operations we can perform on the data structure of a wiring diagram which would be tedious or buggy to implement on general purpose code. Again we generate the new specification and apply our preexisting semantics to automatically generate a new implemenation.