Software Engg > Tools > TCS Embedded Code Analyzer
TCS Embedded Code Analyzer

Why - An embedded software application has much more demand on qualities like robustness, reliability and correctness.  Manual reviews and verification of source code, may not find all potential errors in the code. The problems gets only compounded for more complex and large software. Static program analysis techniques are often used for analyzing the correctness of safety and mission critical software.

What is TCS Embedded Code Analyzer - TCS Embedded Code analyzer is static code analysis tool developed by TCS. The tool focuses on analyzing large embedded software applications for which detection of potential errors is a very difficult task. Some of the most difficult problems faced in embedded applications are deadlock, zero divisions and unprotected resources. These defects are very hard to trace, especially when the code size is in millions LOC. TCS embedded Code Analyzer not only handles such a large code for analysis but also points out all the potential defect points in the code.  

How does TCS Embedded Code analyzer work?

TCS Embedded Code Analyzer is a tool that can detect potentially dangerous defects in the software. It analyzes the code for defects without executing the code. It is based on a strong static program analysis framework, which enables it to check the code in all three aspects of structural analysis, data flow analysis and control flow analysis. This forms the strong foundation for the analysis done by TCS Embedded Code Analyzer. The mechanism of partitioning enables it to achieve scalability.

TCS Embedded Code Analyzer verifies the software code against the required properties. It provides details of error prone code, reduces the risk of program failure

Unique features: These resolve issues such as:

  • Detection of mismatch between semaphore lock and release call
  • Potential deadlock due to semaphore,
  • Shared data access without critical region,
  • Division by Zero
  • Resource locking period in the execution steps
  • Detection of Recursive/ Re-entrant functions
  • Usage of System calls and floating point operation in Interrupt Routines
  • Array index out of bound
  • Overflow-underflow detection in assignment, cast and arithmetic expressions.
  • Reporting Maximum path length for all functions
  • Maximum stack size computation required for an application
  • Determining inconsistency in modifying variables which is supposed to be modified in a group
  • Flag usage to ensure expected synchronization of operations
  • Detection of Z-variable (any variable whose value is set in the previous cycles and is read in the current cycle)
  • Detection of unreachable codeImpact Analysis to suppress already reviewed warning while moving from old to new version of code.

OS support. It supports the three most popular Operating Systems used for embedded software development.

High scalability. The TCS Embedded Code Analyzer can be used to analyze more than 10 million lines of code.

Robust static analysis framework. It can be customized easily for new requirements and provides fewer false positives as compared to other tools.

Detailed reporting. The reports provide enough details of the dangerous code, with which user can make required modification easily.

Differentiator. There are many static analysis tools available in the market, but none of the tool is scalable enough to handle a huge software application as the TCS Embedded Code analyzer does. The features offered by the tool are also unique; no single tool has these features.

Experience. TCS Embedded Code Analyzer has detected 4 very critical defects on a Real Time Embedded Code of more that 10 million LOC.

  • TCS has evaluated large infotainment application (10 Mloc); TECA reported more than 200 defects. Prior to this evaluation, the code was validated using multiple commercial tools.
  • TCS also evaluated code (100 Kloc) from one of US Office Automation Leader, TECA reported 60 defects. 

Other Resource

  • Paper presented
    • Partitioning Software Application for Static Program Analysis
    • Deadlock Detection Using Static Program Analysis
  • Case Studies
    • Evaluation of Toshiba Code

List of people working in the area

Advaita Datar
Bharti C
Sandipan Maiti
Shubhangi Khare
Karthik Sridhar
Pundlik Oulkar
Dharamveer Dhiman
Amita Kulkarni
Hema Bhatia
Shivani Sharma
Sandip Saha
Prashanth Patkar
Sanket Chandorkar
Ashwini Chougule
Amrita Munolkar
Anup Kulkarni
Abhishek Ash
Sambit Kabi
Riyanka Dagaonkar
Ankit Baid
Tushar Sanas
Pradip Batule
Amey Zare
Govind Gupta
Sayali Deshpande
Apurva Lale
Kapil Sanghvi