모델 기반의 소프트웨어 개발방식, MDA(Model Driven Architecture)

    MDA는 OMG(Object Management Group, 객체 관리 그룹)가 그동안의 시행착오 끝에 만들어낸 독립적인 소프트웨어 자동화 기술이다. 한마디로 코드를 자동으로 찍어낼 수 있게 하기 위한 기술이라는 것인데 이러한 기술을 위해서는 모델을 종속적으로 설계하지 않고, 객관적으로 설계 한 후 플랫폼에 맞춰서 모델에 따른 코드를 생산한다. 


    환경이 Java라면, 자바코드를 생산하고, 환경이 C++이라면 C++의 코드를 생산한다고 이해를 하면 된다. MDA는 현재 금융같이 대규모로 코드를 생산해야 되는 곳에서 사용하고 있으며, 사실 MDA까지는 아니지만 전자정부 프레임워크같은 경우 개발자의 개발 기간을 확 낮추는 코드를 생성해주는 컴포넌트 기반의 코드 생성도 있다. 


    미래에는 개발자도 먹고 살기 힘든 시점이 올 수 있는데(4차 산업 혁명에서의 가장 큰 수혜자라고 생각할 지 모르지만, 가장 큰 수혜자는 분석가와 설계자라고 생각한다. 단순한 코더는 코드 제너레이터와 이러한 MDA같은 모델로 인해서 불 필요한 시대가 올지 모른다) MDA같은 기술이 한 몫을 하는 경우가 생길 수 있다. 개발자가 만든 프로그램으로 개발자의 직업을 잃게 하는 아이러니한 현상이 올지 모른다.




    1. 타모델 기반의 구현공정 자동화, MDA의 개요


    가. MDA(Model Driven Architecture)의 개념

    - 컴포넌트 플랫폼에 독립적인 기본설계 모델(PIM)을 정의하고, 이를 기반으로 원하는 플랫폼에 맞는 컴포넌트 S/W를 생성하는 컴포넌트 기술의 표준구조

    - 모든 컴포넌트 기술 요소의 표준 메타모델을 정의하고 이를 기반으로 각 구성요소를 정의함으로써 호환성 및 시스템간 자동성을 보장하고자 하는 소프트웨어 개발 기술

    - 메타모델 기반으로 기술 플랫폼과 분리하여 개발하고, 실제 구현과 관련된 모델은 매핑을 통해서 기술 플랫폼에 종속적 모델로 변환하는 소프트웨어 개발 아키텍처



    나. MDA의 필요성


    • CORBA의 복잡성 : OMG에서 개방형 객체표준인 CORBA를 탄생시켰지만, 무겁고 복잡한 규칙으로 외면
    • 기존 미들웨어 한계 : 미들웨어간 각자의 표준을 기반으로 구현되어 상호연동 문제 발생
    • 개발 패러다임 변화 : Time To Market 대응, 상호운용성, 생산성, 유지보수성



    2. MDA 메타모델 및 구성요소


    가. MDA 메타모델


    나. MDA 메타모델 구성요소


    MOF(Meta Object Facility)

    - 모델 정보에 대한 표준적인 저장소 제공
    - 표준화된 모델 정보를 접근하는 구조 정의

    UML(Unified Modeling Language)
    - 객체 및 컴포넌트 시스템을 표현하기 위한 표준 언어
    - 구현 환경에 무관하게 표준화된 방법으로 시스템 모델링



    CWM(Common Warehouse Meta Model)
    - 데이터 저장소에 대한 표준을 정의하고, 데이터베이스 모델과 스키마 변환 모델, OLAP, 데이터마이닝 모델에 대한 표준화된 방법 제공

    XMI (XML Metadata Interface)
    - UML로 기술된 모델 정보와 XML 표현에 대한 표준
    - MOF 기반 모델을 XML로 매핑하기 위한 표준 사양


    3. MDA를 이용한 소프트웨어 개발방식, MDD


    가. MDD(Model Driven Development)의 개념

    - 소프트웨어를 쉽고 빠르게 개발할 수 있도록 플랫폼 종속적인 SW 모델로 자동 변환하고 소스코드를 자동 생성하는 개발방법


    나. MDD 프로세스





    다. MDD의 모델 변환 방법



    • PIM to PIM : 개발단계 PIM 상세화
    • PIM to PSM : 기술 종속적 정보 추가
    • PSM to PSM : 실제 구현 정보추가
    • PSM to PIM : 기존 시스템 리엔지니어링


    키워드

    MUCX(MOF / UML / CWMs / XMI), CIM, PIM, PSM


    댓글

    Designed by JB FACTORY