Grensen mellom maskinvare og programvare er flytende, og mange oppgaver som utføres av fysiske gjenstander kan også utføres av programvare. Et modem kan f.eks. både være en fysisk gjenstand og et dataprogram.