The programs and routines that control the functioning of hardware and direct its operation. This includes the kernel and other parts of the operating system, compilers, packages, and user programs. The word is often used to modify another noun.
Compare:
hardware
"Software is like sex--the best is for free" - Linus Torvalds