Static Code Analysis of Multilanguage Software Systems

06/03/2019
by   Anas Shatnawi, et al.
0

Identifying dependency call graphs of multilanguage software systems using static code analysis is challenging. The different languages used in developing today's systems often have different lexical, syntactical, and semantic rules that make thorough analysis difficult. Also, they offer different modularization and dependency mechanisms, both within and between components. Finally, they promote and--or require varieties of frameworks offering different sets of services, which introduce hidden dependencies, invisible with current static code analysis approaches. In this paper, we identify five important challenges that static code analysis must overcome with multilanguage systems and we propose requirements to handle them. Then, we present solutions of these requirements to handle JEE applications, which combine server-side Java source code with a number of client-side Web dialects (e.g., JSP, JSF) while relying on frameworks (e.g., Web and EJB containers) that create hidden dependencies. Finally, we evaluate our implementations of the solutions by developing a set of tools to analyze JEE applications to build a dependency call graph and by applying these tools on two sample JEE applications. Our evaluation shows that our tools can solve the identified challenges and improve the recall in the identification of multilanguage dependencies compared to standard JEE static code analysis and, thus, indirectly that the proposed requirements are useful to build multilanguage static code analysis.

READ FULL TEXT
research
01/15/2018

Debugging Static Analysis

To detect and fix bugs and security vulnerabilities, software companies ...
research
05/23/2018

Evaluation of Static Analysis Tools for Finding Vulunerbailities in Java and C/C++ Source Code

It is quite common for security testing to be delayed until after the so...
research
06/29/2019

Análise Estática de Código-Fonte

This article presents a theoretical summary of the source code static an...
research
05/01/2019

E2E Web Test Dependency Detection using NLP

E2E web test suites are prone to test dependencies due to the heterogene...
research
03/14/2018

How to Implement Dependencies in Server Pages of JEE Web Applications

Java Enterprise Edition (JEE) applications are implemented in terms of a...
research
07/31/2022

Tai-e: A Static Analysis Framework for Java by Harnessing the Best Designs of Classics

Static analysis is a mature field with applications to bug detection, se...
research
05/12/2022

Analyzing Impact of Dependency Injection on Software Maintainability

Dependency injection (DI) is generally known to improve maintainability ...

Please sign up or login with your details

Forgot password? Click here to reset