개발 프로젝트의 핵심 파트는 개발되는 소프트웨어나 시스템에 관련된 컨텍스트 또는 도메인을 잘 이해하는 것입니다. 도메인은 항상 솔루션 도메인 정의의 선구자로 간주되는 문제점 도메인을 참조합니다. 도메인 설명에는
많은 형식이 있을 수 있습니다. 그러나 해당 도메인의 모델을 작성하는 것은 이해를 돕고, 이해 당사자(stakeholder)가 도메인에 대한 공통 견해를 공유하도록 도우며 솔루션 도메인의 범위 지정을 위한 기초를
제공하고, 이후의 분석 및 디자인 타스크에 대한 유용한 입력을 제공합니다.
사람들은 도메인 모델링에 대한 서로 다른 생각을 갖고 있으며 "도메인 모델"이라는 용어는 매우 과용되고 있습니다. 도메인 모델은 특정 도메인의 다양한 기능, 도메인에 있는 기능의 공통성 및 다양성, 도메인에서
다루는 정보 등을 설명할 수 있습니다. 따라서 이 영역을 다음의 세 가지 기본 활동으로 유용하게 범주화할 수 있습니다.
도메인 모델은 조직이 비즈니스를 수행할 수 있는 도메인의 모델입니다. 따라서 실제에서 하나의 조직을 위한 도메인은 해당 도메인에서 비즈니스를 수행하는 다른 조직에 대한 도메인과 동일해야 합니다. 그러나 도메인
모델의 세부화 레벨과 특정 방법의 컨텍스트에서 모델을 사용하는 방법, 이 두가지 요소의 결과로 도메인 모델링이 변동합니다. 기본적으로 도메인 모델 용어는 도메인 및 도메인의 기본 관계의 개념을 나타내기 위해 작성된
클래스 다이어그램을 언급하는데 사용됩니다. 일반적으로 도메인 모델 용어에는 속성을 가진 클래스와 오퍼레이션이 개념적인 도메인 요소를 나타내기 위해 포함됩니다. 이 모델에는 비정규 정보의 어노테이션이 있을 수 있고,
상위 레벨 비즈니스 유스 케이스에 의해 지원받을 수 있습니다.
때로 도메인 모델링은 도메인에서 사용 중인 기존 소프트웨어 시스템에 대한 이해를 포함하기도 합니다. 이런 경우 도메인 모델링의 대부분의 초점은 현재 소프트웨어에서 제시하는 문제점 도메인의 관점에 대한 이해를
제공하기 위해 도메인 내 소프트웨어 시스템의 특성을 나타내는 모델 공통성 및 차이를 식별하는 데 맞춥니다. 도메인 모델링을 사용하여 어떤 소프트웨어 시스템이 시스템 방식으로 도메인에 있는 소프트웨어 시스템의 기능,
오브젝트, 데이터 및 관계를 모델링하는지 정의합니다. 결과는 다음과 같습니다.
-
도메인에서 사용된 소프트웨어 시스템의 기능에 대한 이해
-
도메인에 대한 다양한 이해 당사자(stakeholder)의 이해를 사로잡는 공통 용어
-
사용 중인 소프트웨어 시스템, 해당하는 기본 기능 및 관계에 대한 전체 문서
도메인 모델링의 핵심 산출물은 기본 목적에 대한 개요와 함께 도메인 모델의 기능 및 엔티티를 설명하는 데 사용되는 요소를 캡처하는 광범위한 도메인 사전입니다.
자세한 정보는 아티팩트: 비즈니스 분석 모델을 참조하십시오.
도메인 분석은 "기존 시스템 및 해당하는 개발 히스토리에 대한 연구, 도메인 전문가로부터 획득한 지식, 기본 이론 및 도메인내 신기술을 기반으로 도메인의 관련 정보를 식별, 수집, 구성 및 표시하는
프로세스"입니다[CMU/SEI-90-TR-21].
도메인 분석에서는 "고려 대상인 도메인을 신중하게 제한하고, 도메인에 있는 시스템의 공통성과 차이를 고려하며, 도메인에 있는 다양한 요소간의 관계에 대한 이해를 구성하고, 유용한 방법으로 이 이해를 표시해야
합니다"[CARDS94].
분석할 도메인 모델의 양식과 분석을 위한 다른 목표에 따라 도메인을 분석할 수 있는 많은 다른 방법이 있습니다. 예를 들어 일부 기법은 제품군의 공통성 및 차이 분석에 초점을 맞춥니다. 기능 지향 도메인
분석(FODA)은 관련된 소프트웨어 시스템의 클래스내에서 명확하게 사용자에게 표시되는 기능을 식별하는 데 목표를 두고 있습니다. 다른 도메인 분석 기법은 특정 시점이나 도메인내 관심사항에 초점을 맞춥니다. 인식
작업 및 안전 분석(CWSA)에서는 사람들이 수행하는 작업, 결정 및 시스템의 부적절한 안전 식별을 지원하는 데 사용하는 전략에 초점을 맞춥니다.
도메인 엔지니어링은 더 높은 효율성을 가능하게 하고 동일한 시스템 제품군의 실현에 재사용하기 위한 접근 방식입니다. 도메인 엔지니어링에는 소프트웨어 코어 자산을 빌드하기 위한 모든 타스크가 포함됩니다. 이
타스크에는 하나 이상의 도메인 식별, 도메인내 변동 캡처, 적절한 디자인 구성, 요구사항을 재사용 가능한 컴포넌트에서 만들어진 시스템으로 변환하기 위한 메커니즘 정의 등이 포함됩니다. 이 타스크의 제품 또는
소프트웨어 자산은 도메인 모델, 디자인 모델, 도메인 특정 언어, 코드 생성기 및 코드 컴포넌트입니다. 조직에서 재사용하기 위해 시스템 방식의 접근 방식을 작성하는 데에는 이 타스크 세트가 기본적입니다.
[CARDS94] CARDS: Nilson, Roslyn; Kogut, Paul; & Jackelen, George Component Provider's and Tool Developer's
Handbook Central Archive for Reusable Defense Software (CARDS). STARS Informal Technical Report
STARS-VC-B017/001/00. Unisys Corporation , March 1994.
[CMU/SEI-90-TR-21]Feasibility Study (CMU/SEI-90-TR-21, ADA 235785).
[EVANS03] E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, 2003.
[FODA] Kang, Kyo C.; Cohen, Sholom G.; Hess, James A.; Novak, William E.; & Peterson, A. Spencer
Feature-Oriented Domain Analysis (FODA)
[SEI] Domain Engineering at the Software Engineering Institute:
http://www.sei.cmu.edu/domain-engineering/domain_eng.html
|