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...
Saved in:
Main Author: | |
---|---|
Format: | Final Project |
Language: | Indonesia |
Online Access: | https://digilib.itb.ac.id/gdl/view/85232 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Institut Teknologi Bandung |
Language: | Indonesia |
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. |
---|