Defining And Validating A Client-Based Class Cohesion Metric For Object-Oriented Systems