Model checking software systems