This page is dedicated to understanding the principles of field extension development of extensions beyond product and product road map

There are 5 types of extension development 

  1. Adding custom rules on top of existing supported AIP technologies not in the product road map.
  2. Creating supported extensions for unsupported AIP technologies not in the product road map
  3. Enhancing existing user community extensions  with new version support for technologies which are not in the product road map
  4. Developing an extension using existing OpenSource code checkers to insert new metrics in AIP
  5.  Converting old UA-based technology to full-SDK-Python

The objective of creating an extension

  • It is possible to "extend" CAST AIP with an extension to provide additional analysis and measurement capabilities both for technologies that are not supported "out-of-the-box“ and for technologies supported by CAST AIP
  • "Official" CAST AIP Extensions are provided by CAST and are downloaded and installed on top of CAST AIP to provide support for specific technologies (analysis/measurement/discovery/extraction) that are not supported "out-of-the-box" by CAST AIP

Extensions are developed using the full Python SDK

The prerequisite skills for extension development are:

  • Python programming experience, including

    • File stream object knowledge for reading and writing files

    • Collections use knowledge, for example List, directory and tuples

    • Knowledge on the file parsing concept

    • Usage of third-party libraries

    • Knowledge of database query execution

    • Usage of library xml.etree.ElementTree which is needed for parsing xml-based source code

    • Usage of lxml library which is needed for xml-based source code

    • Knowledge of writing log messages using libraries like logging..

    • Writing function

    • Debugging programs using eclipse

  • CAST AIP basic certification including
    • 1.Schema creation extension installation knowledge

    • Source code packaging

    • Adding extension in CMS related to that technology

    • Knowledge of analysis and snapshot launching

    • Enlighten knowledge

It is normally a two-day course to cover concepts, including practical work. The course Powerpoint is available at the CAST University

There are some basic concepts for the development of an Extension in AIP

  • You need to configure the CAST SDK to develop the custom extensions.
  • To develop Custom Extensions to analyse a language not already supported by CAST, you need to follow the following three-step process:
    • Define the language and objects for the language you want to analyse
    • Define how to analyse the language you want to analyse - only necessary if analyzing source code
    • Test the configuration files for completeness and then include the configuration files in a custom extension

Information on extending CAST AIP is available at Extending CAST AIP

CAST has a specific site for extensions which is located at CAST Extend

There are some examples available within CAST Extend which are SDK training samples on extending