Hay varias definiciones. Sin entrar en temas demasiado técnicos, serían estas dos, de las mas aceptadas:
"Es la información que le suministra el desarrollador a la computadora para que manipule la información que suministra el usuario."
Cox
"Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación. "
IEEE 729