This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.


Summary: This document provides information about the extension providing Flex support.

What's new?

Please see Flex 1.0 - What's new for more information.

Description

This extension provides support for applications written using Flex languages.

Although this extension is officially supported by CAST, please note that it has been developed within the technical constraints of the CAST Universal Analyzer technology and to some extent adapted to meet specific customer needs. Therefore the extension may not address all of the coding techniques and patterns that exist for the target technology and may not produce the same level of analysis and precision regarding e.g. quality measurement and/or function point counts that are typically produced by other CAST AIP analyzers.

In what situation should you install this extension?

If your application contains source code written using Flex and you want to view these object types and their links with other objects, then you should install this extension.

Supported Flex versions

This version of the extension provides support for:

VersionSupported

Flex 3.x

(tick)

Function Point, Quality and Sizing support

This extension provides the following support:

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points
(transactions)
(error)
Quality and Sizing(tick)

CAST AIP compatibility

This extension is compatible with:

CAST AIP release

Extension release

Supported

8.3.x

≥ 1.0.1(tick)
8.2.x≥ 1.0.1(tick)
8.1.x≥ 1.0.1(tick)
8.0.x≥ 1.0.1(tick)
7.3.x≥ 1.0.1(tick)

Supported DBMS servers

This extension is compatible with the following DBMS servers:

DBMSSupported
CSS(tick)
Oracle(tick)
Microsoft SQL Server(error)

Prerequisites

(tick)An installation of any compatible release of CAST AIP (see table above)
(tick)
  • The extension requires a Java JRE to be installed on the machine: only Java JRE 1.7 is currently supported.
  • The extension requires that a JAVA_HOME system environment variable is also present on the machine, pointing to the Java JRE installation folder:

Licence Agreements

Metrics/Rule data are generated using an external tool provided by Adobe (FlexPMD). More information about this tool is available here:

The licence agreement for Adobe FlexPMD tool is available here:

and is detailed below:

FlexPMD License: BSD

Copyright (c) 2009, Adobe Systems, Incorporated. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Adobe Systems, Incorporated. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Download and installation instructions

Please see:

The latest release status of this extension can be seen when downloading it from the CAST Extend server.

CAST Transaction Configuration Center (TCC) configuration

A set of Flex Entry Points for use in the CAST Transaction Configuration Center is delivered in the extension via a .TCCSetup file. 

  • with CAST AIP ≥ 8.3.x, there is nothing for you to do: these entry points will be automatically imported during the extension installation and will be available in the CAST Transaction Configuration Center.
  • with CAST AIP ≤ 8.2.x, you can manually import the file %PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.flex.<version>\Configuration\TCC\Base_Flex.TCCSetup to obtain your configuration (see instructions below).

Manual import action for CAST AIP ≤ 8.2.x

Click here to expand...
  • Locate the .TCCSetup file in the extension folder: %PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.flex.<version>\Configuration\TCC\Base_Flex.TCCSetup

  • In the CAST Transaction Configuration Center, ensure you have selected the Templates node:

  • This .TCCSetup file is to be imported into the CAST Transaction Calibration Center using either the:

    • File > Import Configuration menu option:

    • Or right clicking on the Template node and selecting Import Configuration:

  • The import of the "Base_Flex.TCCSetup" file will provide you with a sample Transaction Entry points
  • Now right click the "Standard Entry Point" item and select copy:

  • Paste the item into the equivalent node under the Application, for example, below we have copied it into the Application MEUDON:

  • Repeat for any additional items or generic sets that have been imported from the .TCCSetup file.

Prepare and deliver the source code

Once the extension is downloaded and installed, you can now package your source code and run an analysis. The process of preparing and delivering your source code is described below:

Source code preparation

Only files with following extensions will be analyzed:

  • * .as
  • *.mxml 

Source code preprocessing

Flex source code needs to be preprocessed so that CAST can understand it and analyze it correctly. In previous releases of the extension, this preprocessing was a manual action that needed to be completed before the code was analyzed. However, in this release and all future releases, the code preprocessing is actioned automatically when an analysis is launched or a snapshot is generated (the code is preprocessed before the analysis starts). In other words you only need to package, deliver and launch an analysis/generate a snapshot for the preprocessing to be completed.

Note that the CAST Management Studio will use the LISA folder to analyze the preprocessed files (see CAST Management Studio help for more information about this folder).

Deliver the source code

Using the CAST Delivery Manager Tool:

  • create a new Version
  • create a new Package for your source code using the Files on your file system option and choose the location of your source code:

Click to enlarge

  • Run the Package action.
  • Before delivering the source code, check the packaging results.

Analysis configuration and execution

Refer to Analysis Configuration and Execution for more information.

Logging mechanism

Analysis log files

Analysis logs are stored in the default locations used by the CAST Management Studio.

Flex Preprocessor

Flex Preprocessor log files (the preprocessor is launched automatically during an analysis) are stored in the following locations:

CAST AIP releaseLocationLog file name
8.2.x

%PROGRAMDATA%\CAST\CAST\Extensions\<extension_name>\Configuration\Languages\Flex\prepro

Note that the above location is the default, however, if you have modified the CAST_PLUGINS_ROOT_PATH variable in the CastGlobalSettings.ini file, this location may be different.
com.castsoftware.flex.<extension_major_version.extension_minor_version.extension_maintenance_version>.prepro_<YYYYMMDDHHMMSS>.log
8.3.xDefault location is set to C:\castms\log\<unique_application_id>\, but this location can be configured at will in the CAST Management Studio "Preferences".

FlexPMD

FlexPMD log files (FlexPMD is launched automatically during an analysis) are stored in the following locations:

CAST AIP releaseLocationLog file name
8.2.x

%PROGRAMDATA%\CAST\CAST\Extensions\<extension_name>\Configuration\Languages\Flex\plugin

 
Note that the above location is the default, however, if you have modified the CAST_PLUGINS_ROOT_PATH variable in the CastGlobalSettings.ini file, this location may be different.
com.castsoftware.flex.<extension_major_version>.<extension_minor_version>.<extension_maintenance_version>.plugin_YYYYMMDD.log
8.3.xDefault location is set to C:\castms\log\<unique_application_id>\, but this location can be configured at will in the CAST Management Studio Preferences.

Errors & Warnings

The Flex configuration included in the extension uses external plugins. During the analysis, the Universal Analyzer or the plugin may throw errors or warnings. The table below list the most significant errors/warnings and lists a suggested remediation action:

ToolError or WarningAction
Flex PluginUA Plugin : No property (......) found in meta model for Flex...No action required. The analyzer is telling you that not all the properties are considered to be injected into the Analysis Service.

What results can you expect?

Objects

IconMetamodel description

FLEX class

FLEX Field

FLEX Package

FLEX Script

FLEX Function, FLEX Getter, FLEX Setter

FLEX Variable

Structural rules

The following structural rules are provided:

You can also find a global list here:

https://technologies.castsoftware.com/rules?sec=t_1007000&ref=||

Limitations

Links between Flex functions

Links between Flex Functions are not supported and will not be detected during an analysis.

Dynamic links which require dataflow/interpretation of parameters across multiple artifacts

Because of way the Universal Analyzer (analysis engine used by the Flex extension)functions, dynamic links which require dataflow/interpretation of parameters across multiple artifacts are not supported. If links are required for these situations, a custom reference pattern can be created to manually create the links (see CMS - Dependencies - using Reference Patterns for more information).