Examining a Function's Control FlowA full spectrum of displays in Imagix 4D supports software visualization and analysis of C, C++ and Java source code. The highest, most abstract views, providing the best overall system-level understanding of the software, are the Subsystem Architecture diagrams. From there, a range of additional displays reduce scope and add detail, until the other extreme is reached with Flow Charts. The scope of each flow chart is narrowed to a single function, while the internal program logic and control flow of that function is presented in maximum detail. There are a number of tasks where this detail is important. A software developer creating a function can use a flow chart to review the structure of his code, making sure that what he wrote matches the structure he had in mind. Code review team members can use the flow charts to methodically walk through the logic of what has been implemented. For test and QA engineers, the flow charts provide a basis for creating and checking the coverage of white box test cases. And software engineers inheriting the code can use the flow charts to get up to speed on the logic and structure of complex functions, before starting to refactor or otherwise maintain the software.
Imagix 4D's flow charts offer a series of alternate layouts. Each is optimized to show a different aspect of the program logic and control structure of a function. And within each alternative, a number of options further control the detail displayed. For the purpose of comparison, the following descriptions each display the same function. The default is the Logic layout. The control flow is from top to bottom. Beyond that, the layout is optimized for understanding and tracing the program logic, rather than emphasizing the details of the control statements making up the decision structure.