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

Note that the C Family extension has been renamed as the Objective-C Analyzer extension.

Summary: This document provides information about the extension supporting applications written in Objective-C.

Description

This extension provides support for applications written in Objective-C.

In what situation should you install this extension?

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

How does the CAST Delivery Manager Tool deal with discovering source code?

The C Family extension does not contain any CAST Delivery Manager Tool Discoverers of its own, therefore:

What are the differences with the legacy C/C++ analyzer?

CAST AIP has provided support for analyzing C/C++ source code via its C/C++ Analyzer (provided out of box in CAST AIP and as an extension (see C and Cpp Analyzer) for some time now. The aim of this C Family extension is to provide support for Objective-C (which the C/C++ Analyzer does not support). The C Family extension makes extensive use of the open source tools LLVM and Clang to analyze the source code.

What are the differences with the CAST AIP extension for iOS?

The CAST AIP extension for iOS also supports Objective-C (by re-using the C Family extension), however, the iOS extension has built in support for discovering (in the CAST Delivery Manager Tool) XCode projects that are primarily used to build Mobile applications for the iOS Operating System. Therefore, if your project is an XCode project, you should use the iOS extension instead to take advantage of the built in discovery feature.

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)
Quality and Sizing
(tick)(error)

CAST AIP compatibility

This extension is compatible with:

CAST AIP release
Supported
8.2.x(tick)
8.1.x(tick)
8.0.x(error)
7.3.x(error)

Supported DBMS servers

This extension is compatible with the following supported DBMS servers:

CAST AIP releaseCSSOracleMicrosoft
8.1.x(tick)(tick)(tick)

Prerequisites

(tick)An installation of any compatible release of CAST AIP (see table above)

Dependencies with other extensions

  • Web services linker service (internal technical extension)
Note that when using the CAST Extension Downloader to download the extension and the Manage Extensions interface in CAST Server Manager to install the extension, any dependent extensions are automatically downloaded and installed for you. You do not need to do anything.

Download and installation instructions

Please see: 

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

Packaging, delivering and analyzing your source code

Once the extension is installed, no further configuration changes are required before you can package your source code and run an analysis. The process of packaging, delivering and analyzing your source code is as follows:

Packaging and delivery

Using the CAST Delivery Manager Tool:

  • create a new Version
  • create a new Package for your C Family source code using the Files on your file system option:

  • Define the root folder of your Application source code:

  • Run the Package action: depending on this type of project you are packaging, the CAST Delivery Manager Tool will either discover a project or not:
Microsoft Visual C/C++ project - project discovered
Non-Microsoft project - no project discovered
  • Deliver the Version

Configuring the source code in the CAST Management Studio

Using the CAST Management Studio in the Application editor:

  • Accept and deploy the Version in the CAST Management Studio. Depending on the type of project that has been packaged, Analysis Units will have been created automatically or not:

Microsoft Visual C/C++ project

If your source code contains Microsoft Visual C/C++ projects, then an Analysis Unit will have been automatically created in the Current Version tab for each project discovered by the CAST Delivery Manager Tool:

  • You now need to change the analyzer engine to the new Clang based analyzer.
  • Open each Analysis Unit created automatically and move to the Analysis tab.
  • Change the Analyzer to invoke option to the Clang-based analyzer option as shown below:

Note that it is possible to change this option at Application level, however, this will change the option for all C/C++/Objective-C  Analysis Units, which may not be appropriate.

Non-Microsoft project

If your source code contains Non-Microsoft Visual projects, then no Analysis Units will have been automatically created in the Current Version tab - this is the expected behaviour:

  • You will now need to create an Analysis Unit for each of your projects. In the Current Version tab, add a new Analysis Unit selecting the Add new C/C++/Objective-C Analysis Unit option:

  • Edit the new Analysis Unit and configure in the Source Settings tab:
    • a name for the Analysis Unit
    • define the location of the deployed project source code (the CAST Management Studio will locate this automatically in the Deployment folder):

  • You now need to change the analyzer engine to the new Clang based analyzer.
  • Move to the Analysis tab.
  • Change the Analyzer to invoke option to the Clang-based analyzer option as shown below:

Note that it is possible to change this option at Application level, however, this will change the option for all C/C++/Objective-C  Analysis Units, which may not be appropriate.

Analysis/snapshot generation

  • Run a test analysis on the Analysis Units
  • Make sure you have manually run the Import Assessment Models option.
  • Generate a new snapshot.

What results can you expect?

Once the analysis/snapshot generation has completed, you can view the results in the normal manner:

CAST Enlighten

CAST Management Studio analysis content

Objects

The following objects are displayed in CAST Enlighten:

C/C++

IconDescription
Constructor
Class
Class Folder
Destructor
Directory
Enum
Enum Item
Free Function
Global Variable
Macro
Member Function
Member Variable
Namespace
Parameter
Root Directory
Source File
Template Class
Template Class Instance
Template Constructor
Template Constructor Instance
Template Free Function
Template Free Function Instance
Template Member Function
Template Member Function Instance
Template Parameter
Template Union
Template Union Instance
Typedef
Union
Additional File

Objective-C

IconDescription
Action
Category
Class Method
Delete Resource Service
Get Resource Service
Interface
Interface Variable
Method
Outlet
Post Resource Service
Project
Property
Property Getter
Property Setter
Protocol
Put Resource Service
Source File
Story Board File
UI Button
UI Control
UI Text Field
Workspace
Xib Files

Quality Rules

None at current time.