Waldo.Model.Tools icon indicating copy to clipboard operation
Waldo.Model.Tools copied to clipboard

Documentation / CFG of procedures

Open mmenninghaus opened this issue 6 years ago • 2 comments

Really a great idea and a great tool. Is there any documentation available yet? Is the control flow graph (CFG) of the procedures build up inside the model? It would be a great enhancement for the calculation of some other cfg related metrics.

mmenninghaus avatar Feb 22 '19 06:02 mmenninghaus

Hi @mmenninghaus ,

can you please explaing a bit further what you mean - or point me to any resources? I'm not that into the "code analysis terminology".. .

waldo1001 avatar Feb 28 '19 14:02 waldo1001

Hi Waldo,

by now, if I understand your tool correctly, we are able to determine which procedure uses other procedures and is used by other procedures. But every procedure is, from the perspective of the model, a black box. Thus, we cannot determine how the control flow (https://en.wikipedia.org/wiki/Control-flow_graph) inside a procedure works. Nonetheless you provide the cyclomatic complexity, which requires the control flow graph to be computed (https://en.wikipedia.org/wiki/Cyclomatic_complexity). In order to answer questions like

  • Which are the most frequent paths inside a procedure?
  • Which parts of the code can be outsourced to other procedures?
  • Are there ways to simplify the code, i.e. optimizing the control flow?

the CFG is essential. Without the CFG the tool is usefull, but with it could be enhanced to a very effective code optimzation tool. Imagine a tool which analysis the code and optimizes its structure not only in terms of readability but for a better performance. Or a tool which automatically generates full covering unit tests for the given procedures.

Best

Mathias

mmenninghaus avatar Mar 04 '19 08:03 mmenninghaus