Object-Oriented Programming: An Evolutionary Approach