맨위로가기

모델 기반 개발

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

모델 기반 개발(MDE)은 모델을 사용하여 소프트웨어 및 시스템을 개발하는 접근 방식이다. 1980년대 컴퓨터 지원 소프트웨어 공학(CASE) 도구에서 시작되었으며, 통합 모델링 언어(UML)와 모델 중심 아키텍처(MDA) 표준을 거쳐 발전했다. MDE는 플랫폼 복잡성을 해결하고 도메인 개념을 효율적으로 표현하는 데 기여하며, 다양한 모델링 도구를 활용하여 구현된다.

더 읽어볼만한 페이지

  • 통합 모델링 언어 - 유스 케이스
    유스 케이스는 시스템과 액터 간 상호작용을 통해 시스템 목표 달성에 기여하는 동작들을 나타내는 요구 사항 캡처, 모델링, 명세 기법으로, 객체 지향 소프트웨어 공학에서 기능 요구 사항을 캡처하는 데 중요한 역할을 하며 다양한 분야에서 활용된다.
  • 통합 모델링 언어 - 시퀀스 다이어그램
    시퀀스 다이어그램은 객체 간의 상호 작용을 시간 순서대로 시각화하는 다이어그램으로, 액터, 메시지, 생명선 등의 구성 요소를 포함하며, UML의 상호 작용 프래그먼트를 통해 복잡한 상호 작용 모델링이 가능하다.
  • 시스템 공학 - 물류
    물류는 고객의 요구를 충족시키기 위해 재화, 서비스 및 관련 정보를 발생 지점에서 소비 지점까지 계획, 실행, 통제하는 과정이며, 전자상거래 발달과 함께 전자 물류의 중요성이 커지고 물류 자동화 및 시스템, 교육 기관들이 발전하고 있다.
  • 시스템 공학 - 제어 시스템
    제어 시스템은 시스템의 출력을 원하는 값으로 유지하거나 목표를 달성하기 위해 동작을 조절하는 시스템으로, 다양한 제어 방식과 기법, 하드웨어를 통해 구현되어 소형 장치부터 대규모 산업 공정까지 광범위하게 사용된다.
모델 기반 개발
모델 구동 공학
모델 구동 개발의 추상화 수준
모델 구동 개발의 추상화 수준
개요
유형소프트웨어 개발 방법론
하위 유형자동화, 모델 기반 개발
관련도메인 특화 언어, 모델 변환, 코드 생성, 소프트웨어 공학, MDA
개념
목표추상화 수준을 높이고, 자동화를 증가시키고, 생산성을 향상시키고, 복잡성을 관리함
핵심 아이디어모델을 주요 산출물로 취급하고, 모델 변환을 통해 다른 모델과 코드를 생성함
추상화 수준계산 독립 모델 (CIM), 플랫폼 독립 모델 (PIM), 플랫폼 특정 모델 (PSM)
주요 활동모델 정의, 모델 변환 규칙 정의, 코드 생성
장점 및 단점
장점생산성 향상, 유지보수 용이성, 플랫폼 독립성, 재사용성 향상
단점초기 투자 비용, 복잡성 관리, 변환 규칙의 정확성 요구
적용 분야
산업 분야자동차 산업, 항공 우주 산업, 금융 산업, 통신 산업
사용 사례임베디드 시스템 개발, 웹 애플리케이션 개발, 엔터프라이즈 애플리케이션 개발
기술 및 도구
모델링 언어UML, SysML, DSL
변환 기술ATL, QVT, MOFScript
도구Eclipse Modeling Framework (EMF), Papyrus, MagicDraw
관련 표준 및 기구
표준OMG, ISO/IEC
기구OMG, INCOSE

2. 역사

모델 기반 개발(MDE)은 1980년대 컴퓨터 지원 소프트웨어 공학(CASE) 도구에서 시작되었다. Integrated Development Environments(IDE), Higher Order Software(현 Hamilton Technologies, Inc., HTI), Cadre Technologies, 백만 정보 시스템, 로직 워크스 등이 선구적인 기업이었다.

미국 정부는 IDEF 규격을 제정하며 모델링 정의에 참여했다. 부치 방법, 럼바우, 제이콥슨, Gane and Sarson, Harel, 슐레어와 멜러 등 다양한 모델링 정의를 거쳐 통합 모델링 언어(UML)가 탄생했다. 래셔널은 UML 구현 제품인 래셔널 로즈를 개발하여 소프트웨어 개발의 추상화를 높이고 자동화를 이끌었다. 이는 문제 중심의 간단한 모델 설계를 가능하게 했고, 실행 가능한 의미론과 결합하여 자동화 수준을 향상시켰다. 객체 관리 그룹(OMG)은 모델 기반 아키텍처(MDA) 표준을 개발하여 이러한 접근 방식의 기반을 마련했다.[6]

2. 1. 초기 CASE 도구

컴퓨터 지원 소프트웨어 공학(CASE) 도구를 지원하는 최초의 도구는 1980년대에 개발되었다. Integrated Development Environments(IDE – StP), Higher Order Software(현재 Hamilton Technologies, Inc., HTI), Cadre Technologies, 백만 정보 시스템, 로직 워크스 (BP-Win 및 ER-Win)와 같은 회사들이 이 분야의 선구자였다.

미국 정부는 모델링 정의에 관여하여 IDEF 규격을 만들었다.

2. 2. 표준화 노력

컴퓨터 지원 소프트웨어 공학(CASE) 도구는 1980년대에 개발된 모델 기반 개발(MDE)을 지원하는 최초의 도구였다. 이 분야의 선구자로는 Integrated Development Environments(IDE – StP), Higher Order Software(현재 Hamilton Technologies, Inc., HTI), Cadre Technologies, 백만 정보 시스템, 로직 워크스와 같은 회사들이 있었다.

미국 정부는 모델링 정의에 관여하여 IDEF 규격을 만들었다. 부치 방법, 럼바우, 제이콥슨, Gane and Sarson, Harel, 슐레어와 멜러 등 다양한 모델링 정의를 통해 결국 통합 모델링 언어(UML)가 만들어졌다. 래셔널 코퍼레이션(부치)은 UML 구현 제품인 래셔널 로즈를 개발했으며, 이는 소프트웨어 개발에서 더 높은 수준의 추상화를 제공하는 자동화를 이끌었다. 이러한 추상화는 문제 공간에 더 중점을 둔 더 간단한 모델을 촉진했으며, 실행 가능한 의미론과 결합하여 가능한 총 자동화 수준을 높였다. 객체 관리 그룹(OMG)은 모델 중심 아키텍처(MDA)라는 표준 세트를 개발하여 이러한 고급 아키텍처 중심 접근 방식의 기반을 구축했다.

2. 3. UML과 MDA



MDE를 지원하는 최초의 도구는 1980년대에 개발된 컴퓨터 지원 소프트웨어 공학(CASE) 도구였다. 이 분야의 선구자로는 Integrated Development Environments(IDE), Higher Order Software(현재 Hamilton Technologies, Inc., HTI), Cadre Technologies, 백만 정보 시스템, 로직 워크스와 같은 회사들이 있었다.

미국 정부는 모델링 정의에 관여하여 IDEF 규격을 만들었다. 여러 가지 모델링 정의(부치 방법, 럼바우, 제이콥슨, Gane and Sarson, Harel, 슐레어와 멜러 등 참조)를 통해 결국 통합 모델링 언어(UML)를 만들었다. 래셔널은 UML 구현 제품인 래셔널 로즈를 개발했으며, 자동화는 소프트웨어 개발에서 더 높은 수준의 추상화를 제공했다. 이러한 추상화는 문제 공간에 더 중점을 둔 더 간단한 모델을 촉진하며, 실행 가능한 의미론과 결합하여 가능한 총 자동화 수준을 높였다. 객체 관리 그룹(OMG)은 이 고급 아키텍처 중심 접근 방식의 기반을 구축하여 모델 기반 아키텍처(MDA)라는 표준 세트를 개발했다.[6]

3. 주요 개념 및 접근 방식

모델 기반 개발(MDE)의 모델링 패러다임은 도메인에 익숙한 사용자가 이해할 수 있고, 시스템 구현의 기반이 될 수 있으면 효과적인 것으로 간주된다. 모델은 제품 관리자, 설계자, 개발자 및 애플리케이션 도메인 사용자와의 광범위한 커뮤니케이션을 통해 개발된다. 모델이 완성 단계에 가까워지면 소프트웨어 및 시스템 개발을 가능하게 한다. 모델 기반 개발에서 소스 코드, 문서, 테스트 등과 같은 기술적 아티팩트는 도메인 모델에서 알고리즘적으로 생성된다.[2]

3. 1. 모델 중심 아키텍처 (MDA)

MDE 접근 방식은 시스템 간의 호환성을 극대화하고(표준화된 모델 재사용을 통해), 설계 프로세스를 단순화하며(애플리케이션 도메인에서 반복되는 설계 패턴 모델을 통해), 시스템 작업에 참여하는 개인 및 팀 간의 소통을 촉진하여(애플리케이션 도메인에서 사용되는 용어 및 모범 사례 표준화를 통해) 생산성을 높이는 것을 목표로 한다.[2]

MDE의 모델링 패러다임은 도메인에 익숙한 사용자의 관점에서 모델이 이해 가능하고, 시스템 구현의 기반이 될 수 있다면 효과적인 것으로 간주된다. 모델은 제품 관리자, 설계자, 개발자 및 애플리케이션 도메인 사용자와의 광범위한 커뮤니케이션을 통해 개발된다. 모델이 완성 단계에 가까워지면, 소프트웨어 및 시스템 개발을 가능하게 한다.

잘 알려진 MDE 이니셔티브는 다음과 같다.

이니셔티브설명
Object Management Group(OMG)의 MDA 이니셔티브Meta-Object Facility, XMI, CWM, CORBA, UML (fUML 및 ALF) 및 QVT와 같은 여러 표준에서 활용된다.[3]
이클립스 "생태계"일반적으로 (Eclipse Modeling Framework)로 표현되는 프로그래밍 및 모델링 도구이다. 이 프레임워크는 OMG의 MDA 표준을 구현하는 도구 생성을 가능하게 한다.


3. 2. 이클립스 모델링 프레임워크 (EMF)

이클립스 "생태계"는 EMF로 표현되는 프로그래밍 및 모델링 도구이다. EMF는 OMG의 MDA 표준을 구현하는 도구 생성을 가능하게 한다. 다른 모델링 관련 도구를 구현하는 데에도 사용할 수 있다.[3]

4. 장점

더글러스 C. 슈미트에 따르면, 모델 기반 엔지니어링 기술은 3세대 언어가 플랫폼의 복잡성을 완화하고 도메인 개념을 효과적으로 표현하지 못하는 문제를 해결하는 유망한 접근 방식을 제공한다.[4]

모델 기반 개발(MDE)은 다음 세 가지를 목표로 한다.

# 표준화된 모델을 재사용하여 시스템 간 호환성을 최대화하고 생산성을 향상시킨다.

# 적응 영역에서 빈번하게 사용되는 디자인 패턴 모델을 사용하여 설계 공정을 단순화한다.

# 적응 영역의 용어와 "베스트 프랙티스"를 표준화하여 시스템과 관련된 개인 및 팀 간의 의사 소통을 촉진한다.

해당 영역에 정통한 사용자 입장에서 볼 때, 해당 모델이 의미를 지니고 있으며 시스템을 구현할 때 기반으로 활용할 수 있다면, 모델 기반 개발(MDE)의 모델링 방법론은 효과적이라고 할 수 있다. 모델 개발에는 관리자, 설계자, 사용자의 충분한 논의가 필요하며, 모델이 완성되면 소프트웨어 및 시스템 개발이 가능해진다.

모델 기반 개발(MDE)을 추진하는 주요 조직 및 단체는 다음과 같다.

5. 도구

모델 기반 개발(Model-Driven Development, MDD)에는 다양한 도구들이 사용된다. 이러한 도구들은 모델의 생성, 변환, 코드 생성 등 다양한 기능을 제공하여 소프트웨어 개발 과정을 자동화하고 효율성을 높이는 데 기여한다.

하위 섹션 "모델링 도구"에서는 모델링 도구들에 대해 자세히 다룬다.

5. 1. 모델링 도구

다음은 모델 기반 엔지니어링에 사용되는 주요 소프트웨어 도구들이다.

도구명개발사비고
AADL카네기 멜론 소프트웨어 엔지니어링 연구소
AcceleoObeo오픈 소스 코드 생성기
Actifsource
AgileUMLAgileMDE Ltd오픈 소스 MDE 도구 모음
ATLObeo모델 변환 언어
DUALLy상호 운용성 생성을 위한 MDE 프레임워크
이클립스 모델링 프레임워크 (EMF)
Enterprise ArchitectSparx Systems
eTrice실시간 객체 지향 모델링 표준의 오픈 소스 구현
일반 이클립스 모델링 시스템 (GEMS)
GeneXus지식 표현 기반의 선언적 언어, 다중 플랫폼, 다중 언어 개발 솔루션
그래픽 모델링 프레임워크 (GMF)
JetBrains MPSJetBrains메타프로그래밍 시스템
MagicDrawNo Magic Inc
MERODEKU 루벤 대학교JMermaid (교육용)
MetaEdit+MetaCase
ModelCenterPhoenix Integration
Open ModelSphere
OptimalJCompuware
PREEvisionVector Informatik
RhapsodyIBM
PowerDesignerSAP
SimulinkMathWorks
Software Ideas ModelerDusan Rodina
Sirius사용자 지정 그래픽 모델링 워크벤치를 만들기 위한 이클립스 오픈 소스 프로젝트
Together ArchitectBorland
UmbrelloKDE
Umple오타와 대학교
UnifaceCompuware
YAKINDU Statechart Tools이클립스를 기반으로 구축된 오픈 소스 도구
AADLSAE International
Acceleo유료
Actifsource유료
[http://www.andromda.org AndroMDA]오픈 소스
[http://www.atomweaver.com AtomWeaver]유료
[http://www.cs.ioc.ee/cocovila CoCoViLa]오픈 소스
[http://www.softfluent.com/products/codefluent-entities CodeFluent Entities]유료
[http://www.db-main.eu/?q=en DB-MAIN]개인 사용은 무료
ECO (Domain Driven Design)유료
Eclipse Modeling FrameworkEMF, Eclipse Foundation
Enterprise Architect유료
[http://www.embarcadero.com/products/er-studio ER/Studio]유료
[http://www.eclipse.org/epsilon Epsilon]오픈 소스
[http://www.generatexy.org GenerateXY]무료
Generic Eclipse Modeling SystemGEMS, Eclipse Foundation
GeneXus유료
Graphical Modeling FrameworkGMF, Eclipse Foundation
MagicDraw유료
ManyDesigns Portofino오픈 소스
MetaEdit+유료
objectiF유료
RhapsodyIBM
RISE Editor무료
[http://www.modelingsoft.com Sculpture Toolkit]무료
SimulinkMathWorks유료
Together Architect보랜드유료
Uniface유료
[http://www.xcomponent.com/ XComponent]유료
YAKINDU Statechart Tools오픈 소스


6. 한국에서의 모델 기반 엔지니어링

(이전 출력이 없어 수정할 내용이 없습니다. 원본 소스와 함께 이전 출력을 제공해주시면 수정 작업을 진행하겠습니다.)

참조

[1] 웹사이트 8 Reasons Why Model-Driven Approaches (will) Fail https://www.infoq.co[...] 2023-07-26
[2] 서적 Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas Sprinter Nature
[3] 웹사이트 OMG Trademarks https://www.omg.org/[...] 2006-05-24
[4] 간행물 Model-Driven Engineering https://www.cs.wustl[...] 2006-05-16
[5] 웹사이트 OMG Trademarks http://www.omg.org/l[...] 2006-05-24
[6] 간행물 Model-Driven Engineering http://www.cs.wustl.[...] 2006-05-16



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com