Home // PATTERNS 2020, The Twelfth International Conference on Pervasive Patterns and Applications // View article


Evolvability Analysis of Multiple Inheritance and Method Resolution Order in Python

Authors:
Marek Suchánek
Robert Pergl

Keywords: Multiple Inheritance; Python 3; Evolvability; Method Resolution Order; Composition Over Inheritance

Abstract:
Inheritance as a relation for expressing generalisations and specialisations or taxonomies is natural for conceptual modelling, but causes evolvability problems in software implementations. Each inheritance relation represents a tight coupling between a superclass and a subclass. Coupling in this case leads to a combinatorial effect or even combinatorial explosion in case of complex hierarchies. This paper analyses how multiple inheritance and method resolution order affect these problems in the Python programming language. The analysis is based on the design of inheritance implementation patterns from our previous work. Thanks to the flexibility of Python, it shows that inheritance can be implemented with minimisation of combinatorial effect using the patterns. Nevertheless, it is crucial to generate helper constructs related to the patterns from the model automatically for the sake of evolvability, including potential future in the patterns themselves.

Pages: 19 to 24

Copyright: Copyright (c) IARIA, 2020

Publication date: April 26, 2020

Published in: conference

ISSN: 2308-3557

ISBN: 978-1-61208-783-2

Location: Nice, France

Dates: from October 25, 2020 to October 29, 2020