Evaluating object-oriented design