On this page:
Target audience:
Users of the extension providing support for applications written in Objective-C.
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:
- Traditional Microsoft Visual C/C++ projects will automatically be detected by the discoverers embedded in the CAST Delivery Manager Tool and there is no need to manually create an Analysis Unit in the CAST Management Studio.
- Other source code projects are not automatically detected by the CAST Delivery Manager Tool (for example non-Microsoft project types) and in this situation, you will need to create an Analysis Unit manually.
For more information about discovery, please see C - Cpp - Objective-C - Project discovery
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 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 |
---|---|
CAST AIP release | Supported |
---|---|
8.2.x | |
8.1.x | |
8.0.x | |
7.3.x |
Supported DBMS servers
This extension is compatible with the following supported DBMS servers:
CAST AIP release | CSS | Oracle | Microsoft |
---|---|---|---|
8.1.x |
Prerequisites
An installation of any compatible release of CAST AIP (see table above) |
Dependencies with other extensions
Some CAST extensions require the presence of other CAST extensions in order to function correctly. The C Family extension requires that the following other CAST extensions are also installed:
- Web services linker service (internal technical extension)
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:
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:
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++
Icon | Description |
---|---|
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
Icon | Description |
---|---|
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.