• Support
  • Contact
  • Blog
  • English
    • Français
    • Deutsch
    • Italiano
    • Português
    • Español
    • 简体中文
  • Tools
    • Static Analysis
      • QA-MISRA
        In-depth analysis for industrial scale C/C++ code
      • Cantata Test Architect
        Understand, define and control software architecture
      • Source Code Metrics
        Automated source code metrics for C/C++
      • Get a demo
    • Software Testing
      • Cantata
        Automated unit and integration testing for C/C++ code
      • Cantata Team Reporting
        Test status management dashboard add-on
      • AdaTEST 95
        Automated unit and integration testing for Ada code
      • Why Pay for Unit Test Tool?
  • Solutions
    • Sectors
      • Automotive
      • Energy
      • Medical Devices
      • Industrial Automation
      • Railways
      • Aerospace/Defence
      • Business Critical
      • E
      • E
      • Get a demo
    • Safety Standards
      • ISO 26262
      • IEC 60880
      • IEC 62304
      • IEC 61508
      • EN 50128 / 50657
      • DO-178C
      • MISRA
      • AUTOSAR
      • CERT
      • Why bother to unit test?
  • Academy
    • Seminars
    • Trainings
    • Webinars
    • Speakers
    • Program 2022
  • Company
    • About Us
    • Management Team
    • Partners
    • Newsletters & Press Releases
    • Events
    • Careers
    • Get a demo
  • Resources
  • Porsche
  • English
    • French
    • German
    • Italian
    • Portuguese (Portugal)
    • Spanish
    • Chinese (Simplified)
  • Tools
    • Static Analysis
      • QA-MISRA
      • Cantata Test Architect
      • Source Code Metrics
    • Software Testing
      • Cantata
      • Cantata Team Reporting
      • Adatest 95
  • Solutions
    • Sectors
      • Automotive
      • Energy
      • Medical Devices
      • Industrial Automation
      • Railways
      • Aerospace/Defence
      • Business Critical
    • Safety Standards
      • ISO 26262
      • IEC 60880
      • IEC 62304
      • IEC 61508
      • EN 50128/50657
      • DO 178
      • Automated Compliance with the MISRA guidelines for safety critical C/C++ code
      • Automated Compliance with the AUTOSAR guidelines for safety critical C/C++ code
      • Automated Compliance with the CERT C/C++ coding standards for safety critical C/C++ code
  • Academy
    • Seminars
    • Trainings
    • Webinars
    • Speakers
  • Company
    • About Us
    • Management Team
    • Partners
    • Newsletters & Press Releases
    • Events
    • Careers
  • Resources
  • Contact
  • Blog
ISA
ADATEST 95

Static Code Metrics

ISA
ADATEST 95

Static Code Metrics

QA Systems > Software testing tools for embedded software in C/C++ > Adatest 95 > Static Code Metrics

AdaTEST 95 Static Code Metrics capabilities can be used as standalone analysis, or integrated with AdaTEST 95 tests. They provide an automated objective measurement of code quality, maintainability and estimate of testing effort.

AdaTEST 95 Static Analysis makes it easier to:

  • code complexity and structure
  • Diagnose and enforce metrics
  • Generate reports and certification evidence
Play button

What do AdaTEST 95 static metrics help me do?

CODE COMPLEXITY AND STRUCTURE

AdaTEST 95 produces over 100 static code metrics, on Ada 95 syntax (Ada Language Reference Manual) and industry standard metric sets. The selection of just the metrics desired is made simple through an analysis wizard and Static Analysis Rule Sets.

These can define not only the required static code metrics, but also checks on acceptable values for each metric to be integrated with AdaTEST 95 dynamic tests.

DIAGNOSE AND ENFORCE METRICS

Metrics are generated to .CSV files, List text files and presented in the HTML Results Viewer for comprehensive diagnosis.

The AdaTEST 95 HTML Results Overview presents a history of checks on enforcing values for static metrics for trend analysis.

Enforcement of static code metrics is fully automated through checks integrated into AdaTEST 95 test scripts, keeping dynamic and static testing completely synchronised.

AdaTEST 95 Static metrics are generated for all instrumented procedures, functions, protected subprograms/entries and tasks that have been executed. In addition, Metrics for package specifications and package bodies, in addition to procedure, function, and task bodies, are available for inspection in a list text file.

GENERATE REPORTS

In addition to the powerful diagnostics of code coverage results in the HTML Results Viewer and Overview, AdaTEST 95 generates safety standards certification ready ASCII text reports of compliance with coverage requirements.

Reports and certification evidence embed the integrated checks on the achievement of the required code coverage and static metric targets.

How does AdaTEST 95 static analysis work?

AdaTEST 95 uses instrumentation on a copy of the source code, and static metrics data is recorded in both CSV and HTML files for diagnosis, and certification ready ASCII text list files and AdaTEST dynamic test results files evidence.

Static analysis can be used integrated with AdaTEST 95 tests to check metric values within an acceptable range, and perform Control Flow and Data Flow analysis with path labels and dynamic assertions.

Analysis is made simpler by coverage Rule Sets, which automate all the code instrumentation, data reporting and required metric checking.

Which code metrics does AdaTEST 95 provide?

AdaTEST 95 generates over 100 metrics on Ada 95 code syntax as defined in the Ada 95 Reference Manual Annex P.

Static metrics are divided into three groups:

  • Static metrics are divided into three groups:
  • calculated metrics
  • informational metrics

Counted and calculated metrics are presented as floating point values, informational metrics are presented as string values.

The full set of AdaTEST 95 static code metrics is listed below:

In addition to counts of Ada 95 syntax, the following industry standard metric sets are provided:

  • McCabe’s Cyclomatic Complexity Measure
  • Myers’ extension to McCabe’s measure
  • Essential McCabe
  • Halstead’s Software Science
  • Hansen’s measure of Program Complexity by the Pair

ABORT_STATEMENTS

ACCEPT_STATEMENTS

ACCESS_ATTRIBUTES

ACCESS_DISCRIMINANTS

ACCESS_TO_SUBPROGRAM_TYPES

ADA_CODE_LINES

ALIASED_OBJECT_DECLARATIONS

ALLOCATORS

ASSIGNMENT_STATEMENTS

ASYNCHRONOUS_SELECTS

BINARY_ADDING_OPERATORS

BLANK_LINES

BLOCK_DECLARATIVE_PARTS

BLOCK_STATEMENTS

BODY_STUBS

CASE_ALTERNATIVES

CASE_STATEMENTS

CLASS_WIDE_TYPES

CODE_STATEMENTS

COMMENT_LINES

COMMENTS

COMPILATION_UNITS

CONDITIONAL_ENTRY_CALLS

CONTROLLED_TYPES

DATA_ASSERTIONS

DECLARATIVE_STATEMENTS

DELAY_STATEMENTS

DERIVED_TYPE_DEFINITIONS

DYNAMIC_ASSERTIONS

FILE_CHECKSUM

FOR_LOOPS

GENERAL_ACCESS_TYPES

GENERIC_DECLARATIONS

GENERIC_INSTANTIATIONS

GENERIC_SPECIFICATIONS

GOTO_STATEMENTS

HALSTEAD_DIFFICULTY

HALSTEAD_EST_LEVEL_ABSTRACTION

HALSTEAD_ESTIMATED_ERRORS

HALSTEAD_EXPECTED_LENGTH

HALSTEAD_INTELLIGENCE_CONTENT

HALSTEAD_LANGUAGE_LEVEL

HALSTEAD_LENGTH

HALSTEAD_LEVEL_OF_ABSTRACTION

HALSTEAD_NUM_UNIQUE_OPERANDS

HALSTEAD_NUM_UNIQUE_OPERATORS

HALSTEAD_POTENTIAL_VOLUME

HALSTEAD_PROGRAM_EFFORT

HALSTEAD_PURITY_RATIO

HALSTEAD_TIME_ESTIMATE

HALSTEAD_TOTAL_NUM_OPERANDS

HALSTEAD_TOTAL_NUM_OPERATORS

HALSTEAD_VOCABULARY

HALSTEAD_VOLUME

HANSEN_CYCLOMATIC_NUM

HANSEN_OPERATOR_COUNT

HIGHEST_PRECEDENCE_OPERATORS

IF_STATEMENTS

IGNORE_ON_SWITCHES

INNER_USE_PACKAGE_CLAUSES

LINES_IN_SOURCE_FILE

LOGICAL_OPERATORS

LOOP_STATEMENTS

MAXIMUM_STATEMENT_NESTING

MCCABE

MEMBERSHIP_TESTS

MULTIPLYING_OPERATORS

MYERS_MCCABE_LOWER

MYERS_MCCABE_UPPER

OVERLOAD_COUNT

PACKAGE_BODIES

PACKAGE_SPECIFICATIONS

PARAMETERS

PRAGMAS

PROCEDURE_ENTRY_CALL_STMTS

PROTECTED_ENTRY_BODIES

PROTECTED_OBJECT_DEFINITIONS

PROTECTED_TYPE_DEFINITIONS

RAISE_STATEMENTS

RELATIONAL_OPERATORS

REPRESENTATION_CLAUSES

REQUEUE_STATEMENTS

REQUEUE_WITH_ABORTS

RETURN_STATEMENTS

SELECT_STATEMENTS

SELECTIVE_WAIT_ALTERNATIVES

SELECTIVE_WAITS

SHORT_CIRCUIT_CONTROL_FORMS

SUBPROGRAM_BODIES

SUBPROGRAM_SPECIFICATIONS

SUBUNITS

TAGGED_TYPES

TERMINATES

TEST_CODE_STMTS

TIMED_ENTRY_CALLS

TOTAL_LINES

TOTAL_UNITS_IN_SOURCE_FILE

TYPE_EXTENSIONS

UNARY_ADDING_OPERATORS

UNCHECKED_ACCESSES

UNCHECKED_CONVERSIONS

UNCHECKED_DEALLOCATIONS

UNPROCESSED_BEXES

UNREACHABLE_CODE

USE_PACKAGE_CLAUSES

USE_TYPE_CLAUSES

USER_STRING (user defined)

WHILE_LOOPS

WITH_CLAUSES

XOR_OPERATORS

BACK TO ADATEST 95

QA Systems GmbH
Roggenstrasse 11
71334 Waiblingen | Germany

© 2022 QA SYSTEMS GMBH

The product names Cantata and QA-MISRA are registered trademarks of QA Systems GmbH.

“MISRA” and “MISRA C” are registered trademarks owned by MISRA Consortium Limited.
QA-MISRA is an independent tool of QA Systems and is not associated with the MISRA Consortium Limited.

Phone: +49 (0)711 138183 -0
Fax: +49 (0)711 138183 -10
E-Mail: [email protected]

  • Imprint
  • Privacy Policy
  • Contact
  • Resources

Newsletter

Get the latest technology news updates, product releases plus tips and tricks:

subscribe to newsletter
  • Follow
  • Follow

Newsletter

Get the latest technology news updates, product releases plus tips and tricks:

subscribe to newsletter
  • Follow
  • Follow

Phone: +49 (0)711 138183 -0
Fax: +49 (0)711 138183 -10
[email protected]

  • Imprint
  • Privacy Policy
  • Contact
  • Resources

QA Systems GmbH
Roggenstrasse 11
71334 Waiblingen Stuttgart | Germany

© 2021 QA SYSTEMS GMBH

Start
Trial
×

Login

Forgot your password?

Or

 

Create an Account

Sign up for access to premium content
Register for full access to our extensive resources library.
  • This field is for validation purposes and should be left unchanged.

×

Static Code Metrics

Academy Registration Form

  • Contact details attendee

  • QA Systems arranges a block booking of rooms for seminar participants at the respective hotels, usually with special rates. The participants are responsible for their own reservation, payment, etc. If you wish to receive the hotel information, please tick:
  • This field is for validation purposes and should be left unchanged.

This site uses cookies to help improve your experience

Please follow this link to find out more about cookies.
Accept
Change Settings
Cookie Box Settings
Cookie Box Settings

Privacy settings

Decide which cookies you want to allow. You can change these settings at any time. However, this can result in some functions no longer being available. For information on deleting the cookies, please consult your browser’s help function. Learn more about the cookies we use.

With the slider, you can enable or disable different types of cookies:

  • Block all
  • Essential
  • Functionality
  • Analytics
  • Advertising

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected

This website won't:

  • Remember your login details
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country

This website won't:

  • Remember your login details
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settingsl Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions

This website won't:

  • Remember your login details
  • Advertising: Use information for tailored advertising with third parties
  • Advertising: Allow you to connect to social sites
  • Advertising: Identify device you are using
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settingsl Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Use information for tailored advertising with third parties
  • Advertising: Allow you to connect to social sitesl Advertising: Identify device you are using
  • Advertising: Gather personally identifiable information such as name and location

This website won't:

  • Remember your login details
Save & Close