The unavailability of comprehensive, user-friendly programming environments is one of the most imposing obstacles to the development and testing of software applications. The most critical advances needed to remove the obstacles are improved tools for program analysis, visualization, evaluation, and debugging. In this project, we use a tool, Sage++, to model control flow using an internal representation of the source code called a program tree, a form similar to an abstract syntax tree. We use the $xvcg$ tool to visualize the control flow graph. To facilitate program evaluation, the control flow graph representation is used to compute software complexity using McCabe's cyclomatic complexity measure. Since cyclomatic complexity does not include program exceptions in its consideration, we extend the complexity measure to include $C^{++}$ exceptions, since they alter flow of control and thereby affect the cyclomatic complexity of the program.