KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics
Abstract
:1. Introduction
- We propose a new approach to extract the software structure, which is implemented by automatic execution of the GUI software and dynamically tracing the execution of the software. The extracted information is further represented by a CCN (Class Call Network).
- We propose a new key class identification approach, which is based on the CCN and OSE metrics. Our approach is different from the existing approaches using structural information based on the static analysis of the target software.
2. Related Work
3. The Proposed Approach—KEADA
3.1. Software Structural Information Extraction
3.1.1. Java Bytecode Instrumentation
3.1.2. Java GUI Automatic Execution
Algorithm 1 Java GUI automatic execution |
|
3.2. Software Network Definition
3.3. OSE (First-Order Structural Entropy) Metric
3.4. Key Class Identification
4. Empirical Study
4.1. Research Questions
4.2. Subject Systems
4.3. Evaluation Metrics
4.4. Baseline Approaches
- CONN-TOTAL: This calculates the degree of a specific class as its importance. Numerically, it equals to the sum of the in-degree and out-degree of the class.
- PageRank: This calculates the PageRank value of a specific class as its importance.
- ICOOK: This employs a generalized k-core decomposition to calculate the generalized coreness of each class as its importance.
- Coreness: This uses k-core decomposition to calculate the coreness of each class as its importance.
- MinClass: This uses of each class node in a CCN as its importance.
4.5. Results and Analysis
4.6. Threats to Validity
5. Conclusions and Future Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Du, X.; Wang, T.; Wang, L.; Pan, W.; Chai, C.; Xu, X.; Jiang, B.; Wang, J. Improving Effort-Aware Bug Prediction in Software Systems Using Generalized k-Core Decomposition in Class Dependency Networks. Axioms; 2022; 11. [Google Scholar] [CrossRef]
- Spinellis, D. Code Reading: The Open Source Perspective; Addison-Wesley: Reading, MA, USA, 2003. [Google Scholar]
- Ko, A.J.; Myers, B.A.; Coblenz, M.J.; Aung, H.H. An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE Trans. Softw. Eng. 2006, 32, 971–987. [Google Scholar] [CrossRef] [Green Version]
- Zaidman, A.; Demeyer, S. Automatic identification of key classes in a software system using webmining techniques. J. Softw. Maint. Evol. Res. Pract. 2008, 20, 387–417. [Google Scholar] [CrossRef] [Green Version]
- Ding, Y.; Li, B.; He, P. An improved approach to identifying key classes in weighted software network. Math. Probl. Eng. 2016, 2016, 3858637. [Google Scholar] [CrossRef] [Green Version]
- Sora, I.; Todinca, D. Using fuzzy rules for identifying key classes in software systems. In Proceedings of the 11th IEEE International Symposium on Applied Computational Intelligence and Informatics, SACI 2016, Timisoara, Romania, 12–14 May 2016; IEEE: Piscataway, NJ, USA, 2016; pp. 317–322. [Google Scholar] [CrossRef]
- Robillard, M.P.; Coelho, W.; Murphy, G.C. How Effective Developers Investigate Source Code: An Exploratory Study. IEEE Trans. Softw. Eng. 2004, 30, 889–903. [Google Scholar] [CrossRef]
- Pan, W.; Ming, H.; Chang, C.K.; Yang, Z.; Kim, D. ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach. IEEE Trans. Softw. Eng. 2021, 47, 2272–2295. [Google Scholar] [CrossRef]
- Pan, W.; Song, B.; Hu, B.; Li, B.; Jiang, B. Identifying Key Classes Based on Weighted K-Core Analysis of Software Networks. Acta Electonica Sin. 2018, 46, 1071. [Google Scholar]
- Zhang, Z.; Jiang, G.; Song, Y.; Xia, L.; Chen, Q. An Improved Weighted LeaderRank Algorithm for Identifying Influential Spreaders in Complex Networks. In Proceedings of the 2017 IEEE International Conference on Computational Science and Engineering, CSE 2017, and IEEE International Conference on Embedded and Ubiquitous Computing, EUC 2017, Guangzhou, China, 1–24 July 22017; IEEE: Piscataway, NJ, USA, 2017; Volume 1, pp. 748–751. [Google Scholar] [CrossRef]
- Li, H.; Wang, T.; Pan, W.; Wang, M.; Chai, C.; Chen, P.; Wang, J.; Wang, J. Mining Key Classes in Java Projects by Examining a Very Small Number of Classes: A Complex Network-Based Approach. IEEE Access 2021, 9, 28076–28088. [Google Scholar] [CrossRef]
- Du, X.; Wang, T.; Pan, W.; Wang, M.; Jiang, B.; Xiang, Y.; Chai, C.; Wang, J.; Yuan, C. COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation. IEEE Access 2021, 9, 114767–114780. [Google Scholar] [CrossRef]
- Pan, W.; Li, B.; Liu, J.; Ma, Y.; Hu, B. Analyzing the structure of Java software systems by weighted K-core decomposition. Future Gener. Comput. Syst. 2018, 83, 431–444. [Google Scholar] [CrossRef]
- Zhu, A.; Chen, W.; Zhang, J.; Zong, X.; Zhao, W.; Xie, Y. Investor immunization to Ponzi scheme diffusion in social networks and financial risk analysis. Int. J. Mod. Phys. 2019, 33, 1950104. [Google Scholar] [CrossRef]
- Pan, W.; Ming, H.; Yang, Z.; Wang, T. Comments on “Using k-core Decomposition on Class Dependency Networks to Improve Bug Prediction Model’s Practical Performance”. IEEE Trans. Softw. Eng. 2022, 47, 348–366. [Google Scholar] [CrossRef]
- Jiang, W.; Dai, N. Identifying key classes algorithm in directed weighted class interaction network based on the structure entropy weighted LeaderRank. Math. Probl. Eng. 2020, 2020, 9234042. [Google Scholar] [CrossRef]
- Bilal, I.; Al-Taharwa, I.; Rami, S.; Alkhawaldeh, I.M.; Ghatasheh, N. Jacoco-Coverage Based Statistical Approach for Ranking and Selecting Key Classes in Object-Oriented Software. J. Eng. Sci. Technol. 2021, 16, 3358–3386. [Google Scholar]
- Wang, M.; Hongmin, L.U.; Zhou, Y.; Baowen, X.U. Identifying Key Classes Using h-Index and its Variants. J. Front. Comput. Sci. Technol. 2011, 5, 891–903. [Google Scholar]
- Steidl, D.; Hummel, B.; Jürgens, E. Using Network Analysis for Recommendation of Central Software Classes. In Proceedings of the 19th Working Conference on Reverse Engineering, WCRE 2012, Kingston, ON, Canada, 15–18 October 2012; IEEE: Piscataway, NJ, USA, 2012; pp. 93–102. [Google Scholar] [CrossRef] [Green Version]
- Sora, I. Helping Program Comprehension of Large Software Systems by Identifying Their Most Important Classes. In Proceedings of the Evaluation of Novel Approaches to Software Engineering—10th International Conference, ENASE 2015, Barcelona, Spain, 29–30 April 2015; Revised Selected Papers. Maciaszek, L.A., Filipe, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2015; Volume 599, pp. 122–140. [Google Scholar] [CrossRef]
- Thung, F.; Lo, D.; Osman, M.H.; Chaudron, M.R.V. Condensing class diagrams by analyzing design and network metrics using optimistic classification. In Proceedings of the 22nd International Conference on Program Comprehension, ICPC 2014, Hyderabad, India, 2–3 June 2014; Roy, C.K., Begel, A., Moonen, L., Eds.; ACM: New York, NY, USA, 2014; pp. 110–121. [Google Scholar] [CrossRef] [Green Version]
- Pan, W.; Song, B.; Li, K.; Zhang, K. Identifying key classes in object-oriented software using generalized k-core decomposition. Future Gener. Comput. Syst. 2018, 81, 188–202. [Google Scholar] [CrossRef]
- Hirsch, J.E. An index to quantify an individual’s scientific research output. Proc. Natl. Acad. Sci. USA 2005, 102, 16569–16572. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Brin, S.; Page, L. The Anatomy of a Large-Scale Hypertextual Web Search Engine. Comput. Netw. 1998, 30, 107–117. [Google Scholar] [CrossRef]
- Do Nascimento Vale, L.; de Almeida Maia, M. Key Classes in Object-Oriented Systems: Detection and Assessment. Int. J. Softw. Eng. Knowl. Eng. 2019, 29, 1439–1463. [Google Scholar] [CrossRef]
- Nguyen, B.N.; Robbins, B.; Banerjee, I.; Memon, A.M. GUITAR: An innovative tool for automated testing of GUI-driven software. Autom. Softw. Eng. 2014, 21, 65–105. [Google Scholar] [CrossRef]
- Soueidi, C.; Monnier, M.; Kassem, A.; Falcone, Y. Efficient and Expressive Bytecode-Level Instrumentation for Java Programs. arXiv 2021, arXiv:2106.01115. [Google Scholar]
- Pan, W.; Dong, J.; Liu, K.; Wang, J. Topology and topic-aware service clustering. Int. J. Web Serv. Res. (IJWSR) 2018, 15, 18–37. [Google Scholar] [CrossRef]
- Pan, W.; Chai, C. Structure-aware Mashup service Clustering for cloud-based Internet of Things using genetic algorithm based clustering algorithm. Future Gener. Comput. Syst. 2018, 87, 267–277. [Google Scholar] [CrossRef]
- Pan, W.; Xu, X.; Ming, H.; Chang, C.K. Clustering mashups by integrating structural and semantic similarities using fuzzy AHP. Int. J. Web Serv. Res. (IJWSR) 2021, 18, 34–57. [Google Scholar] [CrossRef]
- Sora, I.; Chirila, C. Finding key classes in object-oriented software systems by techniques based on static analysis. Inf. Softw. Technol. 2019, 116. [Google Scholar] [CrossRef]
- Meyer, P.; Siy, H.P.; Bhowmick, S. Identifying Important Classes of Large Software Systems through k-Core Decomposition. Adv. Complex Syst. 2014, 17, 1550004. [Google Scholar] [CrossRef]
System | Version Number | #Classes | #Methods | URLs (accessed on 27 March 2020) |
---|---|---|---|---|
ArgoUML | 0.9.5 | 1038 | 6178 | https://argouml-tigris-org.github.io/ |
JHotDraw | 6.0b.1 | 217 | 6737 | https://sourceforge.net/projects/jhotdraw/ |
Maze | 1 | 71 | 563 | https://code.google.com/p/maze-solver/ |
Evaluation Metrics | ArgoUML | JHotDraw | Maze | |||
---|---|---|---|---|---|---|
Recall | Ranking Score | Recall | Ranking Score | Recall | Ranking Score | |
KEADA | 75.00% | 31.25 | 100% | 4 | 45.83% | 27.19 |
a-index | 0% | 264.00 | 0% | 180.22 | 29.63% | 35.63 |
CONN-TOTAL | 66.67% | 26.08 | 66.67% | 16.11 | 48.15% | 27.41 |
MinClass | 66.67% | 27.33 | 66.67% | 26.67 | 51.85% | 27.39 |
PageRank | 58.33% | 29.08 | 66.67% | 23 | 40.74% | 34.39 |
ICOOK | 33.33% | 85.83 | 88.89% | 12.67 | 55.56% | 26.59 |
h-index | 41.67% | 88.17 | 66.67% | 20.33 | 44.44% | 28.24 |
Coreness | 41.67% | 67.83 | 66.67% | 29.44 | 48.15% | 38.57 |
Key Classes | KEADA | a-Index | CONN-TOTAL | |||
---|---|---|---|---|---|---|
Identified | Position | Identified | Position | Identified | Position | |
CrUML | ✓ | 2 | × | 166.5 | ✓ | 5 |
ToDoList | ✓ | 15 | × | 255 | × | 28 |
Designer | ✓ | 8 | × | 162 | ✓ | 1 |
ToDoItem | ✓ | 4 | × | 299 | ✓ | 7.5 |
ProjectBrowser | × | 41 | × | 284.5 | ✓ | 2 |
Argo | × | 162 | × | 321 | ✓ | 18 |
History | N/A | - | × | 282 | × | 83 |
Project | N/A | - | × | 264 | ✓ | 6 |
ControlMech | N/A | - | × | 147 | × | 96 |
Critic | ✓ | 1 | × | 197 | ✓ | 3 |
Configuration | ✓ | 17 | × | 268 | × | 39 |
Wizard | N/A | - | × | 522 | ✓ | 24.5 |
Recall (%) | 75.00% | 0% | 66.67% | |||
Ranking score | 31.25 | 264.00 | 26.08 | |||
Key Classes | MinClass | PageRank | ICOOK | |||
Identified | Position | Identified | Position | Identified | Position | |
CrUML | ✓ | 3 | ✓ | 9 | × | 49 |
ToDoList | ✓ | 13 | × | 79 | ✓ | 25 |
Designer | ✓ | 1 | ✓ | 6 | ✓ | 22 |
ToDoItem | ✓ | 6 | ✓ | 13 | × | 32 |
ProjectBrowser | ✓ | 7 | ✓ | 2 | ✓ | 23 |
Argo | ✓ | 12 | ✓ | 21 | × | 33 |
History | × | 55 | × | 49 | × | 234 |
Project | ✓ | 21 | ✓ | 5 | ✓ | 24 |
ControlMech | × | 142 | × | 52 | × | 393 |
Critic | ✓ | 5 | ✓ | 8 | × | 37 |
Configuration | × | 32 | × | 68 | × | 58 |
Wizard | × | 31 | × | 37 | × | 100 |
Recall (%) | 66.67% | 58.33% | 33.33% | |||
Ranking score | 27.33 | 29.08 | 85.83 | |||
Key Classes | h-Index | Coreness | ||||
Identified | Position | Identified | Position | |||
CrUML | × | 49.5 | × | 43.5 | ||
ToDoList | × | 30 | ✓ | 14 | ||
Designer | ✓ | 16.5 | ✓ | 14 | ||
ToDoItem | ✓ | 16.5 | ✓ | 14 | ||
ProjectBrowser | ✓ | 1 | ✓ | 14 | ||
Argo | ✓ | 16.5 | × | 43.5 | ||
History | × | 357.5 | × | 239.5 | ||
Project | ✓ | 2 | ✓ | 14 | ||
ControlMech | × | 357.5 | × | 239.5 | ||
Critic | ✓ | 30 | × | 43.5 | ||
Configuration | × | 90.5 | × | 91 | ||
Wizard | × | 90.5 | × | 43.5 | ||
Recall (%) | 41.67% | 41.67% | ||||
Ranking score | 88.17 | 67.83 |
Key Classes | KEADA | a-Index | CONN-TOTAL | |||
---|---|---|---|---|---|---|
Identified | Position | Identified | Position | Identified | Position | |
CompositeFigure | ✓ | 1 | × | 179 | × | 42.5 |
StandardDrawingView | ✓ | 3 | × | 110 | ✓ | 16.5 |
DrawApplication | ✓ | 8 | × | 157 | ✓ | 5 |
Figure | N/A | - | × | 256 | ✓ | 2 |
DrawingEditor | N/A | - | × | 279.5 | ✓ | 6 |
Drawing | N/A | - | × | 159 | ✓ | 7 |
Tool | N/A | - | × | 174 | × | 27.5 |
DrawingView | N/A | - | × | 166.5 | ✓ | 1 |
Handle | N/A | - | × | 141 | × | 37.5 |
Recall (%) | 100% | 0% | 66.67% | |||
Ranking score | 4 | 180.22 | 16.11 | |||
Key Classes | MinClass | PageRank | ICOOK | |||
Identified | Position | Identified | Position | Identified | Position | |
CompositeFigure | × | 71 | × | 43 | ✓ | 16 |
StandardDrawingView | × | 84 | ✓ | 5 | ✓ | 5 |
DrawApplication | × | 29 | ✓ | 6 | ✓ | 9 |
Figure | ✓ | 1 | ✓ | 3 | ✓ | 1 |
DrawingEditor | ✓ | 5 | ✓ | 9 | ✓ | 10 |
Drawing | ✓ | 6 | ✓ | 12 | ✓ | 4 |
Tool | ✓ | 20 | × | 65 | ✓ | 22 |
DrawingView | ✓ | 2 | ✓ | 2 | ✓ | 2 |
Handle | ✓ | 22 | × | 62 | × | 45 |
Recall (%) | 66.67% | 66.67% | 88.89% | |||
Ranking score | 26.67 | 23 | 12.67 | |||
Key Classes | h-Index | Coreness | ||||
Identified | Position | Identified | Position | |||
CompositeFigure | × | 47 | ✓ | 22.5 | ||
StandardDrawingView | ✓ | 11 | ✓ | 22.5 | ||
DrawApplication | ✓ | 24.5 | × | 44 | ||
Figure | ✓ | 1 | ✓ | 5 | ||
DrawingEditor | ✓ | 15 | ✓ | 22.5 | ||
Drawing | ✓ | 6.5 | ✓ | 22.5 | ||
Tool | × | 37.5 | × | 44 | ||
DrawingView | ✓ | 3 | ✓ | 22.5 | ||
Handle | × | 37.5 | × | 59.5 | ||
Recall (%) | 66.67% | 66.67% | ||||
Ranking score | 20.33 | 29.44 |
Key Classes | KEADA | a-Index | CONN-TOTAL | |||
---|---|---|---|---|---|---|
Identified | Position | Identified | Position | Identified | Position | |
Main | × | 36 | × | 45 | ✓ | 2 |
MazeCell | × | 43 | × | 41 | ✓ | 7 |
MazeModel | ✓ | 5 | × | 32 | ✓ | 5.5 |
PrimaryFrame | × | 34 | × | 28.5 | ✓ | 8 |
MazeView | ✓ | 1 | × | 36 | ✓ | 4 |
CellSizeModel | × | 48.5 | × | 50.5 | × | 27.5 |
RobotBase | × | 48.5 | × | 56.5 | ✓ | 3 |
LeftWallFollower | ✓ | 15 | × | 36 | × | 49.5 |
RightWallFollower | ✓ | 17 | × | 36 | × | 49.5 |
Tremaux | ✓ | 11 | × | 28.5 | × | 36 |
Floodfill | ✓ | 2 | ✓ | 20.5 | × | 36 |
BoxTemplate | × | 39 | ✓ | 6.5 | × | 36 |
StraightTemplate | × | 39.5 | ✓ | 6.5 | × | 36 |
CornerTemplate | × | 39.5 | ✓ | 6.5 | × | 36 |
CrossTemplate | × | 39.5 | ✓ | 6.5 | × | 36 |
ZigZagTemplate | × | 39.5 | ✓ | 6.5 | × | 36 |
EditableMazeView | ✓ | 7 | ✓ | 10 | ✓ | 16.5 |
MazeTemplate | ✓ | 21 | × | 40 | ✓ | 13.5 |
Direction | × | 48.5 | × | 54 | × | 49.5 |
RobotController | ✓ | 3 | ✓ | 22 | ✓ | 16.5 |
RobotModelMaster | ✓ | 8 | × | 46.5 | ✓ | 11 |
RobotModel | ✓ | 9 | × | 42.5 | ✓ | 11 |
RobotStep | × | 48.5 | × | 58.5 | × | 63.5 |
TemplatePeg | × | 48.5 | × | 53 | ✓ | 5.5 |
PegLocation | N/A | - | × | 68 | × | 68 |
TemplateWall | N/A | - | × | 56.5 | ✓ | 9 |
Corner | N/A | - | × | 68 | × | 68 |
Recall (%) | 45.83% | 29.63% | 48.15% | |||
Ranking score | 27.19 | 35.63 | 27.41 | |||
Key Classes | MinClass | PageRank | ICOOK | |||
Identified | Position | Identified | Position | Identified | Position | |
Main | ✓ | 10 | ✓ | 5 | ✓ | 16 |
MazeCell | ✓ | 1 | ✓ | 20 | ✓ | 1 |
MazeModel | ✓ | 6 | ✓ | 21 | ✓ | 3 |
PrimaryFrame | ✓ | 12 | ✓ | 1 | ✓ | 17 |
MazeView | ✓ | 8 | ✓ | 15 | ✓ | 2 |
CellSizeModel | ✓ | 2 | × | 47 | ✓ | 8 |
RobotBase | ✓ | 7 | ✓ | 7 | ✓ | 6 |
LeftWallFollower | × | 25.5 | × | 60.5 | × | 54 |
RightWallFollower | × | 25.5 | × | 60.5 | × | 52 |
Tremaux | × | 25.5 | × | 34 | ✓ | 23 |
Floodfill | × | 25.5 | × | 56 | ✓ | 5 |
BoxTemplate | × | 57.5 | × | 38.5 | × | 32 |
StraightTemplate | × | 57.5 | × | 38.5 | × | 38 |
CornerTemplate | × | 57.5 | × | 38.5 | × | 37 |
CrossTemplate | × | 57.5 | × | 38.5 | × | 34 |
ZigZagTemplate | × | 57.5 | × | 38.5 | × | 35.5 |
EditableMazeView | × | 33 | × | 27 | ✓ | 9 |
MazeTemplate | ✓ | 14 | ✓ | 23 | ✓ | 18 |
Direction | ✓ | 19 | × | 58 | × | 49 |
RobotController | ✓ | 20 | × | 26 | ✓ | 11 |
RobotModelMaster | ✓ | 9 | ✓ | 18 | ✓ | 10 |
RobotModel | ✓ | 5 | ✓ | 14 | ✓ | 7 |
RobotStep | × | 63 | × | 64 | × | 65.5 |
TemplatePeg | ✓ | 3 | ✓ | 19 | ✓ | 21 |
PegLocation | × | 67 | × | 68 | × | 68 |
TemplateWall | ✓ | 4 | ✓ | 24 | × | 28 |
Corner | × | 67 | × | 68 | × | 68 |
Recall (%) | 51.85% | 40.74% | 55.56% | |||
Ranking score | 27.39 | 34.39 | 26.59 | |||
Key Classes | h-Index | Coreness | ||||
Identified | Position | Identified | Position | |||
Main | ✓ | 6.5 | ✓ | 6.5 | ||
MazeCell | ✓ | 2.5 | ✓ | 18.5 | ||
MazeModel | ✓ | 2.5 | ✓ | 6.5 | ||
PrimaryFrame | ✓ | 16 | ✓ | 18.5 | ||
MazeView | ✓ | 6.5 | ✓ | 6.5 | ||
CellSizeModel | ✓ | 16 | ✓ | 18.5 | ||
RobotBase | ✓ | 16 | ✓ | 18.5 | ||
LeftWallFollower | × | 53 | × | 54 | ||
RightWallFollower | × | 53 | × | 54 | ||
Tremaux | × | 45 | × | 39.5 | ||
Floodfill | × | 38.5 | × | 39.5 | ||
BoxTemplate | × | 29 | × | 30.5 | ||
StraightTemplate | × | 29 | × | 30.5 | ||
CornerTemplate | × | 29 | × | 30.5 | ||
CrossTemplate | × | 29 | × | 30.5 | ||
ZigZagTemplate | × | 29 | × | 30.5 | ||
EditableMazeView | ✓ | 16 | ✓ | 6.5 | ||
MazeTemplate | ✓ | 6.5 | ✓ | 6.5 | ||
Direction | × | 45 | × | 46 | ||
RobotController | ✓ | 6.5 | ✓ | 6.5 | ||
RobotModelMaster | ✓ | 16 | ✓ | 18.5 | ||
RobotModel | × | 29 | × | 30.5 | ||
RobotStep | × | 62 | × | 63 | ||
TemplatePeg | ✓ | 16 | ✓ | 6.5 | ||
PegLocation | × | 68 | × | 68 | ||
TemplateWall | × | 29 | ✓ | 18.5 | ||
Corner | × | 68 | × | 68 | ||
Recall (%) | 44.44% | 48.15% | ||||
Ranking score | 28.24 | 38.57 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Wang, L.; Du, X.; Jiang, B.; Pan, W.; Ming, H.; Liu, D. KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics. Entropy 2022, 24, 652. https://doi.org/10.3390/e24050652
Wang L, Du X, Jiang B, Pan W, Ming H, Liu D. KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics. Entropy. 2022; 24(5):652. https://doi.org/10.3390/e24050652
Chicago/Turabian StyleWang, Liuhai, Xin Du, Bo Jiang, Weifeng Pan, Hua Ming, and Dongsheng Liu. 2022. "KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics" Entropy 24, no. 5: 652. https://doi.org/10.3390/e24050652
APA StyleWang, L., Du, X., Jiang, B., Pan, W., Ming, H., & Liu, D. (2022). KEADA: Identifying Key Classes in Software Systems Using Dynamic Analysis and Entropy-Based Metrics. Entropy, 24(5), 652. https://doi.org/10.3390/e24050652