Produce graphical views and reports of your applications' structure

The CAST e-Analyzer development tool analyzes an application's structure in terms of relationships and dependencies. After reading a traditional or Web-based application's SQL Server database metadata, Visual Basic (VB) source code, and Active Server Pages (ASP) source code, e-Analyzer stores the information in its own SQL Server database. You can then create graphical views and generate print and HTML reports that show how the parts fit together. The product works with SQL Server 7.0, VB 6.0, and ASP 3.0; I tested e-Analyzer 3.8 beta 2.

CAST e-Analyzer consists of several applications. You use the Server Side Install applet to install the client software and to install the e-Analyzer database in a SQL Server system connected to the client by OBDC. You need to configure an ODBC Data Source Name (DSN) to run this applet. The Server Side Install applet creates a database called CWMM on the SQL Server system to hold application information that the tool generates during its analysis process.

You use e-Analyzer's AppWarehouse application for administrative functions such as setting up users, groups, and projects and copying and moving objects. AppWarehouse also analyzes and synchronizes database and application code and generates HTML reports.

The tool's Application Viewer lets you create graphical views and subviews of an application. You can select the database objects, application components, and object and component types you want to include in different views of dependencies and in impact analyses of application changes. Application Viewer also lets you save views and subviews, which are more detailed views that let you focus on a subset of application components. You can then use e-Analyzer's SQL Builder application to generate reports based on these views and subviews. SQL Builder is an editor, debugging tool, object browser, query assistant, and reference finder and contains templates and other tools for working with SQL Server objects. You can also use the CWMM database to produce tabular reports about saved Application Viewer views. In addition, e-Analyzer includes a Release Builder application for managing releases of Oracle Server elements and an evaluation guide with online documentation.

To put e-Analyzer through its paces, I used a real-world application that was in the final development stages. The application was relatively simple; it used a database with 73 tables and 110 stored procedures, one VB component with about 50 methods, and about 200 ASP pages. I followed the recommendation of CAST technical representatives and had e-Analyzer analyze the database, then the VB code, and finally the ASP code. Using the AppWarehouse application, I connected to the database I wanted to analyze and ran the T-SQL Analyzer, an AppWarehouse feature that analyzes an application's T-SQL code; this analysis took fewer than 5 minutes to complete. I then pointed AppWarehouse's VB Analyzer to the VB project file (.vbp) that held the source code I wanted to analyze; this analysis took less than a minute. Next, I directed e-Analyzer against the ASP files; the ASP analysis took about 8 minutes. Last, I saved the links that e-Analyzer detected between code modules within the application; this took about 9 minutes.

With the analysis process complete, I turned to the Application Viewer to create graphical views of the application. From the File menu, I chose New Log/Phys View, which brought up the New view description dialog box. This dialog box lets you select objects and object types to add to the view. From the dialog box's Server tab, I selected the Show procedures check box, and in the Object list pane, I selected a procedure called CommitRoute. When I clicked Create view, the Application Viewer showed a diagram that contained only the CommitRoute stored procedure. I wanted to see the call dependencies for this stored procedure, so I right-clicked the stored procedure and selected Add Linked Objects.

Figure 1, page 78, shows the resulting Selection dialog box, which lets you select the objects and types of data modification statements to include in the view. Under SQL Object, I selected the Table check box, and under 4GL Objects, I selected the Visual Basic and Web Object check boxes. The dialog box's right pane listed the database tables that CommitRoute accesses and the application components that access CommitRoute. To create this view, I clicked Ok, which brought up the view that Figure 2 shows.

In this view, the CommitRoute stored procedure references the Cable table and is called by the WayPoint class's WayPoint.RunXML function. Notice that these VB components have links to the Cable table and to the CommitRoute stored procedure. If you right-click any of the view's objects or links, you can see their properties and access more information. You can also enter status, business function, and comments to document this part of the application's functionality. You can then save this view through the File, Save menu.

The Application Viewer's Impact Analysis tool gives you an alternative way to look at an application's components. I added the CommitRoute stored procedure to the view from File, New Log/Phys View; selected the procedure; then selected Impact Analysis from the Impact Analysis menu. In the hierarchical view of links that Figure 3 shows in part, CommitRoute references objects shown below it (the Cable table) and is referenced by objects above it (the WayPoint class and WayPoint.RunXML function). The first level above CommitRoute shows objects that a change in the stored procedure will affect. You would also have to consider the links to objects above WayPoint and WayPoint.RunXML when you change the CommitRoute stored procedure. Eight layers exist above the objects that Figure 3 shows.

The AppWarehouse application contains more than 25 prebuilt queries that produce HTML reports from the CWMM database. The SQL Builder application lets you build more queries for reporting, which it adds to the prebuilt queries in the AppWarehouse application. You can also run the CWMM database's stored procedures with the name of the saved view you're interested in to produce printed tabular reports. But, I'd like to see a graphical report builder for e-Analyzer that allows drag-and-drop report building and print formatting. A more graphical and flexible report-generation tool would produce a better variety of printed reports from the rich information the analysis process captures.

CAST e-Analyzer can be a valuable addition to a development shop's toolbox because it helps developers understand and document the inner workings of an application and understand the impact of proposed changes. CAST says that it will price and license e-Analyzer based on the number of application components and database objects in the applications you'll be analyzing; projected prices range from $20,000 to $200,000.

CAST e-Analyzer did an impressive job of analyzing my application. I saw nothing extraneous or inaccurate in the tool's graphical views or in its reports. Like other diagramming tools, e-Analyzer is most useful for analyzing narrowly defined pieces of an application. No diagramming tool is practical for presenting a complete picture of a complicated application; a full view of such an application is so crowded with crossing lines and overlapping objects that you can't make sense of it. Only by focusing on a few objects was I able to produce the reasonable views of links and impact analysis shown in Figure 2 and Figure 3.

CAST e-Analyzer 3.8 beta 2
Contact: CAST * 415-296-1300
http://www.castsoftware.com
Price: $20,000 to $200,000, depending on installation
Decision Summary
Pros: Easy installation; straightforward tools to read source code; efficiently finds dependencies and call trees; shows objects and components that application changes affect
Cons: Graphical views are difficult to work with if you select too many objects and object types; requires use of included SQL Builder to produce reports; HTML reporting could be more robust