This research investigates how object-oriented inheritance is actually used in practice. The aim is to close the gap between inheritance guidance and inheritance practice. It is based on detailed analyses of 2440 inheritance hierarchies drawn from 14 open-source systems. The original contributions made by this paper concern pragmatic assessment of inheritance hierarchy design quality. The findings show that inheritance is very widely used but that most of the usage patterns that occur in practice are simple in structure. They are so simple that they may not require much inheritance-specific design consideration. On the other hand, the majority of classes defined using inheritance actually appear within a relatively small number of large, complex hierarchies. While some of these large hierarchies appear to have a consistent structure, often based on a problem domain model or a design pattern, others do not. Another contribution is that the quality of hierarchies, especially the large problematic ones, may be assessed in practice based on size, shape, and the definition and invocation of novel methods – all properties that can be detected automatically.
Inheritance Usage Patterns in Open-Source Systems (InheritancePatternsJSMW_ICSE18.pdf) | 680KiB |
Wed 30 MayDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | Open-Source SystemsTechnical Papers / Journal first papers at J1 room Chair(s): Andrzej Wąsowski IT University of Copenhagen, Denmark | ||
14:00 20mTalk | Inheritance Usage Patterns in Open-Source Systems Technical Papers Pre-print File Attached | ||
14:20 20mTalk | Almost There: A Study on Quasi-Contributors in Open-Source Software Projects Technical Papers Igor Steinmacher Federal University of Technology - Paraná / Northern Arizona University, Gustavo Pinto UFPA, Igor Wiese Federal University of Technology - Paraná (UTFPR), Marco Gerosa Northern Arizona University Pre-print | ||
14:40 20mTalk | Analyzing a Decade of Linux System Calls Journal first papers Mojtaba Bagherzadeh Queen's University, Nafiseh Kahani , Cor-Paul Bezemer Queen's University, Kingston, Ontario, Ahmed E. Hassan Queen's University, Juergen Dingel Queen's University, Kingston, Ontario, James R. Cordy Link to publication Pre-print | ||
15:00 20mTalk | To Distribute or Not to Distribute? Why Licensing Bugs Matter Technical Papers Christopher Vendome , Daniel M. German , Massimiliano Di Penta University of Sannio, Gabriele Bavota Università della Svizzera italiana (USI), Mario Linares-Vásquez Systems and Computing Engineering Department , Universidad de los Andes , Bogotá, Colombia , Denys Poshyvanyk William and Mary | ||
15:20 10mTalk | Q&A in groups Technical Papers |