Finding key classes in object-oriented software systems by techniques based on static analysis

被引:21
作者
Sora, Ioana [1 ]
Chirila, Ciprian-Bogdan [1 ]
机构
[1] Politehn Univ Timisoara, Dept Comp & Informat Technol, Timisoara, Romania
关键词
Key classes; Program comprehension; Static analysis; UML DIAGRAMS; FAMILY; CODE;
D O I
10.1016/j.infsof.2019.106176
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context Software maintenance is burdened by program comprehension activities which consume a big part of project resources. Program comprehension is difficult because the code to be analyzed is very large and the documentation may not be well structured to help navigating through the code. Objective: Tools should support the early stages of program comprehension. Our goal is to build tools that analyze the code and filter this large amount of information such that only the most important information is presented to the software maintenance team. In the case of object-oriented systems, finding the important information means finding the most important classes, also called the key classes of the system. Method: In this work, we formulate and explore several hypotheses regarding which are the class attributes that characterize important classes. By class attributes, we understand here different metrics that quantify properties of the class such as its connections and relationships with other classes. All the necessary input data for computing class attributes are extracted from code by static analysis. We experimentally investigate which attributes are best suited to rank classes according to their importance, doing an extensive empirical study on fifteen software systems. Result: Attributes from the categories of direct connections and network centrality are the best for finding key classes. We identified three class attributes which are best as class ranking criteria: PR-U2-W and CONN-TOTAL-W when the target set of key classes is small and CONN-TOTAL when the target set has a large and variable size. We show that the method of ranking classes based on these attributes outperforms known related work approaches of finding key classes. Conclusions: Our method allows us to build easy-to-use fully automatic tools which find almost instantly the key classes of a software system starting from its code.
引用
收藏
页数:15
相关论文
共 45 条
  • [1] Improving modular structure of software system using structural and lexical dependency
    Amarjeet
    Chhabra, Jitender Kumar
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2017, 82 : 96 - 120
  • [2] Identifying, categorizing and mitigating threats to validity in software engineering secondary studies
    Ampatzoglou, Apostolos
    Bibi, Stamatia
    Avgeriou, Paris
    Verbeek, Marijn
    Chatzigeorgiou, Alexander
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2019, 106 : 201 - 230
  • [3] [Anonymous], 2016, EVALUATION NOVEL APP
  • [4] Bennett KH, 2000, P C FUT SOFTW ENG, P73
  • [5] A unified framework for coupling measurement in object-oriented systems
    Briand, LC
    Daly, JW
    Wüst, JK
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (01) : 91 - 121
  • [6] Brito e Abreu F., 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, P13, DOI 10.1109/CSMR.2000.827300
  • [7] An Improved Approach to Identifying Key Classes in Weighted Software Network
    Ding, Yi
    Li, Bing
    He, Peng
    [J]. MATHEMATICAL PROBLEMS IN ENGINEERING, 2016, 2016
  • [8] An introduction to ROC analysis
    Fawcett, Tom
    [J]. PATTERN RECOGNITION LETTERS, 2006, 27 (08) : 861 - 874
  • [9] Does the level of detail of UML diagrams affect the maintainability of source code?: a family of experiments
    Fernandez-Saez, Ana M.
    Genero, Marcela
    Caivano, Danilo
    Chaudron, Michel R. V.
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (01) : 212 - 259
  • [10] Are Forward Designed or Reverse-Engineered UML diagrams more helpful for code maintenance?: A family of experiments
    Fernandez-Saez, Ana M.
    Genero, Marcela
    Chaudron, Michel R. V.
    Caivano, Danilo
    Ramos, Isabel
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2015, 57 : 644 - 663