I have a couple of very long procs in Oracle 2000+ lines with lots of calls. And I'd like to generate program flow Diagram (algorithm) for better understanding of the process for further refactoring.
It's not the code I wrote so I don't know the logic enough.
What would you advise to do in this case? I tried to draw a text-like flow but it takes lots of time and still hard to cover all the logic for understanding.
The best approach I see would be flow chart generated from SQL proc with links to "jump" between code and chart.
UPDATE: Found couple of software doing the same:
ClearSQL - makes CRUD diagrams, call map, and flow chart.
Quest SQL Navigator Expert (using it now): it has Outline (makes code flow with ability to collapse-expand blocks of code - really cool one!), Code Explorer (enumerates all func, params with links ti SQL text - just in interface) features
There is a product, Code Visual to Flowchart, which can take code in various languages and do something like what you're describing. Unfortunately though Oracle doesn't appear to be in the list of supported languages, but Microsoft TSQL is; maybe you could at least translate your proc from Oracle into MS and use this to roughly visualize your proc's flow.
Failing that burnall's suggestion sounds like the best way to go, essentially divide and conquer.
I doubt that such tool, even if it exists could help better understanding. I think, time of big flow-charts is over.
I would advice to understand logic with step-by-step refactoring:
iteratively extract parts of procedure to smaller procedures and add tests.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With