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 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.

Note that while this extension does provide some support for C/C++, official support for C/C++ is provided by the C and Cpp Analyzer embedded in CAST AIP and available as an extension.

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

The CAST AIP extension for iOS - Objective-C also supports Objective-C, 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 - Objective-C 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)(tick)

CAST AIP compatibility

This extension is compatible with:

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

Supported DBMS servers

This extension is compatible with the following supported DBMS servers:

CAST AIP releaseCSSOracleMicrosoft
All supported releases(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:

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 Objective C 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. For non-iOS projects, no project will be 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:

*

  • If your source code contains Non-iOS 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 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
Category
Class Method
Interface
Interface Variable
Method
Property
Property Getter
Property Setter
Protocol
Source File

Rules

Please find the rules here: https://technologies.castsoftware.com/rules?rlH=AIP/extensions/com.castsoftware.cfamily/versions/1.4.0-alpha1/quality-rules

Known limitations

  • Function only known as declaration will be considered as external: some quality rules will not be applied in some very rare cases.