Maximize the quality improvement Ada Analyzer can bring to your software
The goal of the Ada Analyzer is to support the assessment of software quality in Ada programs and the improvement of quality in the software under analysis. It accomplishes this goal by locating code segments that have suspect quality, collecting relevant information in a condensed form for review by the user, and allowing direct traversal to the actual code so that changes can be made. The Ada Analyzer training course provides students with an in-depth understanding of how to analyze Ada software and how best to use the Ada Analyzer to accomplish analysis and quality-improvement objectives.
Audience
This course is designed for the software architect or software Q/A analyst who plans more in-depth analysis of project software than simply checking for coding violations or collecting metrics. It provides a comprehensive understanding of what kinds of analysis can be performed and how to accomplish them with the Ada Analyzer.
Analysis Objectives Covered
- Software Design and Structure- Discusses analysis of an Ada program's overall structure and its content, including unit partitioning and dependencies, subsystem partitioning and dependencies, dynamic analysis, key construct location, and metrics collection. These objectives might be pursued most often when the user is unfamiliar with the code and requires an overview of its content. Maintenance projects or any effort that requires some form of reverse engineering would likely employ these techniques as well.
- Code Correctness / Defect Identification - Addresses methods for locating potential program-ming errors through both static and dynamic (interpretive) analysis techniques. Static analysis locates constructs that, merely because of their existence, pose a high risk of error. In dynamic analysis, a simple interpreter walks through the execution paths of a program and recognize problems specific to one or more combinations of code segments and branch decisions.
- Code Optimization - Describes several techniques for improving the efficiency and/or performance of Ada programs, including inlining, object references, object size, use of generics, redundancy, expensive constructs, operator selection, loop nesting, object initialization, and compiler dependencies. Software optimization is not a high-priority task for all phases of the life cycle, but every project arrives at the point where the software works but it is too slow or too big.
- Software Documentation Support - Discusses information generation capabilities that are useful as reference material or for project and customer docu-mentation. Information about Ada units and their inter-dependencies is one example of information that can be useful to all project members. Location of all key programming constructs such as tasks, generics, exceptions, and subprograms is another. Cross-referenced lists of declarations and their dependencies are a third example. Finally, counting and metrics information can be useful at the management level to estimate project-completion milestones.
- Readability, Portability, and Reuse - Discusses objectives for improving the readability, understandability, and thus maintainability of Ada software. Specific analysis objectives include: name selection; use of use clauses; program complexity; unit/subpro-gram partitioning; target-dependent constructs; host-development dependencies; and recognizing reusable units.
- Standards Conformance - Addresses the available standards-conformance libraries and the addition of new, custom checks into the library. Naming standards are also addressed.
- Test Generation Support - Focuses on identifying each possible path through a subprogram and computing the objects that are set and used along each path. This information can be used to help create unit tests for a subprogram. Coverage tests-that is, a set of tests that execute all paths in a program can also be developed from this information.
- Support for Code Reviews - Discusses the ways in which the Ada Analyzer can be used to support the code-review process. Analysis output can be used by reviewers before the review meeting to prepare their analysis and comments. Reviewers usually have not written the code that they are reviewing and thus are likely to be unfamiliar with its detail. Structural analysis can be used to locate key constructs and increase the reviewers' overall understanding of the code and its design. Other commands can be used to reduce the time required to find potential problems or areas in the code that deserve more attention. This table lists each analysis objective, the phase of the software life cycle to which it most likely applies, and the course time allotted to that objective.
Life Cycle Phase |
Design/
Structuring |
Coding/
Testing |
Optimization/
Release |
Duration |
Software Design and Structure |
X |
X |
|
1 day |
Code Correctness-Defect Identification |
|
X |
X |
1 day |
Code Optimization |
|
|
X |
1 day |
Software Documentation Support |
X |
X |
X |
1/2 day |
Readability, Portability, and Reuse |
X |
|
X |
1/2 day |
Standards Conformance |
X |
X |
X |
1/2 day |
Test Generation Support |
|
X |
|
1/2 day |
Support for Code Reviews |
X |
X |
X |
1/2 day |
Approach
Ada Analyzer Training teaches students how to improve the quality of Ada programs using automated analysis techniques and tools. All course sections are objective-oriented, focusing on the design of analysis to achieve a given objective, and how to use the Ada Analyzer to assist in that analysis.
- Customizable, two- to four-day course in analysis techniques using the Ada Analyzer.
- Customers can select from independent analysis objectives to fill desired course length.
- Real project software can be used for analysis exercises.
Materials
- A comprehensive course notebook including copies of all slides, explanatory notes and exercises.
- Hard copy of the Ada Analyzer User's Guide for use in planning an analysis approach for the local project.
products
ada analyzer/ ada repair training pdf (348K)
ada analyzer | ada type interchange generator (ATIG) | ada repair
little tree home | about little tree | technical articles | email