Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation / CFG of procedures #1

Open
mmenninghaus opened this issue Feb 22, 2019 · 2 comments
Open

Documentation / CFG of procedures #1

mmenninghaus opened this issue Feb 22, 2019 · 2 comments

Comments

@mmenninghaus
Copy link

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.

@waldo1001
Copy link
Owner

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".. .

@mmenninghaus
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants