소프트웨어는 컴퓨터가 일을 수행하도록 하는 프로그램과 관련 데이터 등을 가리킨다. 물리적인 장치인 하드웨어와 구분한다. (NIST의 소프트웨어 용어 정의)
- 그림을 그리는 앱, 웹 서버, 운영 체제는 서로 다른 일을 맡는 소프트웨어다. 화면에 창이 보이지 않아도 실행되는 프로그램이 있다.
- 소스 코드를 갖고 있는 것과 바로 실행할 수 있는 것은 다르다. 언어와 배포 방식에 따라 컴파일이나 런타임이 필요하며, 실행 환경의 버전도 맞아야 한다.
- 설치 파일, 작업 결과물, 설정과 문서를 구분해 보관하면 교체와 인수인계에 도움이 된다. 복사와 수정, 배포에 어떤 조건이 있는지는 라이선스에서 확인한다.