모형주도공학
Model-driven engineering![]() |
시리즈의 일부(on) |
소프트웨어 개발 |
---|
MDE(Model-Driven Engineering)는 특정 문제와 관련된 모든 주제의 개념적 모델인 도메인 모델을 만들고 활용하는 데 초점을 맞춘 소프트웨어 개발 방법론입니다.따라서 컴퓨팅(즉, 알고리즘) 개념보다는 특정 애플리케이션 영역을 지배하는 지식과 활동의 추상적 표현을 강조하고 목표로 합니다.
MDE는 왕복 엔지니어링이라 불리는 소프트웨어 설계 접근법의 하위 분야입니다.MDE의 범위는 모델 중심 아키텍처의 범위보다 훨씬 넓습니다.[1]
개요
MDE 접근 방식은 시스템 간 호환성을 극대화함으로써(표준화된 모델 재사용을 통해), 설계 프로세스를 단순화함으로써(애플리케이션 도메인에서 반복되는 설계 패턴의 모델을 통해) 생산성을 향상시키기 위한 것입니다.시스템 작업을 수행하는 개인과 팀 간의 커뮤니케이션을 촉진합니다(애플리케이션 도메인에서 사용되는 용어 및 모범 사례 표준화를 통해).예를 들어, 모델 기반 개발에서 소스 코드, 문서, 테스트 등과 같은 기술적 아티팩트는 도메인 모델에서 알고리즘적으로 생성됩니다.[2]
MDE에 대한 모델링 패러다임은 도메인에 익숙한 사용자의 관점에서 모델이 의미가 있고 시스템 구현을 위한 기반이 될 수 있다면 효과적인 것으로 간주됩니다.모델은 애플리케이션 도메인의 제품 관리자, 설계자, 개발자 및 사용자 간의 광범위한 커뮤니케이션을 통해 개발됩니다.모델이 완성에 가까워짐에 따라 소프트웨어와 시스템 개발이 가능해집니다.
보다 잘 알려진 MDE 이니셔티브는 다음과 같습니다.
- MDA(Meta-Object Facility), XMI, CWM, CORBA, Unified Modeling Language 등 여러 표준을 활용하는 객체 관리 그룹(OMG) 이니셔티브 모델 구동 아키텍처(MDA)(정확히 말하면, 현재 OMG는 모델 구동 아키텍처를 위해 액션 언어인 ALF와 함께 fUML이라는 UML의 하위 집합 사용을 장려합니다)cuture; 이전의 접근 방식은 대신 Executiveable UML과 OCL에 의존했습니다), 그리고 QVT.[3]
- 일반적인 용어로 표현되는 프로그래밍 및 모델링 도구의 Eclipse "에코시스템"(Eclipse Modeling Framework).이 프레임워크를 통해 OMG의 MDA 표준을 구현하는 도구를 만들 수 있지만, 다른 모델링 관련 도구를 구현하는 데 사용할 수도 있습니다.
역사

MDE를 지원하는 최초의 도구는 1980년대에 개발된 CASE(Computer-Aided Software Engineering) 도구였습니다.통합 개발 환경(IDE - StP), 고차 소프트웨어(현재 Hamilton Technologies, Inc., HTI), Cadre Technologies, Bachman Information Systems 및 Logic Works(BP-Win 및 ER-Win)와 같은 회사들이 이 분야의 선구자였습니다.
미국 정부는 IDEF 규격을 만드는 모델링 정의에 참여했습니다.모델링 정의의 여러 가지 변형(Booch, Rumbaugh, Jacobson, Gane and Sarson, Harrel, Shlaer and Mellor 등 참조)을 통해 결국 UML(Unified Modeling Language)을 만들었습니다. UML 구현을 위한 제품인 Rational Rose,Rational Corporation(Booch)은 소프트웨어 개발에서 자동화 수율이 더 높다고 응답했습니다.이 추상화는 문제 공간에 더 초점을 두고 단순한 모델을 촉진합니다.실행 가능한 의미론과 결합하면 가능한 전체 자동화 수준이 향상됩니다.OMG(Object Management Group)는 MDA(Model-Driven Architecture)라는 일련의 표준을 개발하여 이러한 고급 아키텍처 중심 접근 방식을 위한 기반을 구축했습니다.
이점
Douglas C에 의하면. 모델 기반 엔지니어링 기술인 Schmidt는 3세대 언어가 플랫폼의 복잡성을 완화하고 도메인 개념을 효과적으로 표현하지 못하는 문제를 해결할 수 있는 유망한 접근 방식을 제공합니다.[4]
도구들
모델 구동 공학을 위한 주목할 만한 소프트웨어 도구는 다음과 같습니다.
- 카네기-멜론 소프트웨어 엔지니어링 연구소의 AADL
- 오베오에서 오픈소스 코드 생성기 가속
- 액티프소스
- AgileMDE Ltd의 오픈소스 MDE 툴셋인 AgileUML
- ATLAS 변환 언어 또는 ATL, 오베오의 모델 변환 언어
- 상호 운용성을 만들기 위한 MDE 프레임워크인 DUALLY
- EMF(Eclipse Modeling Framework
- Sparx 시스템s의 엔터프라이즈 아키텍트
- 실시간 객체지향 모델링 표준의 오픈소스 구현 방법
- 일반이클립스 모델링 시스템
- GeneXus는 지식 기반, 선언형, 다중 플랫폼, 다중 언어 개발 솔루션
- 그래픽 모델링 프레임워크(GMF)
- 제트브레인의 메타프로그래밍 시스템인 제트브레인 MPS
- 매직 드로우 프롬 노 매직 주식회사
- KU Leweven의 MERODE Jermaid (교육)
- MetaCase의 MetaEdit+
- Phoenix 통합의 모델 센터
- 모델스피어 열기
- 컴퓨터웨어의 최적 J
- Vector Informatik의 PREEVision
- IBM 랩소디
- RISE Editor를 RISE에서 Bloom Software로
- SAP의 Power Designer
- MathWorks의 Simulink
- 두산 로디나의 소프트웨어 아이디어 모델러
- 사용자 지정 그래픽 모델링 워크벤치를 만드는 Sirius an Eclipse Open Source 프로젝트
- 볼랜드 출신의 투게더 건축가
- 움브렐로 by KDE
- 오타와 대학교 움플
- Uniface from Compuware
- YAKINDU 상태도 도구 이클립스 위에 오픈소스 도구 빌드
참고 항목
- 애플리케이션 라이프사이클 관리(ALM)
- BPMN(Business Process Model and Notation)
- BDD(Business Driven Development)
- 도메인 중심 설계(DDD)
- 도메인별 언어(DSL)
- 도메인별 모델링(DSM)
- 도메인별 다중 모델링
- 언어 중심 프로그래밍(LOP)
- 통합 모델링 언어 도구 목록
- 모델 변환(예: QVT 사용)
- 모델 기반 테스트(MBT)
- 모델링 성숙도(MML)
- 모델기반시스템공학(MBSE)
- 서비스 지향 모델링 프레임워크(SOMF)
- 소프트웨어 팩토리(SF)
- 스토리 중심 모델링(SDM)
- 개방형 API, HTTP Interoperation 및 REST APIc 모델 및 동작 설명을 위한 오픈 소스 규격
참고문헌
- ^ "8 Reasons Why Model-Driven Approaches (will) Fail". InfoQ. Retrieved 2023-07-26.
- ^ Flatt, Amelie; Langner, Arne; Leps, Olof (2022). Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas (1st ed.). Heidelberg: Sprinter Nature. ISBN 978-3-031-14131-7.
- ^ Object Management Group (2006-05-24). "OMG Trademarks". Retrieved 2008-02-26.
- ^ Schmidt, D.C. (February 2006). "Model-Driven Engineering" (PDF). IEEE Computer. 39 (2). doi:10.1109/MC.2006.58. S2CID 10006139. Archived from the original (PDF) on 2006-09-09. Retrieved 2006-05-16.Schmidt, D.C. (February 2006). "Model-Driven Engineering" (PDF). IEEE Computer. 39 (2). doi:10.1109/MC.2006.58. S2CID 10006139. Archived from the original (PDF) on 2006-09-09. Retrieved 2006-05-16."플랫폼의 복잡성과 3세대 언어가 이러한 복잡성을 완화하고 도메인 개념을 효과적으로 표현하지 못하는 문제를 해결할 수 있는 유망한 방법은 MDE(Model-Driven Engineering) 기술을 개발하는 것입니다.."
추가열람
- 데이비드 S. Frankel, 모델 기반 아키텍처: 엔터프라이즈 컴퓨팅에 MDA 적용, John Wiley & Sons, ISBN 0-471-31920-1
- Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model Driven Software Engineering in Practice, Richard Sole(OMG 의장) 서문, Morgan & Claypool, 미국, 2012, 소프트웨어 엔지니어링에 대한 합성 강의 #1.182페이지ISBN 9781608458820 (페이퍼백), ISBN 9781608458837 (이북)http://www.mdse-book.com
- da Silva, Alberto Rodrigues (2015). "Model-Driven Engineering: A Survey Supported by a Unified Conceptual Model". Computer Languages, Systems & Structures. 43 (43): 139–155. doi:10.1016/j.cl.2015.06.001.
외부 링크
- 모델 중심 아키텍처: omg.org 의 비전, 표준 및 신흥 기술