An empirical study of evolution of inheritance in Java']Java OSS

被引:11
|
作者
Nasseri, E. [1 ]
Counsell, S. [1 ]
Shepperd, M. [1 ]
机构
[1] Brunel Univ, Sch Informat Syst Comp & Math, Uxbridge UB8 3PH, Middx, England
关键词
D O I
10.1109/ASWEC.2008.78
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Previous studies of Object-Oriented (00) software have reported avoidance of the inheritance mechanism and cast doubt on the wisdom of 'deep' inheritance levels. From an evolutionary perspective, the picture is unclear - we still know relatively little about how, over time, changes tend to be applied by developers. Our conjecture is that an inheritance hierarchy will tend to grow 'breadth-wise' rather than 'depth-wise'. This claim is made on the basis that developers will avoid extending depth in favour of breadth because of the inherent complexity of having to understand the functionality of superclasses. Thus the goal of our study is to investigate this empirically. We conduct an empirical study of seven Java Open-Source Systems (OSSs) over a series of releases to observe the nature and location of changes within the inheritance hierarchies. Results showed a strong tendency for classes to be added at levels one and two of the hierarchy (rather than anywhere else). Over 96% of classes added over the course of the versions of all systems were at level I or level 2. The results suggest that changes cluster in the shallow levels of a hierarchy; this is relevant for developers since it indicates where remedial activities such as refactoring should be focused.
引用
收藏
页码:269 / 278
页数:10
相关论文
共 50 条
  • [1] System Evolution at the Attribute Level: An Empirical Study of Three Java']Java OSS and their Refactorings
    Nasseri, E.
    Counsell, S.
    PROCEEDINGS OF THE ITI 2009 31ST INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY INTERFACES, 2009, : 653 - 658
  • [2] How do Java']Java programs use inheritance? An empirical study of inheritance in Java']Java software
    Tempero, Ewan
    Noble, James
    Melton, Hayden
    ECOOP 2008 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2008, 5142 : 667 - +
  • [3] Class movement and re-location: An empirical study of Java']Java inheritance evolution
    Nassed, E.
    Counsell, S.
    Shepperd, M.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (02) : 303 - 315
  • [4] System evolution at the attribute level: An empirical study of three Java OSS and their refactorings
    Counsell S.
    Nasseri E.
    Journal of Computing and Information Technology, 2010, 18 (02) : 167 - 173
  • [5] Class movement and re-location: An empirical study of Java inheritance evolution
    School of Information Systems, Computing and Mathematics, Brunel University, Uxbridge, Middlesex UB8 3PH, United Kingdom
    J Syst Software, 1600, 2 (303-315):
  • [6] An empirical study of fan-in and fan-out in Java OSS
    Nasseri, E.
    Counsell, S.
    Tempero, E.
    8th ACIS International Conference on Software Engineering Research, Management and Applications, SERA 2010, 2010, : 36 - 41
  • [7] On multiple inheritance in Java']Java
    Bettini, L
    Loreti, M
    Venneri, B
    TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES, SYSTEMS AND ARCHITECTURES, 2003, 732 : 1 - 15
  • [8] An empirical study of Java']Java bytecode programs
    Collberg, Christian
    Myles, Ginger
    Stepp, Michael
    SOFTWARE-PRACTICE & EXPERIENCE, 2007, 37 (06): : 581 - 641
  • [9] An Empirical Study of Method Chaining in Java']Java
    Nakamaru, Tomoki
    Matsunaga, Tomomasa
    Yamazaki, Tetsuro
    Akiyama, Soramichi
    Chiba, Shigeru
    2020 IEEE/ACM 17TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2020, : 93 - 102
  • [10] Simulating multiple inheritance in Java']Java
    Tempero, E
    Biddle, R
    JOURNAL OF SYSTEMS AND SOFTWARE, 2000, 55 (01) : 87 - 100