분석과 설계의 근본적인 차이는 분석이란 도메인을 이해하는 것인 반면,
설계는 도메인을 지원하는 소프트웨어를 이해하는 것이라는 점이다.
명확하게 이 두 가지는 밀접하게 연결되어 있으며 둘 사이의 경계가 매우 모호해질 때가 많다.
그러나 경계가 뚜렷할 필요는 없다. 유용성보다 순수성을 강조해서는 안 된다.
이론적으로는 분석인 동시에 설계의 특성을 가지는 하이브리드 모델이
절대로 좋은 것이 아니지만 이런 하이브리드한 특징이 가장 좋은 모델을 만든다고 믿는다.
분석 모델과 설계 모델의 하이브리드한 특징이 가장 좋은 모델을 낳는 토양이라면
프로그래밍 언어를 사용하여 구현한 코드가
이 모델을 최대한 반영하는 것이 가장 이상적일 것이다.
만약 설계 모델의 일부가 적용 기술 내에서 구현 불가능하다면 설계 모델을 변경해야 한다.
프로그래밍 과정 동안 설계의 실현 가능성과 정확성이 검증되고 테스트되며
그 결과 잘못된 설계가 수정되거나 새로운 설계로 대체된다.
따라서 프로그래밍은 설계의 한 과정이며 설계는 프로그래밍을 통해 개선된다.
분석/설계/구현이 별개의 것이 아닌 단일 행위라는 사상은
DDD를 지탱하는 두 가지 축 중 하나인 MODLE-DRIVEN DESIGN을 지지하는 핵심 사상이다.
이러한 분석/설계/구현에 대한 시각의 변화는
새로운 주류의 방법론이 출현할 수 있는 토양을 만들어 주었다.
애자일 진영이 바로 그것이다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/310