ScaMaha is a tool designed for parsing, analyzing, and visualizing object-oriented (OO) software systems.
Abstract: Reverse engineering tools are required to handle the complexity of software products and the unique requirements of many different tasks, like software analysis and visualization. Thus, reverse engineering tools should adapt to a variety of cases. Static Code Analysis (SCA) is a technique for analyzing and exploring software source code without running it. Manual review of software source code puts additional effort on software developers and is a tedious, error-prone, and costly job. This paper proposes an original approach (called ScaMaha) for Object-Oriented (OO) source code analysis and visualization based on SCA. ScaMaha is a modular, flexible, and extensible reverse engineering tool. ScaMaha revolves around a new meta-model and a new code parser, analyzer, and visualizer. ScaMaha parser extracts software source code based on the Abstract Syntax Tree (AST) and stores this code as a code file. The code file includes all software code identifiers, relations, and structural information. ScaMaha analyzer studies and exploits the code files to generate useful information regarding software source code. The software metrics file gives unique metrics regarding software systems, such as the number of method access relations. Software source code visualization plays an important role in software comprehension. Thus, ScaMaha visualizer exploits code files to visualize different aspects of software source code. The visualizer generates unique graphs about software source code, like the visualization of inheritance relations. ScaMaha tool was applied to several case studies from small to large software systems, such as drawing shapes, mobile photo, health watcher, rhino, and ArgoUML. Results show the scalability, performance, soundness, and accuracy of ScaMaha tool. Evaluation metrics, like precision and recall, demonstrate the accuracy of ScaMaha in parsing, analyzing, and visualizing software source code, as all code artifacts (i.e., code file, software metrics file, and code visualizations) were correctly extracted.
Keywords: Software engineering, Reverse engineering, Software re-engineering, Object-Oriented source code, Static code analysis, Software visualization, Software metrics, ScaMaha tool.
Google Drive: https://drive.google.com/drive/folders/11_CItJ2pPq_1CAWswcjRsAZnhmQO6OQ8
ScaMaha Tutorial: https://dx.doi.org/10.13140/RG.2.2.36183.38563
ScaMaha article: https://tinyurl.com/bdd72m42
ScaMaha presentation: http://dx.doi.org/10.13140/RG.2.2.15401.92004
ScaMaha is a reverse engineering tool developed for the analysis and visualization of object-oriented (OO) software systems. It uses Static Code Analysis (SCA) to explore software source code without executing it, which helps overcome the challenges posed by manual code reviews. ScaMaha consists of a modular, flexible, and extensible framework built around a new meta-model, code parser, analyzer, and visualizer.
Code Parsing: ScaMaha’s parser extracts source code using an Abstract Syntax Tree (AST), storing all code identifiers, relations, and structural details.
Code Analysis: The analyzer processes these extracted code files to generate useful software metrics, such as method access relations and other system insights.
Code Visualization: The visualizer converts these code files into graphical representations, such as inheritance relationships, helping users better understand software architecture.
ScaMaha has been successfully applied to various case studies of varying complexity, including small projects (e.g., drawing shapes) to large systems (e.g., ArgoUML). Evaluation metrics, such as precision and recall, confirm the tool's scalability, accuracy, and reliability in parsing, analyzing, and visualizing software systems.
© 2024 Ra'fat Al-Msie'deen