Analyzing the Evolutionary History of the logical design of object-oriented software