C++ Refactoring and a Relational Model for Object-Oriented Code

Sergio Pissanetzky. Research Scientist. Member, IEEE.


Lack of encapsulation of code structure is the cause for the need to refactor.
A container based on the Relational Model is proposed. It supports user types, 
subtyping and inheritance. A sequence of relational operations is used to
create classes. The set of all possible sequences corresponds to all possible non-trivial
refactorings of the same code. OO code can be generated from the model and vice-versa.
Besides, deep refactoring leads to a programming style called Strong Ownership (SO),
that reduces the need for refactoring. Developing SO code directly is an alternative
to the model, until relational tools are developed.

Categories and Subject Descriptors: D.1.2 [Software]: Programming Techniques—Automatic Programming; D.1.5 [Software]: Programming Techniques—Object-oriented Programming

General Terms: Experimentation, Theory

Additional Key Words and Phrases: C++, object model, refactoring, relational model