Determining Bounds on Execution Times