Domain Model?
개발해야하는 도메인의 개념 클래스 또는 실제 객체들을 시각적으로 표현한 것이다.
도메인 모델은 소프트웨어 클래스나 객체 따위를 나타내는 것이 아닌 실제 세계의 개념 클래스의 표현이다.
네모박스로 도메인 모델 혹은 객체를 나타내고, 네모 아래에 객체의 속성을 적는다. 각 선은 연관 관계를 뜻한다.
위와 같은 도메인 모델이 있다고 할 때, Person과 Company는 인스턴스이다.
Works-for는 association name이고, employee와 employer는 role name이다.
또, 1..*은 1개 이상을 뜻하고, *는 0개 이상을 뜻한다. 이를 다중성이라 한다.
*, 0..* | zero to many |
1..* | one to many |
0..1 | zero or one |
1 | one and only one |
n,m | where n and m are any two integer |
인스턴스와 관계 이름의 작명 규칙은 TypeName-VerbPhrase-TypeName 형식을 사용한다. (두 엔티티의 이름과 그들 사이의 관계를 나타내는 동사구 결합)
예를 들어서 Store - Stocks - Item을 사용하여 가게가 아이템을 재고로 가지고 있다는 관계를 나타낼 수 있다.
동사구는 하이픈으로 구성하고, 왼쪽에서 오른쪽 또는 위에서 아래로 읽을 수 있게 만든다.
같은 인스턴스가 연관관계에 있을 수도 있다. 이를 self associations이라고 한다.
위 그림의 경우에는 Person 인스턴스에서 role name이 boss인 0 또는 1개의 인스턴스가 0개 이상의 worker와 Manages로서 연관되어있다.
화살표를 사용함으로 단방향 연관관계를 지을 수도 있다.
각 인스턴스는 속성으로 순수 데이터 값을 가질 수 있다. 위 그림에서는 Sale은 date와 time을 가지고 있다.
순수 데이터값은 기본적인 데이터 유형이나 간단한 속성을 의미하며, 고유한 식별성을 가지지 않는다.
위와 같은 경우는 ItemID가 간단하므로 Product Specification의 속성으로 넣어도 문제가 없다.
그러나 위와 같은 경우에는 currentRegister가 무엇을 뜻하는지 간단하지 않고 외래키로써 사용될 수도 있다.
이 경우에는 분리하여 관계 이름을 정의하는 편이 좋다.
예시
위와 같은 Process-Sale 관련된 속성들이 있다고 하자.
위와 같은 Process Sale 시나리오로 나타낼 수 있다. 한번 읽어보며 이해해보자.
'학교강의필기장 > OOP' 카테고리의 다른 글
Interaction Diagram - Sequence Diagram (0) | 2023.12.11 |
---|---|
Interaction Diagrams - Communication Diagram (0) | 2023.12.10 |
System Sequence Diagram (0) | 2023.12.10 |
Use Case Diagram (0) | 2023.12.10 |
2. UML (1) | 2023.10.29 |