본문 바로가기
IT 기본개념

[IT구축] MDA(Model Driven Architecture)

by 라이프해커 김탁구 2022. 12. 1.
반응형

1. MDA(Model Driven Architecture) 개요

1) 정의

- 모든 컴포넌트 기술 요소의 표준 메타모델을 정의하고 이를 기반으로 각 구성요소를 정의함으로써 호환성 및 시스템 간 자동성을 보장하고자 하는 소프트웨어 개발기술(OMG제안)
- 메타모델을 기반으로 구현환경에 독립적인 시스템을 모델링하고 이를 구현 환경 종속적인 모델링을 매핑 함으로써 구현 단계에서의 생산성 향상, 표준 메타모델에 기반을 둔 시스템의 일반적인 호환성 확보 가능한 아키텍처
2) MDA 등장 배경
- 기존미들웨어 프레임워크의 한계 : CORBA, J2EE, .NET등이 컴포넌트 기반으로 등장했지만 각각의 표준을 기반으로 구현되어 상호연동에 문제 발생
- 컴포넌트도입을 위한 표준 필요 : 각각의 미들웨어 상에서 동작하는 여러 종류의 컴포넌트의 표준화 및 상호운용성의 문제제기
- 개발 페러다임의 변화 : 빠른 시장 대응(Time to Market), 상호운용성, 개발 생산성, 유지보수성
- CORBA의 복잡성 : OMG에서는 개방형 객체표준인 CORBA를 표준으로 탄생시켰지만 무겁고 복잡한 표준규격으로 시장에서 외면됨
3) MDA의 장점
- 구현 자동화 : 메타모델을 이용하여 구현공정의 대부분을 자동화할 수 있는 구조
- 재사용성 : 프로젝트 진행 전체결과를 재사용 가능 (분석, 설계, 구현 등)
- 이식성 : 구현환경과 독립적으로 정의되므로, 이식성(Portability)을 증가

 

2. MDA의 구성

1) MDA의 관련표준 메타모델 구성요소

구분 내용
MOF - Meta Object Facility
- 다른 메타모델을 정의하기 위한 메타-메타모델로 UML CWM MOF 기반메타모델, MOF는 모델 저장소 역할
UML - Unified Modeling Language
- OMG에 의해 표준화된 객체지향 분석 및 설계표준으로 구현환경에 무관하게 표준화된 방법으로 시스템을 모델링
CWM - Common Warehouse MetaModel
- 데이터웨어하우징 영역에서 DW아키텍처를 정의한 메타모델로 데이터 소스, 타깃, 영역간 데이터 변환 을 위한 표준 모델제시

2) MDA의 모델 분류

구분 내용 비고
비즈니스 모델 - 업무를 기술하는 영역 금융, 제조 등
PIM 모델
(Platform Independent model)
- 기술 플랫폼에 독립적으로 기술된 모델
- 메타모델 기반의 호환성 확보
기본모델
PSM 모델
(Platform Specific model)
- 기술 플랫폼에 종속적인 모델
- 구현 모델로 자동변환 하여 생산성 향상
상세모델

3. MDA기반 개발 공정

1) MDA를 적용한 개발 프로세스

(1) 비즈니스 요구사항 정의 : 어플리케이션에 대한 비즈니스 요구사항 정의 (CIM)
(2) 도메인 모델에 대한 UML작성 : 특정기술(J2EE, .NET, CORBA 등)에 종속되지 않는 모델 작성, UML로 비즈니스 서비스와 컴포넌트 표현 (PIM)

(3) 특성기술과 관련된 UML 작성 : PSM은 직접 작성할 수도 있고 MDA 지원 툴을 이용해서 PIM에서 자동으로 만들어내거나 또는 만들어진 모델을 수정하는 방식으로 작업 (PSM)
(4) MDA 지원도구 이용 : 현재 J2EE의 경우에는 MDA 툴들이 대부분의 서블릿, JSP, EJB와 관련한 코드 자동 생성 (Code)

2) 모델 변환의 종류

변환 설명
PIM to PIM - PIM에서 PIM으로의 변환은 PIM이 개발 단계에서 좀더 상세화되는 경우.
- 상세화가 이루어지더라도 변환된 PIM에 특정 기술관련 사항이 기술되지 않음
PIM to PSM
 
- PIM이 실제 시스템의 기능을 충분하게 기술하고 있다면 기술 종속적인 정보를 추가하여 PSM으로 변환
- 변환된 PSM UML로 기술
PSM to PSM
 
- 상세화 관계
- 이 변환에서는 실제 구현과 관련된 정보 포함
예를 들면 컴포넌트가 실제로 실행되기 위한 컨테이너 정보, 설정 정보, 배포 정보를 추가하는 것이 이러한 변환에 해당
PSM to PIM - 기존의 시스템의 구현 상황을 추상화하여 PIM 모델을 얻어내는 과정

 

4. MDA/MDD 적용 방안 및 향후 과제

1) MDA/MDD 적용방안
- CMM(Capability Maturity Model) 혹인 SPICE(Software Process Improvement and Capability Determination)등의 소프트웨어 프로세스 평가모델이 제시하는 바와 같은 점진적 단계 도입
- 기술변화에 따라 새로운 UML Profile 생성 필요
- Legacy 시스템을 PIM 변환 또는 Wrapping 하기 위한 방법 개발
- 개발자들의 이해가 쉬운 OMG 표준 필요
2) MDA/MDD 향후 과제
- 시스템 설계와 구현의 분리를 SW 개발의 방향으로 자리매김하기 위해서는 OMG의 지속적인 표준화 작업 및 적용사례의 발굴이 필요
- 기존 I-Case의 전철을 밟지 않도록 하는 것이 중요

 

※ 참고 : PIM

1. PIM 개발원칙

- 플랫폼 독립적인 설계모델
- 정확한 요구사항을 모델링하기 위한 고객 입장에서 요구사항을 기술하고 모델링
- 모델은 각 비즈니스 규칙에 따라 정확하고 명료하게 기술
- PIM모델은 비즈니스 규칙이 바뀌지 않는 이상 변경되지 않도록 설계
- PIM모델을 PSM을 거쳐 소스코드까지 변환시켜 완전한 시스템을 구축할 수 있도록 구현

2. PIM 구축의 기술요소

1) Executable UML : Action Semantics를 정의하고 상태 머신을 이용해 동적인 부분을 보다 상세히 기술
2) CWM(Common Warehouse Metadata) : 스키마 모델 변환에 대한 정의
3) OCL(Object Constraint Language) : 시스템의 비즈니스 규칙과 흐름을 기술
4) QVT(Query, View And Transformations) : PIM에서 PSM으로, 그리고 PSM에서 소스코드로 변환시키는 작업을 위한 표준 변환 정보를 정의하며, 효과적인 PIM을 구축하는 데는 여러 설계 패턴들이 존재하며 PSM으로 변환하기 위해서 변환 정보를 기술하기 위한 QVT가 그 핵심적인 역할을 수행함

 

※ 참고: PSM

1. PSM 특징

- PIM 모델이 완성되면 이 모델 정보는 MOF저장소에 저장되고 변환 정보에 기술된 내용에 따라 특정 플랫폼에 대한 PSM인스턴스를 생성
- 하나의 PIM은 멀티 플랫폼 형태의 PSM으로 진화
- 2개 이상의 PSM모델이 구축되면 각 PSM 모델 간에는 브릿지를 통해 서로 인터페이스를 함

2. PSM 개발절차

- 대상 플랫폼을 선택 → 런타임 환경과 구성정보를 기술 → 특정 기술 및 미들웨어 플랫폼의 형태로 변환

 

반응형

댓글