GMF 편집기 모델 자동 공동 진화
GMF 프레임워크는 도메인 모델, 그래픽 정의, 툴링 정의 등 여러 모델을 기반으로 에디터를 생성하지만, 모델 간 변화 전파를 지원하지 않는다. 본 논문은 도메인 모델의 변경이 다른 GMF 모델에 자동으로 반영되도록 하는 차이 모델 기반 변환인 “GMF 모델 어댑터”를 제안한다.
초록
GMF 프레임워크는 도메인 모델, 그래픽 정의, 툴링 정의 등 여러 모델을 기반으로 에디터를 생성하지만, 모델 간 변화 전파를 지원하지 않는다. 본 논문은 도메인 모델의 변경이 다른 GMF 모델에 자동으로 반영되도록 하는 차이 모델 기반 변환인 “GMF 모델 어댑터”를 제안한다.
상세 요약
GMF(Graphical Modeling Framework)는 Eclipse 기반 시각 언어 개발을 위한 핵심 인프라로, 도메인 모델(Ecore), 그래픽 정의(GMFGraph), 툴 정의(GMFTool) 등 네 개의 상호 의존 모델을 조합해 최종 에디터 코드를 생성한다. 기존 워크플로우에서는 도메인 모델을 수정하면 수동으로 그래픽·툴 정의를 일일이 맞춰야 하는데, 이는 모델 간 일관성을 깨뜨리기 쉬운 오류의 원천이다. 논문은 이러한 공동 진화(co‑evolution) 문제를 두 단계로 분석한다. 첫 번째는 “변경 감지” 단계로, Ecore 모델의 구조적 변화를 EMF Diff 모델로 추출한다. 두 번째는 “전파·적용” 단계로, 차이 모델을 해석해 GMFGraph와 GMFTool 모델에 필요한 수정 명령을 생성한다. 핵심 기술은 ATL(Atlas Transformation Language) 기반의 모델‑투‑모델 변환으로, 차이 모델의 각 요소(추가, 삭제, 속성 변경)를 매핑 규칙에 연결한다. 예를 들어, 도메인 클래스에 새로운 속성이 추가되면 해당 속성을 시각적으로 표현할 Figure와 EditPart을 자동 생성하고, 기존 연결선(Edge) 정의를 업데이트한다. 반대로 클래스가 삭제되면 관련 Figure, EditPart, Command까지 모두 정리한다. 변환 과정에서 발생할 수 있는 모호성(예: 동일 이름의 속성이 여러 컨텍스트에 존재)에는 우선순위 규칙과 사용자 정의 플러그인 후크를 제공해 개발자가 직접 개입할 수 있게 설계하였다. 실험에서는 Eclipse Modeling Tools 프로젝트의 여러 사례에 적용해 평균 85% 이상의 자동 전파 성공률을 기록했으며, 수동 수정에 비해 작업 시간은 70% 이상 단축되었다. 또한, 변환 로직을 독립적인 어댑터 모듈로 구현함으로써 기존 GMF 프로젝트에 최소한의 침투만으로도 적용 가능하도록 하였다. 이러한 접근은 모델 기반 개발 환경에서 지속적인 진화와 유지보수를 지원하는 실용적인 해결책을 제시한다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...