IP Library › Granted Patent US 12,190,107
Granted Patent B2
US 12,190,107 · App. 17/720,797 · Granted Jan 7, 2025

Computer implementation method for software architecture analysis and software architecture analysis apparatus

Inventor: Shaobing Yang (Shanghai, CN)
Assignee: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
G06F8/75
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,190,107
App. No.
17/720,797
Granted
Jan 7, 2025
Kind
B2
Abstract

An architecture analysis apparatus ( 106 ) receives an architecture model input by a user, and analyzes a plurality of modules included in the architecture model to obtain a call relationship between the modules. Then, the plurality of modules are allocated to different layers based on an architecture setting entered by the user, whether a call relationship between the plurality of modules complies with a call rule is detected, and a detection result is displayed to the user by using an interface.

Claims (42)

1. A method for software architecture analysis and comprising:

importing an architecture model comprising modules, wherein each of the modules comprises at least one file;

analyzing files comprised in the modules to obtain module call information, wherein the module call information comprises a call relationship among the modules;

obtaining, from a user and using an input/output (I/O) driver, an architecture setting comprising a layering rule and a call rule, wherein the layering rule comprises set information of layers and a module comprised at each of the layers, wherein the set information comprises a sequence number of each layer, and wherein the call rule is between modules located at different layers or between modules comprised at each layer;

instructing generation of a layered architecture presentation interface based on the layering rule and the module call information, wherein in the layered architecture presentation interface, each module is allocated to an area corresponding to a layer comprising the module and a location of each layer is set based on the sequence number of the layer;

detecting the module call information based on the call rule to obtain a detection result; and

displaying the detection result using the layered architecture presentation interface by changing, in the layered architecture presentation interface, a color or a format of an arrow corresponding to a call that is between modules and that violates the call rule.

2. The method of claim 1 , wherein analyzing the files comprises counting a first quantity of times that a file comprised in each module calls a file comprised in another module to obtain a second quantity of calls between the modules.

3. The method of claim 2 , further comprising displaying the second quantity in the layered architecture presentation interface.

4. The method of claim 1 , further comprising displaying the call relationship using an arrow in the layered architecture presentation interface.

5. The method of claim 1 , wherein the call rule is between modules located at different layers and comprises an adjacent-layer call rule, a cross-layer call rule, or a reverse call rule.

6. The method of claim 1 , wherein in the layered architecture presentation interface, colors or textures of areas corresponding to adjacent layers are different.

7. A computer system comprising:

a computer comprising:

a memory comprising an input/output (I/O) driver and configured to store instructions; and

a processor coupled to the memory and configured to execute the instructions to cause the computer system to:

import an architecture model comprising modules, wherein each of the modules comprises at least one file;

analyze files comprised in the modules to obtain module call information, wherein the module call information comprises a call relationship among the modules;

obtain, from a user and using the I/O driver, an architecture setting comprising a layering rule and a call rule, wherein the layering rule comprises set information of layers and a module comprised at each of the layers, and wherein the call rule is between modules located at different layers or between modules comprised at each layer;

instruct generation of a layered architecture presentation interface based on the layering rule and the module call information, wherein in the layered architecture presentation interface, each module is allocated to an area corresponding to a layer comprising the module;

detect the module call information based on the call rule to obtain a detection result;

display the detection result using the layered architecture presentation interface by changing, in the layered architecture presentation interface, a color or a format of an arrow corresponding to a call that is between modules and that violates the call rule; and

analyze the files by counting a first quantity of times that a file comprised in each module calls a file comprised in another module to obtain a second quantity of calls between the modules.

8. The computer system of claim 7 , wherein the set information comprises a sequence number of each layer, and wherein in the layered architecture presentation interface, a location of each layer is set based on the sequence number of the layer.

9. The computer system of claim 7 , wherein the processor is further configured to execute the instructions to cause the computer system to display the second quantity in the layered architecture presentation interface.

10. The computer system of claim 7 , wherein the processor is further configured to execute the instructions to cause the computer system to display the call relationship using an arrow in the layered architecture presentation interface.

11. The computer system of claim 7 , wherein the call rule is between modules located at different layers and comprises an adjacent-layer call rule, a cross-layer call rule, or a reverse call rule.

12. The computer system of claim 7 , wherein in the layered architecture presentation interface, color or textures of areas corresponding to adjacent layers are different.

13. A computer program product comprising instructions that are stored on a non-transitory computer-readable medium and that, when executed by a processor, cause a computer system to:

import an architecture model comprising modules, wherein each of the modules comprises at least one file;

analyze files comprised in the modules to obtain module call information, wherein the module call information comprises a call relationship among the modules;

obtain, from a user and using an input/output (I/O) driver, an architecture setting comprising a layering rule and a call rule, wherein the layering rule comprises set information of layers and a module comprised at each of the layers, wherein the call rule is between modules located at different layers or between modules comprised at each layer, wherein the call rule is between modules located at different layers and comprises a cross-layer call rule or a reverse call rule, wherein the cross-layer call rule indicates whether a call between modules at layers with non-adjacent layer sequence numbers is allowed, and wherein the reverse call rule indicates whether a call between a module at a lower layer in a software architecture and a module at an upper layer in the software architecture is allowed;

instruct generation of a layered architecture presentation interface based on the layering rule and the module call information, wherein in the layered architecture presentation interface, each module is allocated to an area corresponding to a layer comprising the module;

detect the module call information based on the call rule to obtain a detection result; and

display the detection result by using layered architecture presentation interface by changing, in the layered architecture presentation interface, a color or a format of an arrow corresponding to a call that is between modules and that violates the call rule.

14. The computer program product of claim 13 , wherein the set information comprises a sequence number of each layer, and wherein in the layered architecture presentation interface, a location of each layer is set based on the sequence number of the layer.

15. The computer program product of claim 13 , wherein the instructions, when executed by the processor, further cause the computer system to analyze the files by counting a first quantity of times that a file comprised in each module calls a file comprised in another module to obtain a second quantity of calls between the modules.

16. The computer program product of claim 15 , wherein the instructions, when executed by the processor, further cause the computer system to display the second quantity in the layered architecture presentation interface.

17. The computer program product of claim 13 , wherein the instructions, when executed by the processor, further cause the computer system to display the call relationship using an arrow in the layered architecture presentation interface.

18. The computer program product of claim 13 , wherein in the layered architecture presentation interface, colors or textures of areas corresponding to adjacent layers are different.

19. The method of claim 5 , wherein the cross-layer call rule indicates whether a call between modules at layers with non-adjacent layer sequence numbers is allowed, and wherein the reverse call rule indicates whether a call between a module at a lower layer in a software architecture and a module at an upper layer in the software architecture is allowed.

20. The computer system of claim 11 , wherein the cross-layer call rule indicates whether a call between modules at layers with non-adjacent layer sequence numbers is allowed, and wherein the reverse call rule indicates whether a call between a module at a lower layer in a software architecture and a module at an upper layer in the software architecture is allowed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2022
From: YANG, SHAOBING
To: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
Reel/Frame 061144/0262 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2022
From: YANG, SHAOBING
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 060920/0688 →
Priority Claims (2)
CN 201910994945.2 · Oct 18, 2019 · national
CN 201911399723.2 · Dec 30, 2019 · national
Continuity (2)
Continuation PCTCN2020121893 · Oct 19, 2020
Related Publication 20220236983A1 · Jul 28, 2022
References Cited (24)
US 8832662B2 · Eade · 2014 [cited by examiner]
US 11194688B1 · Featonby · 2021 [cited by examiner]
US 20050160411A1 · Sangal et al. · 2005 [cited by applicant]
US 20100058288A1 · Zitzewitz et al. · 2010 [cited by applicant]
US 20120054714A1 · Novak · 2012 [cited by examiner]
US 20130060824A1 · Hadar et al. · 2013 [cited by applicant]
US 20130305224A1 · Eade · 2013 [cited by examiner]
US 20170169230A1 · Zheng · 2017 [cited by examiner]
US 20190163446A1 · Brunel · 2019 [cited by examiner]
US 20200026701A1 · Duncan · 2020 [cited by examiner]
US 20200065227A1 · Gao · 2020 [cited by examiner]
US 20220236983A1 · Yang · 2022 [cited by applicant]
US 20230199504A1 · Raley · 2023 [cited by examiner]
CN 101281466A · 2008 [cited by applicant]
CN 102722362A · 2012 [cited by applicant]
CN 107103244A · 2017 [cited by applicant]
CN 109491728A · 2019 [cited by applicant]
CN 109492144A · 2019 [cited by applicant]
CN 105745620B · 2019 [cited by applicant]
CN 110221929A · 2019 [cited by applicant]
CN 111176724A · 2020 [cited by applicant]
Weixin_34095889, “Dry goods: detailed analysis of software architecture,” CSDN blog, with an English machine translation, Mar. 11, 2018, 31 pages. [cited by applicant]
Leo Pruijt et al., “Dependency Related Parameters in the Reconstruction of a Layered Software Architecture,” ECSAW″16, Nov. 28-Dec. 2, 2016, 7 pages. [cited by applicant]
Jason McC. Smith, “Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture,” Jan. 2003, 9 pages. [cited by applicant]