Object-Oriented Software Engineering Conquering Complex and Changing Systems