Since when are circuit board designs “idealized” concepts? There is a 1:1 representaion between circuit and glyph. The glyph may represent something made of many pieces or a sub component of a bigger piece (such as a transformer or an IC), but it still represents a discrete part that physically exists in 1:1 relation. You want an not gate? One wire in, one wire out, not gate in between.
Electronics are hard, physical things, they definitely exist.
Programs are made out of thoughts and concepts, and have about the same physical reality as pixie dust, and work basically the same way (think happy thoughts!)
No, I’m not kidding. You try holding a sort routine in your hand! Never happen, the best you can ever do is hold a representation of a sort routine in your hands, be it on paper, or arranged in magnetic bits on a platter, its still not the actual sort routine. The sort routine exists effermerally in the flow of electrons that blast through the cpu (which is made of those very real physical circuits we discussed earlier).
Programs, even when they are coded into a computer have as much physical substance as the original idea that spawned them.
I’ve never lost my original sense of wonder that what we are doing is closer to magic than science is so many ways.
As such, how do you diagram an idea? Can you draw a conclusion? Draw happy? Draw a stubbed toe!
It doesn’t work. Restricting the ideas to computers makes the problem harder, not easier. How abstract should your diagram be? Do you draw boxes for the applications? For the methods? THe variables? Is a sort routine an funnel instead of a box? Maybe a robot shuffling blocks? How much detail do you use? How much do you need?
No diagraming concept ever works for everyone, because thought is a personal experience and you can only diagram a thought like everyone else if you think exactly like them.
Worse, a style for drawing batch process doesn’t work for state transitions, but state transitions include tiny batches.
UML diagramming for everything is an attempt to catch the wind, and equally doomed.
Ultimately, the diagram IS the code. The code really just represents the idea with more detail. UML is just a doodle along the way.