Just to add grist for the mill, I'd point out that
people now are, perhaps
erroneously, calling recorded program material for your stereo and your TV
'software' as well. Now, I would call a CD or a CDROM firmware, since you
can't really change it, but who's splitting hairs . . .
Ah, the question of when is software software. If you want to get
really precise, I would argue that it is "stored data" when it is on
the CDROM. It does not become software until it is relocated and
available for execution in the processors address space. If you can
step a program counter (or instruction pointer or whatever you call it
on a particular architecture) across it, then it is either software or
firmware. Otherwise: If it is on paper, it is a "listing". If it is
on paper tape, it is a "dump". Etc. Of course, this opens up the
question of just what are interpreted language and p-code programs?