Abstract

Providing models that enable developers, architects, and executives to make intelligent decisions about software projects is imperative. Static analyzer tools can extract the information required by developers from the source code to achieve various goals. There are generally two types of tools for analyzing source codes in the software engineering community: commercial tools and open-source tools. Commercial tools provide a limited set of features, pre-built by the tool developers, for extracting information from source code. Open-source tools, while also having limited features, often have fewer features than commercial tools. Extending open-source tools to support new and unembedded features requires a complete knowledge of the programming language used in the tools as well as the architecture used in the modules of tools. Additionally, tool extension requires a complete knowledge of the Abstract Syntax Tree (AST) structure used in those tools. To overcome existing problems, this paper proposes a new model named Sahand, which utilizes a Relational Database Repository (RDP) to store the source code. To this end, utilizing RDP, we propose a new data model to store the source code of the object-oriented projects aiming to extract the required information from it. This new data model provides an infrastructure for developers to extract information from the source code using only the SQL language or its extensions. This model facilitates the extraction of previously inaccessible information, such as the maximum depth of the inheritance tree in the entire project or the maximum method call sequence in the project. The proposed model has been further investigated using two large-scale projects namely JavaParser and Tomcat, consisting of 1802 and 3566 classes, respectively. All source codes and database model used for Sahand are open-source and can be accessed at https://github.com/gClassAcademy/Sahand.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call