A criterion based hybrid slicing algorithm for object-oriented programs