SOFTWARE KNOWLEDGE ANALYSIS METHOD FOR FUNCTIONAL AND ARCHITECTURAL DECOMPOSITION FROM SOFTWARE SOURCE CODE

Software development process in the industry often results in changes to the source code and software system architecture that are inconsistent with each other over time. To assist in the maintenance of a software system, knowledge related to the design and implementation of the system’s architec...

Full description

Saved in:
Bibliographic Details
Main Author: Stanley Setiawan, Timothy
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/85477
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:Software development process in the industry often results in changes to the source code and software system architecture that are inconsistent with each other over time. To assist in the maintenance of a software system, knowledge related to the design and implementation of the system’s architecture and functionality is required. This thesis discusses software knowledge analysis for architectural decomposition using deductive software architecture recovery (SAR) with ASCS and functional decomposition using feature identification with community detection in graph analysis. Software knowledge analysis is conducted by integrating deductive SAR method as an abstract representation of software components and feature identification method as an abstract representation of software interactions. The integration of these methods was evaluated using K-9 Mail case study, resulting in an accuracy of 61.36% for the comparison of architectural component classification at package level with the ground truth, a weighted precision of 90.15%, a weighted recall of 61.36%, and a weighted F1 score of 70.72%. In functional decomposition, 11 out of 20 features were successfully mapped to the ground truth. These results provide promising initial outcomes when considering several aspects. Based on validation with a user study, it can be concluded that the need for functional and architectural decomposition of software implementation is necessary when reading legacy code. Therefore, it is hoped that this thesis will be a first step and can be further developed to facilitate the understanding of software abstraction at various levels of abstraction.