소프트웨어(S/W, SoftWare) 개념
-
소프트웨어(S/W, SoftWare)는 하드웨어를 동작시켜 사용자가 작업을 편리하게 수행하도록 하는 프로그램과 자료 구조 등을 총칭한다.
-
소프트웨어는 프로그램 자체뿐만 아니라 프로그램의 개발, 운용 및 유지보수에 관련된 모든 문서와 정보를 포함한다.
소프트웨어의 특성
- 비가시성(Invisibility)
- 소프트웨어 구조는 외관으로 나타나지 않고 코드로 숨어 있다.
- 구조가 외부에 노출되지 않고 코드에 내재되어 있음(개념적, 무형적)
- 복잡성(Complexity)
- 개발과정이 복잡, 비표준화
- 정형적 구조가 없이 복잡하고 비규칙적, 비정규적임
- 변경성(Changeability)
- 필요에 따라 항상 수정이 가능한 진화
- 순응성(Comformity)
- 사용자요구, 환경변화에 적절히 변형가능
- 무형성(Intangible)
- 사실 형제가 없으며 FP(기능점수)등으로 유형화 하고자 함
- 복제성(Duplicability)
- 적은 비용(무상)으로 간단하고 쉽게 다양한 경로와 노력으로 복제가 가능
- 개발(Developed)
- 제조(조립)가 아닌 개발(developed not manufactured)
- 유형성(有型性)
- 소프트웨어는 논리적이며 보고 만질 수 없는 것이 아니라, 프로그램 코드를 인쇄시켜 볼 수도 있고 분석/설계 산출물로 가시화시킬 수 있으므로 유형이다.
- 동적행위성(動的行爲性)
- 프로그램은 정적인 반면 소프트웨어는 정적이다.
- 프로그램이 하드웨어에 의해 수행되고 사용자와 상호작용할 때 비로소 소프트웨어가 된다.
- 상품성(商品性)
- 개발된 소프트웨어는 상품화되어 판매된다.
- 개발된 프로그램은 제품에 불과하고 포장이 되고 사용자가 사용할 가치가 생기므로써 상품이된다.
- 견고성(堅固性)
- 일부 수정으로 소프트웨어 전체에 영향을 줄 수 있다.
- 소프트웨어의 행위는 예측이 어렵고 수정이 용이하지 않다.
- 따라서 소프트웨어가 한번 구조성을 잃으면 유지보수는 점점 어려워지므로 ‘소프트’라는 단어 처럼 그리 유연하지 못하다는 것이다.
- 비마모성(非磨耗性)
- 외부의 환경에 의해 마모되지 않고 다만 품질이 나빠질 뿐임
- 마모되거나 소멸되지 않는다.
- 소프트웨어는 하드웨어와 달리 마모되지 않고 품질이 저하되는 특징이 있다.
- 비제조성
- 하드웨어처럼 제작이 아니라 논리적인 절차에 맞게 개발
- 소프트웨어는 제조, 생산 되어지는 것이 아니라 개발되어진다.
하드웨어와 같이 소프트웨어도 좋은 설계를 바탕으로 만들어지지만 생상과정이 품질에 큰 영향을 주지는 않는 하드웨어에 비해 소프트웨어 개발과정은 그 과정 자체가 곧 품질로 연결된다.
- 비조립성
- 하드웨어는 부품의 조립으로 이루어지는 반면 소프트웨어는 대부분의 경우에 개발에 머물뿐 조립의 단계는 아직 아니다.
- 비과학성
- 과학적이 아니라 조직, 인력, 시간, 절차 등 중심
- 소프트웨어 개발 자체는 수학적이거나 과학적인 것이 아니라 조직, 인력, 시간, 비용, 절차 등이 중심이되는 관리기술이 중요하다.