 |
Understand code in less
time with Crystal C/C++
View
Demo |
|
| |
|
|
| |
|
|
Why Crystal FLOW
|
|
Home
Products
Crystal
FLOW
Why Crystal FLOW |
Try Now
|
| |
|
| With Crystal FLOW : |
|
|
 |
You can save more than 1 hour everyday
|
|
|
 |
You can achieve better software quality
|
|
|
 |
Your software documentation will have better quality and content
|
|
|
 |
Your software maintenance will be easier and cost less |
|
|
|
|
Crystal FLOW is a highly productive environment for understanding, browsing and documenting code.
|
|
|
It integrates several tools such as Flowcharts, Rich Trees, DataFlow, CallFlow, Data-Dependency tree, Full HTML
documentation... all in one package. |
|
|
| You can reach for the right tool when you need it. You can perform the task better and in less time.
|
|
|
| When you need to find how a particular variable is used in the project, view its DataFlow.
|
|
|
|
DataFlow combines the power of GREP, Flowcharts and information filtering into one efficient tool. |
|
|
|
It can track data objects even when they are passed as parameters and have different names in the called functions.
|
|
|
| When you need to understand a function, view its flowchart.
|
|
|
|
The flowchart is a major time-saver. For example, when a large function contains nested if's and else's, you can visualize them clearly. It is very helpful in planning code-modifications. |
|
|
| Need to find all the recursive functions in the project?
|
|
|
|
View the Browse Window. |
|
|
|
| If you lose time every day, can you be competitive in the global market place? |
|
| Making design changes? Inherited legacy code? Performing a code review? Generating documentation? You need Crystal FLOW. |
|
|
|
|
|
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.
|
|
|
|
|
|