CodeView (Basic Edition)
Getting a handle on complexity
Integrator CodeView (Basic Edition) offers code visualization within traditional integrated development environment tools such as Eclipse, Idea and Netbeans (IDEs). CodeView works as a plug-in for your IDE and you switch back and forth with a keystroke. CodeView helps Java developers maintain and troubleshoot code faster and easier.
CodeView generates a picture of the code, which shows the flow of the program. You see the whole at once and your mind grasps it easily. The "control flow" of a stack is the order of execution of the program lines; branches and calls are hard to follow in the IDE. CodeView simplifies understanding of the main and secondary flows of the algorithms, showing all binary yes/no choices, multiple choices, cycles, branches, calls, iterations, event handlers, comments and try/catch/finally exception handlers.
You can edit the diagrams generated by Integrator to change the code and save changes. Add comments, making it easy to understand later, or for others, such as newcomers to the team or business analysts.
Download Integrator CodeView Eclipse plugin (Basic Edition)
Download Integrator CodeView Standalone
CodeView includes powerful navigation capabilities. You can expand and collapse diagrams, scroll or move a hover window over the diagram to magnify portions. Method calls are displayed as straight arrows and are navigable in both directions. Related code files not shown on the picture can be added with a button until all the algorithms needed to solve an issue are shown. Hide modules you don't need with a keystroke. Save a picture once you are satisfied.
CodeView pictures are maps of the code modules and their connections and they can get large for complex projects. A standard HD monitor will show about 60 lines of code in readable form; you have to move around to see larger pictures. Print it on large paper as a PDF and then, in Adobe, chose Poster format to display how it will lay out. The code is readable down to 70% of full size. A printout works well for pair programming. Discuss the issues and make notes on the paper, then one person makes changes at the keyboard and the other holds the map to guide the changes.
2,000 lines of code creates a picture 3 meter wide by 2 meter high. You hang it on the wall, and teams can examine it together. Like maps, details require space. The large printout is a rich resource for learning new projects and refactoring legacy code.
How do you gain insight into a particular use case, which involves many intricately connected algorithms? CodeView improves the traditional method of analyzing code line by line within the IDE, which requires hundreds of mouse clicks and keyboard shortcuts. Use search in CodeView or the IDE to locate the algorithms relevant to your issue. Now you can collaborate with others effectively; they can see the results of your work and understand the control flow of the use case.
If you can find and fix a bug in the IDE, great! Fixing complicated bugs requires tracing code through many linked algorithms, setting up a test scenario and stepping through lines of code in chains of calls in the IDE. Even then you still may not locate the cause of the problem. CodeView displays the entire call stack of algorithms so that the whole sequence of execution is seen as a running ‘spotlight’ on an unchanging big picture.
Errors in the production environment are often captured as exception stack traces scattered in application logs, log4j, etc. Just copy a stack trace from the log and paste it into CodeView. All algorithms relevant to the errors are displayed in CodeView, each stack trace is marked by an individual color and all calls are displayed as arrows. There’s no better way to see what went wrong. (add link to a nice example, open in new tab.)
Learning a new project
A typical project has thousands of lines of code over hundreds of modules. Clicking in the IDE, reading code, clicking to called modules, following branches is exhausting and you still may not understand the control flow. You can see the flow and read the code In CodeView, so the whole begins to make sense much faster. When you work in the new project, Search gets you to the relevant module and CodeView shows you the modules around it, hence your exact location in the project. The big printout is invaluable for providing context and making notes.
During code review, a printout of the code is easily read by several team members at once and shows any new code in the context of the flow. The details of the new code are easier to understand. There is no better way to discuss code and it is fun and efficient.
CodeView uses a graphical language called Drakon, a friendly and intuitive flow chart notation which is easy to grasp. Drakon is a powerful mathematically-proven language developed for the Russian space program. Their development team works on the software used to fly “Buran” - the reusable spacecraft. Drakon streamlines sharing, reviewing, discussing, fixing, enhancing and evolving algorithms by the entire project team involved in the process, including non-developers. The main features of Drakon are:
• Control flows top to bottom, which is predictable – better than the arbitrary arrangements of Western flow charts. The main flow of the algorithm is always on the left. It represents the main, most important case. In Russian, it is called ??????, literally ‘a skewer’, as if filled with kebab of operators.
• The flow appears clearly as straight lines, without any visual obstacles. In IDE view we do not see this flow at all, especially on multiple recursive if/else algorithms spanning several screens or in multiple files.
• With an “If” fork , operators on the expected path show on the left, in the main flow, and the other branch shows to the right. This is a more ergonomic view than the Java top to bottom flow of indented code. Complicated flows like chained "If" forks are clear in Drakon.
• Multiple Choices and exception handling Try/Catch statements. The flow leads into a given operator and answers the question “how did we get here during program execution?”
• For multi-threaded applications, concurrently running algorithms and thread starting points are displayed side by side, providing a better view.
Main features of CodeView
Source code can be changed directly in CodeView and the changes saved to the original file. Add comments by clicking on the operator and entering. Either natural language and code or both can be displayed. Comments are stored in the code file.
CodeView works as a plug-in for IDE’s such as Eclipse. You can toggle between CodeView and Eclipse editor with CTRL + ALT + C. Changes made in CodeView are reflected in the Eclipse editor and vice versa.
CodeView shows both Java (server side) and Java Script (client side) in the same picture. Other common programming languages are also supported; new languages are being added.
Integrator CodeView (Basic Edition) boosts productivity and promotes communication in development teams. Both developers & non-developers can analyze complicated software effectively. The big picture simplifies making changes and guarantees high quality of code. CodeView simplifies knowledge transfer to new developers on a project and promotes team collaboration. Please give it a try.