나는 내 생각을 두 가지 영역으로 나누려고 노력한다 : 내가 조작하려는 것의 표현과 그것들로 내가하려는 것.
내가 조작하려는 항목을 모델링하려고 할 때 일련의 개별 항목 정의를 제시합니다. 전자 상거래 사이트에는 SKU, 제품, 고객 등이 있습니다. 또한 주문 또는 카테고리와 같이 작업중인 비 물질적 인 것들도 있습니다. 시스템에 모든 "명사"가 있으면 이러한 개체가 서로 어떻게 관련되어 있는지 보여주는 도메인 모델을 만들 것입니다. 주문에는 고객과 여러 SKU가 있고 많은 skus는 제품으로 그룹화됩니다. 의 위에.
이러한 도메인 모델은 UML 도메인 모델, 클래스 다이어그램 및 SQL ERD로 표현 될 수 있습니다.
일단 시스템의 명사를 알아 내면 동사로 넘어갑니다. 예를 들어 이러한 각 항목이 명령을 내리기 위해 거치는 연산입니다. 이들은 일반적으로 내 기능 요구 사항의 사용 사례에 잘 매핑됩니다. 내가 찾은이를 표현하는 가장 쉬운 방법은 UML 시퀀스, 활동 또는 협업 다이어그램이나 스윔 레인 다이어그램입니다.
이것을 반복적 인 프로세스로 생각하는 것이 중요합니다. 도메인의 작은 부분을 수행 한 다음 작업을 수행 한 다음 다시 돌아갑니다. 이상적으로는 제가 진행하는 동안 작업을 시도 할 수있는 코드를 작성할 시간이있을 것입니다. 설계가 애플리케이션보다 너무 앞서 나가는 것을 원하지는 않습니다. 이 프로세스는 모든 것을위한 완전하고 최종적인 아키텍처를 구축하고 있다고 생각하는 경우 일반적으로 끔찍합니다. 정말로, 당신이하려는 것은 팀이 개발을 진행하면서 공통적으로 공유 할 기본 기반을 구축하는 것입니다. 당신은 대부분 팀원들이 시스템을 설명 할 때 사용할 수있는 공유 어휘를 만들고 있으며, 어떻게해야하는지에 대한 법을 정하지 않습니다.