IP Library › Granted Patent US 12,493,461
Granted Patent B2
US 12,493,461 · App. 18/273,282 · Granted Dec 9, 2025

Method for providing recovery of modular software architecture

Inventors: Hasan Sozer (Istanbul, TR); Ali Ekici (Istanbul, TR); Okan Orsan Ozener (Istanbul, TR)
Assignee: OZYEGIN UNIVERSITESI
G06F8/71G06F8/433
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,493,461
App. No.
18/273,282
Granted
Dec 9, 2025
Kind
B2
Abstract

A method for providing recovery of modular software architecture using a processor unit that is configured to access a source code repository comprising the source codes of software consisting of a plurality of modules and configured to access a storage database comprising the update history of the source codes of the software.

Claims (42)

1 . A method for providing recovery of modular software architecture by means of a processor unit configured to access a source code repository comprising source codes of software consisting of a plurality of modules and configured to access a storage database comprising an update history of source codes of the software, the method comprises the process steps of:

accessing the source code repository,

detecting predetermined references in the codes of different modules in the source code repository,

detecting different modules containing same references,

determining a structural dependence between modules based on a number of same references contained in the different modules containing same references,

accessing the storage database,

detecting integrated updates whose update times are in predetermined proximity,

detecting integrated modules included together in the integrated updates,

determining an evolutionary dependency between modules based on a number of integrated updates in which the integrated modules are present together,

based on the structural dependence between the modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming a structural dependency cluster,

based on the evolutionary dependence between the modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming an evolutionary dependency cluster,

combining the structural dependency cluster and the evolutionary dependency cluster based on predetermined weight coefficients and obtaining a final cluster, and

performing, by the processor unit, modular software architecture recovery based on the final cluster.

2 . The method according to claim 1 , wherein the references are method/function calls or variable accesses.

3 . The method according to claim 1 , further comprises the process steps of:

detecting textual similarities of the codes of the different modules in the source code repository,

determining a semantic dependency between modules based on a textual similarity ratio,

based on the semantic dependence between the modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming a semantic dependency cluster, and

combining the structural dependency cluster, the evolutionary dependency cluster and the semantic dependency cluster based on predetermined weight coefficients and obtaining the final cluster.

4 . The method according to claim 1 , further comprises the process steps of:

detecting accesses between the different modules in the source code repository during at runtime,

determining a dynamic dependency between modules based on the accesses,

based on the dynamic dependence between modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming a dynamic dependency cluster, and

combining the structural dependency cluster, the evolutionary dependency cluster and the dynamic dependency cluster based on predetermined weight coefficients and obtaining the final cluster.

5 . The method according to claim 1 , further comprises the process steps of:

detecting access of the different modules in the source code repository to common components,

determining an external dependency between modules based on common accesses,

based on the external dependence between the modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming an external dependency cluster, and

combining the structural dependency cluster, the evolutionary dependency cluster and the external dependency cluster based on predetermined weight coefficients and obtaining the final cluster.

6 . The method according to claim 5 , wherein the common components are a variable, a function, a database table or a resource.

7 . The method according to claim 1 , further comprises the process steps of:

detecting textual similarities of the codes of the different modules in the source code repository,

determining a semantic dependency between modules based on a textual similarity ratio,

based on the semantic dependence between the modules, clustering the modules in a predetermined number of clusters so that each module is in one cluster and forming a semantic dependency cluster,

detecting accesses between the different modules in the source code repository at runtime, determining a dynamic dependency between modules based on the accesses,

based on the dynamic dependence between the modules, clustering the modules in a predetermined number of clusters so that each module is in one cluster and forming a dynamic dependency cluster,

detecting access of the different modules in the source code repository to common components,

determining an external dependency between modules based on the common accesses,

based on the external dependence between the modules, clustering the modules in a predetermined number of clusters, with each module is in one cluster and forming an external dependency cluster, and

combining the structural dependency cluster, the evolutionary dependency cluster, the semantic dependency cluster, the dynamic dependency cluster and the external dependency cluster based on predetermined weight coefficients and obtaining the final cluster.

8 . The method according to claim 1 , wherein the source code repository and the storage database are provided in a memory unit.

9 . The method according to claim 1 , wherein the processor unit accesses the source code repository and the storage database via a data bus.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2023
From: SOZER, HASAN; EKICI, ALI; OZENER, OKAN ORSAN
To: OZYEGIN UNIVERSITESI
Reel/Frame 064320/0690 →
Priority Claims (1)
TR TR2022//013118 · Aug 19, 2022 · national
Continuity (1)
Related Publication 20240403033A1 · Dec 5, 2024
References Cited (20)
US 7543017B1 · Roush · 2009 [cited by examiner]
US 8862563B2 · Sivashanmugam · 2014 [cited by examiner]
US 9223566B2 · Charters · 2015 [cited by examiner]
US 9588761B2 · Das · 2017 [cited by examiner]
US 9626167B2 · Bonanno · 2017 [cited by examiner]
US 10419374B1 · Morris · 2019 [cited by examiner]
US 11775394B2 · Yadav · 2023 [cited by examiner]
US 12001294B2 · DeGraaf · 2024 [cited by examiner]
US 20080148225A1 · Sarkar et al. · 2008 [cited by applicant]
US 20100070948A1 · Rama · 2010 [cited by examiner]
US 20100070949A1 · Rama et al. · 2010 [cited by applicant]
US 20110239184A1 · Feigen · 2011 [cited by examiner]
US 20130339818A1 · Baker · 2013 [cited by examiner]
US 20140173574A1 · Schmidt · 2014 [cited by examiner]
US 20140280165A1 · Jain · 2014 [cited by examiner]
US 20210182391A1 · Plate · 2021 [cited by examiner]
US 20220113989A1 · Tamilselvam · 2022 [cited by examiner]
US 20220129317A1 · Thyng · 2022 [cited by examiner]
WO 2013085887A1 · 2013 [cited by applicant]
Brian S. Mitchell, et al., On the Automatic Modularization of Software Systems Using the Bunch Tool, IEEE Transactions on Software Engineering, 2006, pp. 1-16, vol. 32, No. 3. [cited by applicant]