Preface The Ada Analyzer supports the software quality assessment and improvement in Ada programs. The Ada Analyzer locates code segments whose quality is in doubt, collects relevant information in a condensed form for review, and allows rapid traversal to the actual code so that changes can be made.
The Ada Analyzer can scan large amounts of Ada code, locating items of interest and summarizing information for developers, managers, quality-assurance personnel, and integration and testing personnel. The key benefits of these tools are:
- Items of interest can be located much more rapidly than with manual or text only searching methods. This is especially important when large amounts of code are involved.
- The precision of item selection is greater than with textual search methods because it is based on semantic information collected by the compiler. This precision can focus analysis on only those items relevant to the immediate analysis objective.
- Certain semantic information (dependencies and other construct relationships) is not easily obtained through other means.
The Ada Analyzer traverses any set of compiled Ada units, locates constructs that match specific selection criteria, and places relevant information about those constructs in a hypertable object. Hypertables contain both textual information about each construct located and traversal connections to the actual Ada source from which the information is derived. Users thus can scan the summary information for interesting items and then traverse to the actual software for more detailed analysis. Sorting options and additional filtering switches allow the user to organize information into the optimal analysis format.
The Ada Analyzer does not attempt to rate software with numbers or judge construct usage as good or bad. Instead, it collects overview information so that analysts can better understand the content of their software and make decisions about possible improvements. It provides insight rather than value judgment. The resulting tables can be included in documentation, printed and distributed to developers or managers for reference, or used interactively to visit software constructs for further inspection or repair.
Usage ScenariosThe Ada Analyzer can be used throughout the software development lifecycle by a variety of project personnel, each having different analysis objectives:
- Development managers can monitor the growing content of the project software at regular intervals to judge project status, predict milestone completion more accurately, and adjust resource allocation. Testing and integration requirements can be estimated based on the size and complexity of project subsystems.
- Senior designers can validate that their program structure remains consistent as development proceeds. Design guidelines to ensure consistent use of Ada constructs and naming can be validated. Use of data typing can be monitored to ensure that types are used as designed and that redundancy does not creep in with local development efforts. Critical structures such as tasking can be located and their rendezvousing relationships analyzed. Candidates for reuse or generic interfaces can be located, which aids iterative development methods.
- Developers can check their software against project-development guidelines and ensure compatibility with the target compiler and readiness for integration release. Redundant or unused constructs that occur in any aggressive development effort can be identified and eliminated before software is released for internal review. Aspects of code correctness can be checked and software speed and memory utilization can be improved in the later parts of the development cycle.
- Test and integration personnel can overview the contents of software that they may not have developed. Branching analysis and subprogram use of local and global data can assist in the development of unit- and system-level tests. When problems are isolated to a particular Ada construct or use pattern, the tools can be used to rapidly locate all instances of this pattern.
- Quality-assurance and configuration-management personnel can validate project standards and use output from the tools as a first pass to any code-review process. Various analysis tools can be packaged together to form a quality-assurance suite that can be executed before any customer release is made.
How to Use This GuideThis guide should help users take full advantage of the Ada Analyzer and its capabilities. The guide can be used in a variety of ways:
- As a tutorial to help users understand the basics of command execution, manipulation of the hypertable output, and the predefined system configuration
- As a quick reference to rapidly find which commands can best support a particular analysis objective
- As a planning guide to help map out a strategy for major analysis objectives such as restructuring or optimizing an existing program
- As an instructional guide to customize the Ada Analyzer to fit local analysis requirements
Chapter 1, "Getting Started," provides information for new users. It explains how to execute Ada Analyzer commands and describes the kinds of input parameters. It explains how to view the hypertable reports, how to traverse from the hypertable report to the actual software it references, and how to get explanatory information about hypertable entries. A discussion of how to access the online documentation, look up command descriptions, and find information associated with keywords is also included. Finally, this chapter describes how Ada Analyzer switches and file input can be configured for optimal analysis.
Chapter 2, "Quality-Improvement Objectives," describes some typical analysis objectives and how to use the Ada Analyzer to improve software quality in each major objective. Analysis scenarios are presented with detailed descriptions of possible subobjectives, the Ada Analyzer commands that support the specific analysis objective, the output that can be expected from each command, and how to interpret the output.
Chapter 3, "Command Descriptions," provides a detailed explanation of each Ada Analyzer command, including command-line descriptions, example output, and a full description of each table item and how to interpret this information. Interfaces are listed in alphabetical order for easy reference.
Chapter 4, "Customization," provides information on extending the Ada Analyzer to meet local analysis requirements. It provides step-by-step instructions on building new Locate_* commands from the base templates provided, the creation of new standards-conformance checks from templates and their integration into the Locate_Coding_Violations command, and the creation of new metrics and their integration into the Collect_Metrics command. The chapter also provides general pointers on programming with the Ada Semantic Interface Specification (ASIS) and the interfaces in the aa_utilities.ss subsystem of the Ada Analyzer.
Chapter 5, "Command Cross-Reference," provides cross-reference tables and lists that make it easier to find interfaces that locate specific Ada constructs or support a particular analysis objective. It also lists all available standards-conformance checks and supported metrics.
Rational Software Corporation
http://www.rational.com support@rational.com techpubs@rational.com Copyright © 1993-2000, Rational Software Corporation. All rights reserved. |