main visual
  • What is MDD
  • MDD의 특징 및 장점
  • Home
  • > About MDD
  • > What is Mdd

smart bms

설계자와 개발자간 의사소통의 어려움, 프로그램 코드와 산출물 불일치 등의 문제들을 완화하거나 해결하기 위해 코드 중심(Code-Centric) 개발 방식에 대한 대안으로 MDD(Model-Driven Development) 방식 도입을 고려하게 되었다.

MDD & MDA 개념

MDD란 소프트웨어 개발을 할 때 모델을 작성하면 모델로부터 프로그램 코드뿐만 아니 라 다양한 문서를 자동으로 생성하는 개발 방식이다. MDD의 특징은 소프트웨어 개발에 있어 모델을 가장 중요한 산출물로 간주하여 모델 중심으로 소프트웨어 개발을 진행한다 는 것이다. 따라서 소프트웨어 구축 시 모델을 잘 만드는 것에 시간과 비용을 집중한다. 이러한 MDD 개념을 실제 구현 가능하도록 하는 기반기술이 MDA(Model-Driven Architecture)이며, 2001년 OMG(Object Management Group)에서 공식적으로 발표하였다. OMG에서 제안한 MDA의 궁극적인 목표는 소프트웨어 개발의 전 과정에서 필요한 모델 링 기술에 대한 표준을 제정하는 것이다.

MDD를 지원하는 1 세대 Tool 들은 CASE(Computer-Aided Software Engineering) Tool 들로 1980년대 이미 출시가 되었다. 하지만 MDA에 대한 표준이 부족하여 CASE Tool간 의 호환이 되지 않고, 단기간 숙련이 어렵고, 높은 초기 투자 비용 대비 단기 성과가 미 비 하여 프로젝트 적용이 기피되었다.

그러나, 1997년 모델링 언어인 UML(Unified Modeling Language) 1.0 출시 후 2005년 UML 2.0 출시, 2001년 OMG에서 MDD 기술 표준인 MDA 발표, 2004년 Eclipse 도구 플 랫폼 배포 그리고 모델에 상세 정보를 담을 수 있도록 DSL(Domain-Specific Language)이 정의되면서 MDD 지원을 위한 기술 환경이 마련되었다. 이러한 기술 환경 위에서 MDD 를 지원하는 Tool 들은 프로젝트에 적용되면서 지속적으로 발전하였고, 최근에는 다양한 프로젝트에 적용될 수 있을 정도로 관련 기술과 MDA Tool이 성숙하였다.

새로운 패러다임으로!

이제는 Assembler> Procedural > Object Oriented > Frameworks 의 패러다임을 지나 MDD로 프로그래밍의 패러다임이 바뀌고 있다고 말해도 과언이 아니다.