Program Slicing: Methods and Applications