본문 바로가기
UML/UML

[객체지향 분석 및 설계] Elaboration단계 도메인모델

by Nov19 2019. 1. 10.
반응형


[객체지향 분석 및 설계] Elaboration단계 도메인모델

Elaboration 단계

Elaboration은 보통의 프로젝트가 진행되는 과정에서 다음과 같은 일들이 수행되는 일련의 초기 Iteration들.

 - 핵심적이고 위험요소가 있는 소프트웨어 아키텍처를 구현하고 테스트.

 - 대부분의 요구사항을 발견하고 안정화.

 - 주로 위험요소를 완화하거나 제거.


Elaboration단계는 여러 Iteration으로 수행되는데 이 동안

진지하게 조사, 

핵심 아키텍처를 프로그래밍,

테스트하며 구현, 

대부분의 요구 사항을 명확하게 하고 위험성이 큰 문제들을 다룸.


핵심 아키텍처를 구축하고, 높은 위험요소를 해결하며, 대부분의 요구사항을 정의하고, 전체적인 일정과 자원을 추정하는 활동.


Elaboration 에서의 핵심 아이디어와 최선의 실행기술

- 짧은 고정된 기간의 위험 주도 Iteration을 수행.

- 프로그래밍을 비교적 빨리 시작.

- 아키텍처의 핵심적이고 위험요소가 있는 부분을 적응할 수 있도록 설계하고 구현하며 테스트.

- 일찍, 자주 현실성 있는 테스트.

- 테스트 결과, 사용자, 개발자로부터의 피드백을 기반으로 적응.

Elaboration 단계의 각 Iteration 마다 대부분의 유스케이스와 요구사항을 상세하게 작성.


Elaboration의 산출물

산출물

설명

도메인 모델 도메인의 개념을 가시화.
설계 모델 로직 설계를 설명하는 다이어그램의 집합.
소프트웨어 아키텍처 문서 설계에서의 핵심 아키텍처 문제와 그 해결방안을 요약하는 학습지침.
데이터모델

데이터베이스 스키마, 객체, 비객체 표현 간의 패밍 전략 포함.

유스케이스 스토리보드, UI 프로토타입 사용자 인터페이스, 항해경로, 사용성 모델 등에 관한 설명


도메인 모델

객체 지향 분석에서 가장 중요하고 고전적인 모델.

한 도메인에서 중요한 개념들을 나타냄.

도메인 안에 존재하는 개념적 클래스나 실제 상황의 객체를 시각적으로 표현한 것.

오퍼레이션들이 정의되지 않은 클래스다이어그램을 사용하여 표현.

- 도메인 객체나 개념적 클래스

- 개념적 클래스 간의 연관관계

- 개념적 클래스의 속성


실세계에 존재하는 객체를 소프트웨어 관점이 아닌 개념적 관점에서 본 투시도.


도메인 객체는 비즈니스 로직이나 도메인 로직 메소드로 목표 도메인 공간에 존재하는 사물을 표현하는 소프트웨어 객체를 의미.


도메인 모델 생성방법

1. 개념적 클래스 찾기.

2. 이들을 UML 클래스 다이어그램안에 클래스로 그림.

3. 연관관계와 속성을 추가.


개념적 클래스를 찾는 방법

1. 기존의 모델을 재사용하거나 수정.

2. 분류리스트 사용

비즈니스 트랜잭션, 트랜잭션 라인 아이템, 트랜잭션이나 트랜잭션 라인아이템과 관련된 상품이나 서비스,

트랜잭션 저장소, 트랜잭션에 대한 사람이나 조직의 역할; 유스케이스에서 액터들, 서비스 장소

주목할 만한 이벤트, 기억할 필요가 있는 시간이나 장소

물리적객체, 사물에 대한 설명, 카탈로그, 사물, 컨테이너 안의 사물, 같이 협력하는 시스템, 

재정, 작업, 약정, 법률적 사항의 기록

재정관련 수단, 작업을 수행하기 위해 자주 참고하는 일정, 메뉴얼, 문서


3. 명사구 식별

언어학적 분석으로 명사와 명사구를 식별하여 이들을 개념적 클래스나 속성의 후보로 간주한다. 

단점은 자연어의 부정확성. 그래서 개념적 클래스 분류리스트와 혼합해서 사용하는 것이 좋다.


연관관계

클래스들 사이의 의미 있고, 관심있는 연결을 표현하는 것.

어떤 객체들이 하는 일 사이의 관계를 기억할 필요가 잇는가에 대한 문제.

연관관계는 대문자로 시작하는 연관관계 이름과 함께 클래스간의 직선 연결선으로 표현

연관관계 선 양 끝에는 클래스 인스턴스들 사이의 숫자적인 관계를 의미하는 다중성 표시.

연관관계는 본래 양방향이며, 이는 각 클래스의 인스턴스들 사이에서 논리적 흐름이 양방향으로 가능함을 의미.


속성

객체의 논리적인 데이터 값.

요구사항에서 제안되었거나 기억할 필요가 있는 정보를 속성에 포함.



반응형

댓글