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 개발절차
- 대상 플랫폼을 선택 → 런타임 환경과 구성정보를 기술 → 특정 기술 및 미들웨어 플랫폼의 형태로 변환
'IT 기본개념' 카테고리의 다른 글
[IT구축] SOA(Service Oriented Architecture) (0) | 2022.12.03 |
---|---|
[IT서비스] BI(Business Intelligence) (0) | 2022.12.02 |
[IT보안] ESM(Enterprise Security Management) (0) | 2022.11.30 |
[IT관리] 프로젝트 범위 관리(Scope Management) (0) | 2022.11.29 |
[IT품질] CMMI(Capability Maturity Model Integration) (0) | 2022.11.28 |
댓글