Model Driven Design

이정훈·2024년 8월 13일

요약

MDD는 모델을 중심으로 시스템을 개발하는 방법론.
모델이 코드 생성을 주도.

Model Driven Design

Model-driven design(MDD)는 소프트웨어 개발 방법론입니다.
시스템의 디자인이 모델들의 집합으로 나타내고 모델들은 시스템의 개발을 위해 사용됩니다.
MDD의 주요 장점은 디자인과 구현을 분리시켜 주는 것입니다.
모델은 시스템의 디자인을 나타내고 코드는 모델에서 생성되기 때문입니다.
이는 시스템을 유지보수하는 것과 개발하는 것을 쉽게 만들어 줍니다.
또한 MDD는 모델을 통해 디자인 오류나 비일관성을 잡아주기 때문에 코드가 더 좋은 품질을 가지게 됩니다.

Concepts

  • Domain
    문제의 여러 관심 영역 중 하나를 말합니다. 예를 들어, 관심 영역이 비즈니스라면, 이는 비즈니스 도메인이 됩니다. 문제 도메인이라는 용어는 더 일반적인 용어로, 하나 이상의 관심 영역을 반영합니다.

  • Domain Models
    특정 문제 또는 관심 영역과 관련된 모든 주제를 표현한 모델입니다. 이 모델은 문제를 더 작은 하위 문제로 나누고, 각 하위 문제의 주요 개념들을 추출하여 서로 연결함으로써 문제를 설명합니다.

  • Conceptual Model
    도메인 모델을 기반으로 하여 문제에 대한 가능한 솔루션을 제안하는 추상화입니다. 이 모델은 물리적 시스템의 추상화이며, 개발자가 다양한 엔티티, 속성, 관계 및 제약 조건을 설명하는 데 사용됩니다.

What is Moodel driven design/model driven architecture?

MDA는 시스템 사양 및 상호운용성을 공식 모델을 사용하여 설명하는 접근 방식을 통해 비즈니스 결정(애플리케이션이 무엇을 하는가)과 소프트웨어 지향적 결정(어떻게 하는가)을 분리합니다. 이를 통해 플랫폼에 독립적인 모델을 사용하여 솔루션의 비즈니스 기능을 설명하며, 이 모델은 특정 프로그래밍 언어에 구애받지 않고 명세에 따라 설명됩니다.

Model driven software development

모델 중심 소프트웨어 개발(MDSD)는 모델 중심 아키텍처(MDA)로 설명된 애플리케이션을 개발하는 방법입니다. MDSD는 다음으로 구성됩니다

  • Domain-specific modeling language(DSML)
    도메인 내에서 개념 간의 관계, 제약 조건 및 의미를 정의하는 모델 및 메타 모델입니다.
  • Transformation engine and generators
    자동 또는 반자동 변환 과정을 통해 소스 코드를 준비합니다.

최종 제품은 모델을 반영하는 플랫폼 특정 코드가 될 것입니다. 이는 개념적 일관성을 보장할 뿐만 아니라 애플리케이션의 기능적 개발을 돕습니다. 또한, 이전 작업의 재사용, 플랫폼 독립적 모델을 도메인 특정 개념 모델로 변환하는 등 여러 장점이 있습니다.

결론

결론적으로, MDA는 문제를 도메인 모델로 정의하고, 이를 기반으로 개념 모델을 설계하여 최종적으로 소스 코드를 생성하는 프로세스를 포함합니다. 이는 소프트웨어 개발의 일관성과 효율성을 높이는데 중요한 역할을 합니다.

profile
기록으로 흔적을 남깁니다.

0개의 댓글