객체지향개발론 - 도메인 모델

Jay_u·2022년 11월 29일
0

객체지향개발

목록 보기
5/11
post-thumbnail

도메인 모델이란
개발해야 하는 도메인의 개념 클래스 또는 실제 객체들의 시각적 표현

도메인 모델은 소프트웨어 컴포넌트가 아니라 실세계 개념 클래스들의 표현이다. 소프트웨어 클래스 또는 책임을 갖고 있는 소프트웨어 객체를 나타내는 다이어그램 집합이 아니다.

네모 : 도메인 모델 혹은 객체
네모 아래 : 속성
선 : 연관을 의미

주의할 점
도메인 모델은 클래스다이어그램이 아니다. 소프트웨어 아티팩트나(예 Database) 소프트웨어 클래스(함수()를 적는 경우)를 표현하지 않는다.

도메인 모델의 핵심은 개념 클래스이다. 개념 클래스란 하나의 생각, 사물 혹은 객체로 세 가지 측면에서 고려하는 것을 의미한다.

상징적인 네이밍을 지어야 하고 개념 클래스의 의도를 반영하여 정의를 해야 하며 개념 클래스의 집합으로 도메인 모델이 이루어져야 한다.

개념 클래스를 식별하는 방법
1. 기존의 모델을 재사용하거나 수정한다.
2. 분류 리스트 사용
3. 명사 어구로 식별

도메인 모델 생성 절차
1. 개념적 클래스를 식별한다. (위 방법 사용)
2. 이들을 UML 클래스 다이어그램으로 그린다.
3. 연관관계를 추가한다.
4. 속성을 추가한다.(개념 클래스를 이루고 있는)

예시 '판매처리에 대한 개념 클래스 식별(명사 어구)

명세 개념 클래스

명세 개념 클래스가 필요한 이유

  • 아이템 또는 서비스의 예가 현재 존재하는가에 무관하게 설명이 있어야 할 때
  • 인스턴스를 삭제하는 것이 유지해야 할 정보의 손실을 가져올 때
  • 반복적 또는 중복 정보를 감소 시킬 때

사용 예시)

비행기 클래스와 공항 클래스는 비행기는 공항으로 비행한다는 설명으로 연관되어 있다.

하지만 비행기가 꼭 비행을 하든 안하든 비행기에 대한 설명이 필요하다.

이처럼 비행기가 꼭 비행 일정이 있지 않아도 비행기의 기종이 있는 클래스를 따로 만들어 준다.

연관관계
클래스간 연관관계를 설명하기 위해 연관이름을 지어준다.
연관관계 이름은 보통 왼쪽에서 오른쪽이지만 >, < 화살표를 활용해서 방향을 정해주기도 한다. 꼭지쪽으로 향해서 읽는다.

다중성
연관 선의 양 끝에 표현

* : zero or more, "many"
1..* : one or more
1..50 : one to 50
3 : 3을 의미
1,2,3 : 1 또는 2 또는 3

다중성 해석방법

예시)

Flight는 공항으로 향하거나 공항에서 오는 두 가지 관계를 가진다.
이때 비행기 입장에서 출발하거나 도착하는 공항은 무조건 1개이다.
공항입장에서 비행기는 0이거나 많다.

profile
정확한 정보를 전달할려고 노력합니다.

0개의 댓글