Class refinement for software evolution

2Citations
Citations of this article
1Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We have proposed a theoretical framework for introducing class refinement which is considered to play an important role in evolutionary prototyping in object-oriented languages. Class inheritance is extensively used in OO languages in evolving software by introducing new functions in the class and redefining them. In the redefinition, methods are overridden by their new definitions in its subclasses. However, overriding methods sometimes causes unpredicted effects on the classes, which is known as 'fragile base class problem'. This anomaly has effects on evolving programs as it makes understanding the programs harder. Here, we propose to prohibit method redefinition and, instead, to introduce function refinement, which is based on abstract interpretation. In this refinement, we start with an abstract data domain and methods operating on them. The data domain and methods are refined and become concrete in the course of evolution of programs. We mainly focus on the formalism for class refinement.

Cite

CITATION STYLE

APA

Ozaki, H., Gondow, K., & Katayama, T. (2003). Class refinement for software evolution. In International Workshop on Principles of Software Evolution (IWPSE) (Vol. 2003-January, pp. 51–56). Institute of Electrical and Electronics Engineers Inc. https://doi.org/10.1109/IWPSE.2003.1231209

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free