Tool Version
Tool Name: Understand
Tool Version and ID: Version 6.3.1136
Tool Description
Understand is a static code analysis tool that assists with editing, refactoring, and analyzing code. This tool can be used to assist with the development of safety critical automotive systems as defined in ISO 26262:2018.
Certified Pre-Qualification
Understand is in the process of qualifying for ISO 26262 certification. A list of use cases that will be certified can be found in section 7. Understand will be certified for safe use with the following languages:
C
C++
Understand will be certified for safe use with the following Operating Systems:
Windows 10 and 11
Linux 64bit (CentOS & RHEL 8.4, Ubuntu 20.04, and later)
NOTE: Update your OS to the latest version for the safest experience
Other applicable User Documentation
The Understand User Guide can be found within the Understand Software by selecting Help > Help Content from the main Toolbar.
Additional user resources including videos, build notes, known issues, and the installation guide can be found at support.scitools.com.
For use in a safety context make sure to follow the section of the Help Content titled “Configure your Project”. Proper project configuration is essential for accurate analysis.
Tool usage and flow in typical design environments
6.1 Operating Configuration
A valid license must first be obtained before importing source code into Understand. Please contact [email protected] for more information.
Refer to the “Configuring Your Project” section of our help guide to see detailed setup instructions for the programming language you plan on analyzing. The help guide can be found within Understand or accessed on our support site here.
Your local development environment needs to be configured appropriately before running Understand. An improper setup will result in inaccurate information. The Analysis Log will display errors or warnings when importing your code base in the case of misconfiguration. Resolve all errors or warnings to receive the most accurate information about your code.
6.1.1 Optional Understands Settings
Tools > Options > Analyze > Automatically analyze changed files on save
By default Understand will only analyze a file when the command is given. Turn this option on to have an analysis run automatically every time a file is changed and saved.
Analysis, metrics, and graphs will not reflect user updates until a new analysis has been performed. An analysis can be run manually at any time by going to Project > Analyze Changed Files.
CodeCheck will ask the user to perform an analysis when changes are detected.
6.2 Operating Constraints
The machine that is running the Understand application should have 1Gb RAM for every 1 million lines of source code that is being statically analyzed. The source code can be on a network, however the database that the Understand application generates, should be on the local machine for optimal performance. This database is generated when a project is created in Understand and an analysis has been run.
The general licensing of Understand does require an internet connection. The Understand app communicates with our license server, Helios (licensing.scitools.com) on a regular basis. This information is secured using SSL and this information is not shared and is only used for licensing purposes. In some cases, networks/firewalls may need to be configured to allow access on TCP port 443 using secure HTTPS. Firewalls with application level security may need to enable HTTPS permission for the Understand and Uperl executables installed in SciTools/bin/directory.
For licensing that requires zero internet connection, there is a closed lab proprietary license server that can be used, Icarus, which requires setup by a user with admin privileges and opening ports 80 and 443 to incoming connections. Icarus only supports 64 bit operating systems.
6.3 Operating Environment
Disk Space: At least 700MB free
CPU: Any modern CPU
RAM: 1GB of Ram Per Million lines of source code
OS: Understand will run on Windows (Windows 10 and later), Linux 64bit (CentOS & RHEL 8.4, Ubuntu 20.04, and later) and Mac OSX (Mohave 10.14 and later).
Use Cases
Tool Classification (summary)
The following use cases are classified as TI2, meaning they could potentially impact executable code. Refer to the table below for possible malfunctions and mitigations.
Assumptions of Use for ISO 26262 compliance
Error Detection: Most Issues will be reported to the user via the “Analysis Log”. An analysis will be run automatically after importing code. You can also run an analysis manually with “Ctrl + Alt + R”.
Crash Detection and Handling: When an exception is encountered that cannot be resolved Understand will close the application and present the user with a crash notification. All currently running operations are canceled and the data is reverted to the last successful save. Make sure to check your data in the case it has been reverted to a previous version.
CodeCheck: Issues with the CodeCheck Scripts are reported within the CodeCheck window under “Script Errors”. If any script errors are detected the CodeCheck results may be invalid.
Sudden Interruptions: Anything that disrupts an operation in Understand will cause that operation to be aborted. You will need to restart the task. This includes power failures, operating system failures, Understand critical failure “crash”, etc.
User Suggestions (pop-ups): Understand will detect when a possibility of incorrect data arises. For example, if an analysis is requested, Understand will detect unsaved changes and suggest the user saves before running the analysis. It is recommended that all popups and notifications are read before proceeding with an action.