책 속에서
소프트웨어는 프로그램 코드와 같이 메모리에 저장되어 있지만 개념적으로 우리의 정신적 사고와 같이 일종의 무형적 요소에 해당한다. 실세계의 물리적 요소인 항공기, 자동차, 로봇, 가전제품은 결과의 구조를 쉽게 파악할 수 있지만, 소프트웨어는 그 실체가 코드 안에 은닉되어 있기 때문이다. 이를 소프트웨어의 특징 중 비가시성(Invisibility이라 한다. 그리고 소프트웨어는 개발과정이 복잡하고 복합된 시스템 자체가 난해하여 복잡성(Complexity이라는 특징을 가진다. 소프트웨어는 요구사항이 변경될 때마다 항상 수정이 가능한 변경성(Changeability을 가지며 적은 비용과 다양한 경로를 통하여 복제가 가능한 복제성(Duplicability를 가진다. 소프트웨어는 기능 못지않게 품질이 가장 중요하다. 소프트웨어에 의해 동작하는 항공기, 로봇, 산업 생산라인, 정보시스템의 경우 기능과 성능보다 소프트웨어 수행의 신뢰성이 우선하여야 하기 때문이다. 근래 출시된 모바일 단말기나 자동차를 리콜하는 가장 많은 원인도 근본적으로 소프트웨어의 오류로 인한 기계적 장치의 오동작인 경우가 대부분이다.
--- 본문 중에서