소프트웨어 설계란 컴퓨터 프로그램에 대한 요구를 조작 가능한 프로그램으로 변환시키는 계획의 개념, 발명, 책략을 의미한다. 설계는 요구 사항을 코드 작성과 오류 수정에 연결시키는 행위를 말한다. 설계의 단계 1단계 : 서브 시스템으로 분할 이 단계에서 설계의 주요 작업은 모든 주요 서브 시스템의 구분이다. 이 단계의 주요 설계 행위는 어떻게 프로그램을 주요 구성 요소로 분리하느냐를 결정하는 것과 구성 요소 사이의 인터페이스를 정의하는 것이다. 서브 시스템은 일반적으로 모듈과 루틴을 포함한 전체 프로그램보다 작은 프로그램의 부분을 가리킨다. 2단계 : 모듈로 분할 이 단계에서의 설계는 시스템의 모든 모듈의 정의를 포함한다. 대형 시스템의 프로그램 분할 단계에서 지정된 서브 시스템은 너무 커서 직접 모듈로 ..