소프트웨어는 다양한 특성을 갖기 때문에 하나로 정의를 내리는 것은 불가능한 일이 되었다. 소프트웨어 관련 기본법으로 볼 수 있는 소프트웨어산업진흥법에서는 소프트웨어를 “컴퓨터, 통신, 자동화 등의 장비와 그 주변장치에 대하여 명령ㆍ제어ㆍ입력ㆍ처리ㆍ저장ㆍ출력ㆍ상호작용이 가능하게 하는 지시ㆍ명령(음성이나 영상정보 등을 포함한다)의 집합과 이를 작성하기 위하여 사용된 기술서(記述書)나 그 밖의 관련 자료”로 정의내리고 있다. 정의를 보면 소프트웨어는 하드웨어에 종속되어서 기능을 수행하는 지시, 명령의 집합으로 이해될 수 있다. 이는 상당히 추상적이며, 소프트웨어개발촉진법상 정의되었던 프로그램과 소프트웨어의 정의가 훨씬 직관적이었다. 즉, 소프트웨어개발촉진법에서는 프로그램과 소프트웨어에 대한 정의를 같이 내리고 있다. 프로그램은 “특정한 결과를 얻기 위하여 컴퓨터 등 정보처리능력을 가진 장치내에서 직접 또는 간접으로 사용되는 일련의 지시·명령으로 표현된 것”으로 정의하였고, 소프트웨어는 “프로그램과 이를 작성하기 위하여 사용된 설계서·기술서 기타 관련자료”로 정의되었다.
프로그램과 소프트웨어에 대한 정의를 어느 법률이 동시에 내렸을까
소프트웨어개발촉진법