설계란? 소프트웨어에 대한 명세를 동작 가능한 소프트웨어로 변환 하기위한 계획에 대한 구상을 뜻한다. 훌륭한 상위 수준 설게는 여러 개의 하위 수준 설계를 무리 없이 담을 수 있는 구조를 제공한다. 훌륭한 설계는 규모가 큰 프로젝트에서는 꼭 필요한 작업이며 작은 프로젝트에서도 유용하다. 설계는 사용자의 요구사항에 따라 계속 바뀐다. 그래서 어렵다. 설계의 어려움 1. 설계란는 절충과 우선순위의 문제다. 설계자의 주요 업무중 하나가 서로 상충하는 설계 특징을 비교하여 그 특성들 사이에 균현을 맞추는 일이다. 빠른 응답 속도가 개발 시간을 최소하는 것보다 중요하다면 설계자는 그에 맞는 설계를 선택 할 것이다. 2. 설계에는 제약이 따른다. 설계의 핵심은 어느 정도는 가능성을 만들고 어느 정도는 가성능성 제한..