Home // International Journal On Advances in Software, volume 14, numbers 1 and 2, 2021 // View article
Towards Expanding Conceptual-Level Inheritance Patterns for Evolvable Systems
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 human perception and essential for conceptual modelling. However, it causes evolvability problems in software implementations. Each inheritance relation represents a tight coupling between entities with uncontrolled propagation of changes. Such a coupling leads to a combinatorial effect or even a combinatorial explosion in the case of complex hierarchies with multiple inheritances. This extended paper uses our analysis of multiple inheritance and method resolution order in the Python programming language to design and demonstrate code generation techniques with the use of inheritance patterns. The analysis is based on the design of inheritance implementation patterns from our previous work. Our design shows how can be conceptual-level inheritance implemented efficiently in software systems. The proposed design is demonstrated with Python (sometimes called ``executable pseudocode''). However, it can be implemented with other object-oriented programming languages, even those that do not support multiple inheritance. The resulting design and prototype of expanders for inheritance patterns are ready for application in practice and further use within different technology stacks.
Pages: 33 to 44
Copyright: Copyright (c) to authors, 2021. Used with permission.
Publication date: December 31, 2021
Published in: journal
ISSN: 1942-2628