I like the phrase on the blink, which means that it is not working properly. I like the "blink" part in particular, because it implies some intermittent function.
A related phrase is on the fritz, but I've never been entirely sure whether that's offensive or not.
Edit: I agree with the comments on this answer that these phrases would have the implication that the software had been working, but now does not function properly.