Advanced Software Automation's Hindsight Toolset

Date: Wed, 7 Dec 94 10:44:30 PST
From: tony@asa10.hindsight.com (Tony M. Cardoso)

Hindsight is a software re-engineering tool ideal for development, testing, and maintenance. Hindsight speeds software development and maintenance by analyzing existing code, then graphically representing its logic in interactive structure charts, diagrams, and reports. Hindsight also pinpoints deficiencies in existing code through test coverage, run-time performance, and complexity analyses. The following new features make Hindsight even more powerful and efficient:

Hindsight is comprised of the following three integrated modules that can also be used independently. Customize module combinations to meet your unique requirements.

ASA 20/20

View code hierarchy in an intuitive color graphic. Isolate subtrees to the lowest level. Find global and static variable occurrences and usage easily. Identify invisible segments. The graphical interface to dbx lets you point and click while debugging. Open an edit window to access and modify source code directly. The incremental language analyzer updates changes promptly. Generate complete design documentation automatically in over 25 reports, charts, and tables. View many different reports including global, local, and static variable usage, calls to and from functions, uncalled functions, and label usage.

Options in the ASA 20/20 family include:

FLOW CHARTER
Click a button and ASA 20/20 gives you a flowchart of any module on the structure chart. Access and modify the source code and see the changes instantly.
MODULE TESTER
Use the module tester to build driver and stubs and do independent unit testing. Merge the test coverage data as each unit or module is tested.
REPORT GENERATOR
Specify which source code attributes to print for technical and quality reports. Design your own table and chart formats.
MEMLIGHT
Use Memlight to detect memory errors such as: memory leaks, freeing unallocated memory, accessing freed memory, and reading/ writing beyond array bounds.

SOFTWARE QUALITY ANALYSIS (SQA)

Use over 15 quality metrics to measure attributes such as cyclomatic complexity, fan-in, fan-out, fan-out square, and function size. Define maximum and minimum guidelines for each metric and use customized metrics to ensure consistent code quality throughout entire program or project. Generate graphical, ranked listing to identify and focus on the most complex modules. Use the exception report to quickly identify functions that do not conform to your guidelines.

TEST COVERAGE ANALYSIS (TCA)

Use selective instrumentation to choose individual segments for testing. Use logical paths to design test suites to concentrate on the paths most critical to your program. Eliminate redundant test cases with test case minimization. Identify and address performance "bottlenecks". Simulate system and user-defined functions to test hard to reach areas and achieve your test coverage goal.