|
|
Understand a function in less time
|
|
| If you are not using flowcharts, you are losing time!
|
|
|
|
Divide-and-conquer very long functions
|
|
| You can understand a 300 line function in less than 20 minutes
|
|
| With Crystal flowcharts, you save a huge amount of time.
|
|
|
|
Reduce bugs
|
|
| Why do we have bugs in our code ?
|
|
| This is because - we do not have sufficient understanding of the code.
|
|
The Graphical view increases your understanding of the code.
|
|
You can detect missed branches or incorrect conditions in your code logic
|
|
|
|
Make team discussions focused and more productive
|
|
| Trying to understand a problem or fix a bug ?
|
|
|
Place the flowchart in the middle of the group and watch the team's productivity go up.
|
|
|
|
Check for correctness, Improve the design
|
|
After coding, take another look at the code with a flowchart
|
|
| Use the graphical view to make sure you have covered all conditions
|
|
| Make sure that the logical structure of the functions is good
|
|
Reduce bugs and cut debug time!
|
|
|
|
Create quality documents
|
|
Export a flowchart to Visio or any image format.Include flowcharts as part of documentation
|
|
| Reduce software maintenance costs
|
|
|
|
|
|
|
Do you need to see the call-sequence from root to the current node?
|
|
|
A single click and you see the call-sequence. Everything else is filtered out.
|
|
|
|
Do you need to see all the possible call-sequences from root to the current function:
|
|
|
A single click and you can see all the possible call-sequences.
|
|
|
|
Understand project code
|
|
|
File-relationship trees - understand how two files interact with each other
|
|
|
Class-relationship trees - understand how two classes talk to each other
|
|
|
|
How do you find the call-hierarchy among all the functions in a given file?
|
|
|
View the File call tree. You can see the call-hierarchy among the functions in that file
|
|
|
|
|
|
|
Make a fast attack on main( ) or other high-level functions
|
|
|
You can see the control flow of main and the function-calls in main( )
|
|
|
CallFlow shows how a function's work is partitioned among the called functions
|
|
|
|
Dig deeper by expanding function-calls
|
|
|
Expand the function-calls in a CallFlow; Visit the source code of the called functions; keep going deeper
|
|
|
Export or print a CallFlow
|
|
|
|
|
|
Which functions in the tree use a particular global variable?
|
|
|
In the Call-tree, Crystal will display the name of the global variable alongside each function that uses it.
|
|
|
|
View filenames where each function is defined
|
|
|
In the tree, each node shows the function name and the filename where it is defined
|
|
|
|
See what structures/classes are used by each function in the tree
|
|
|
In the tree, each node shows the function name and the structures/classes that are used by the function
|
|
|
Also view - what members of a struct/class are used in each function
|
|
|
|
See how much stack-depth is used by each function-call
|
|
|
Avoid failures due to stack oveflow
|
|
|
|
|
|
|
View how a structure member is used by various functions !
|
|
When making code modifications, you will need to find how a structure member is used by various functions
|
|
Do you have tools to find such information efficiently?
|
|
You need DataFlow
|
|
|
You will see all the functions that use the structure member
|
|
|
You will get a graphical view of how the structure member is used
|
|
|
|
|
How an argument is used in called functions ?
|
|
When exploring code, suppose you need to track how an argument is used in called functions
|
|
Do you have tools to find such information efficiently ?
|
|
Use DataFlow
|
|
|
You will see how the argument is used in successive function calls
|
|
|
even if the parameter has a different name in the called function
|
|
|
|
|
DataFlow - the flowchart of an object
|
|
|
The DataFlow is the flowchart of an object
|
|
|
With the graphical view of the object's use, you can understand how the object is used
|
|
|
You save time
|
|
|
|
Export or print a DataFlow
|
|
|
You can document how a global variable, a #define, a structure variable or a structure member is used in the code.
|
|
|
|
|
|
|
Comprehensive documentation including flowcharts, call-trees etc.
|
|
|
For internal use or customer deliverable
|
|
|
View flowcharts in your web browser - even if you do not have Crystal FLOW
|
|
|
|
Code metrics - identify high complexity areas; improve software quality
|
|
|
Volume metrics - by lines, code-flow, declarations, and identifiers
|
|
|
Complexity metrics - McCabe?s as well as Halsteads
|
|
|
Color coded to easily view the extremes
|
|
|
|
Easy to browse, Wide coverage, reduce time spent on code reviews
|
|
|
Review code alone or in groups
|
|
|
Interactive HTML output offers quick and intuitive browsing of the code.
|
|
| Discuss designs and code-flow without actually sharing source code
|
|
|
|
|
|
|
The Code is Easy-to-Read
|
|
|
|
Your code conforms to a Software Development Standard
|
|
|
|
|
| Identify the recursive functions in a project
|
|
| Find unused functions and unused variables
|
|
| View all #if, #else, #endif etc, in the current file
|
|
| View the size of memory needed by each struct or union
|
|
| View the sequence of if, while, case, etc. that need to be true - to reach the current statement
|
|
|
|
|
|
| Revisit functions you worked on in the previous or current sessions.
|
|
| Use the file-outline to rapidly familiarize and navigate within a file
|
|
|
|
|
|
Want flowcharts of all functions to be created?
|
|
| Export flowcharts for all functions to Visio or as BMP
|
|
| Print all flowcharts in the project
|
|
|
|
Export or Print all Trees
|
|
| Export Call-trees, caller-trees, file trees, include-by trees, project trees
|
|
|
|
Print all Project Files
|
|
|
|
|
Want to run Crystal FLOW as part of an overnight run?
|
|
| Update the documentation such that it is up to date with all code modifications during the day.
|
|
| Update the software conformance report before the documentation is generated
|
|
| Export Flowcharts or Trees to desired formats
|
|
You continue to use Crystal FLOW meanwhile.
|
Get the command line add-on!
|
|
|
|
|
|
Product definition, design specification, User interaction, Software quality and performance considerations - You have a unique set of strengths...
|
|
When you complete the C/C++ task in less time, your strengths are visible.
|
|
When you take longer, you look like an average engineer.
|
|
|