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) for some time now. The aim of this C Family extension is to provide improved support for C/C++ as well as introducing support for Objective-C (which the legacy analyzer does not support). The extension makes extensive use of the open source tools LLVM and Clang to analyze the source code.
The legacy C/C++ analyzer and the C Family extension will both produce differing results in terms of objects/links and Quality Rules if the two are used to analyze the same application source code.
What are the differences with the CAST AIP extension for iOS?
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.
- 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 |
---|---|---|---|
All supported releases |
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 |
---|---|
Category | |
Class Method | |
Interface | |
Interface Variable | |
Method | |
Property | |
Property Getter | |
Property Setter | |
Protocol | |
Source File |
Quality Rules
None at current time.