소프트웨어의 정의와 특성


소프트웨어

정의

소프트웨어란, 컴퓨터에게 동작 방법을 지시하거나 시스템을 효율적으로 운영하기 위해 개발된 프로그램을 말한다.

특성

  1. 비가시성

  2. 복잡성

  3. 변경 가능성

  4. 순응성

  5. 복제 가능성

  6. 비마모성

  7. 비제조성



1. 비가시성

만들어진 소프트웨어는 모니터를 통해서 볼 수 있기에 가시성이 아닌가라는 생각을 할 수 있다.
하지만 그건 어디까지나 모니터 등의 매체를 통해서 시각화되었기 때문이고, 소프트웨어 자체는 비가시성을 띈다.

2. 복잡성

소프트웨어는 그 자체로도 매우 복잡하고, 만들어지는 절차나 방법 역시 모두 복잡하다. 기술이 발전할수록 사용자의 요구사항 또한 늘어나기 때문에, 점점 더 복잡해지고 있다.

3. 변경 가능성

소프트웨어는 처음 만들어졌을 때의 모델에서 멈추지 않는다. 사용자의 요구사항이나 개발자의 의도에 따라 수정/추가되기도 하며, 유지보수를 통해 끊임없이 변경된다.

4. 순응성

변경 가능성과 비슷한 맥락으로 사용자들의 요구사항을 받아들여 이에 맞춰 발전하고 변경된다. 또한, 점점 진화해가는 하드웨어에 맞춰 소프트웨어도 점점 발전된다.

5. 복제 가능성

소프트웨어는 쉽게 복제가 가능하다. 무료 또는 유료로 사용자가 사용할 수 있게끔 복제된다.

6. 비마모성

소프트웨어는 마모되지 않는다. 오래 쓰이면 마모되는 하드웨어와 달리, 소프트웨어는 실체가 존재하지 않기 때문에 오래 쓰인다고 해서 마모가 되지는 않는다. 마모가 진행되지는 않지만 품질 저하 등의 문제가 발생하기는 한다.

7. 비제조성

소프트웨어는 제조되는 것이 아니다. 하드웨어나 다른 물체들의 경우, 어떠한 생산 공정을 통해 제조되어지는데 반해 소프트웨어는 컴퓨터를 통해 개발되어진다. 그렇기에 제조라는 단어보다는 개발이라는 단어가 더 적합하다.