See ObjectOrientedSoftwareEngineeringaUseCaseDrivenApproach.