2013-09-06 2 views
0

저는 간단한 데스크톱 애플리케이션을 개발 중입니다.EMF 생성 스윙 어플 리케이션

UML과 같은 형식으로 모델 구조를 관찰하고 수정할 수있는 기능이 매우 유용합니다. EMF는이를 허용합니다. 기존의 GUI 프레임 워크 (즉, Swing)와 EMF 코드 생성 방식을 결합하고 싶지만 기존 예제를 찾지 못했습니다.

합리적인 아이디어가 아니기 때문에 그것이 궁금한가요? 애플리케이션 뒤에있는 모델 구조를 파악하고 편집하고 구체적인 GUI 프레임 워크 용 코드를 생성하는 다른 방법이있을 수 있습니까?

+1

Eclipse 4는 SWT로 구현 된 애플리케이션 모델에 EMF를 사용합니다. –

+1

Swing 데스크톱 응용 프로그램에서 EMF를 사용하면서 실제로 제기되는 질문은 무엇입니까? 나는 그것이 문제가 될 것이라고 생각하지 않는다. 우리가 Eclipse에 대해 이야기하고 SWT가있는 RCP를 사용하는 단독 데스크톱 응용 프로그램에 대해 이야기하는 것처럼 드문 경우입니다. – Christian

+0

@Christian 체인 "EMF-> GUI app"의 helloworld-level 예제를 찾지 못했습니다. 이해할 수있는 것처럼, 그것은 교육을위한 좋고 분명한 방법이 될 수 있습니다. 패턴 : UML 다이어그램을보고 한 순간에 해당 앱을 생성합니다. 하지만 일을하는 것이 부적절한 방법이 아니라고 말하면 괜찮습니다. – mclaudt

답변

1

모델 기반 개발의 주요 아이디어 중 하나는 시스템의 대체 표현을 자동으로 생성하는 것입니다. 이는 일반적으로 모델 - 투 - 모델 (m2m) 및 모델 - 투 - 코드 (m2t) 변환이라고도합니다. 일부 시나리오에서는 코드가 다른 모델로 간주됩니다.

EMF는 메타 모델을 정의하기위한 프레임 워크입니다. 메타 모델은 모델의 의미를 정의합니다. 간단히 말해서 메타 모델은 특정 도메인을 모델링하는 데 사용할 수있는 클래스와 속성을 정의합니다. 예를 들어 UML 메타 모델을 사용하면 소프트웨어 시스템을 나타내는 모델을 만들 수 있습니다. 모델에는 구조 (클래스 다이어그램)가 포함되며 동작 (스퀘어 다이어그램, 상태 시스템 등)도 포함될 수 있습니다.

EMF와 직각으로는 모델을 읽고 수정하고 작성할 수있는 프레임 워크와 언어가 많이 있습니다. 예를 들어, Epsilon Framewoek은 모델 작업을위한 다양한 모델 관리 언어를 제공합니다. ETL (Epsilon Transformation Language)을 사용하면 m2m 변환을 수행하는 프로그램을 작성할 수 있으며 EGL (Epsilon Generation Language)을 사용하면 M2T 변환을 수행하는 프로그램을 작성할 수 있습니다.

따라서 UML 모델에서 구체적인 GUI 프레임 워크로 코드를 생성하려면 EGL을 사용하여 GUI 프레임 워크의 API를 사용하는 코드를 직접 생성 할 수 있습니다. 대안은 먼저 GUI의 모델을 생성하는 것입니다 (프레임 워크의 메타 모델이 필요합니다). m2m 변환을 사용하고 m2t를 수행하십시오. m2m 변환은 UML과 선택한 프레임 워크 간의 의미 적 차이를 더 잘 파헤치는 데 도움이 될 수 있으므로 후자의 방식이 바람직 할 수 있습니다.

EMF 생성에 대해 언급 했으므로 이는 또한 실현 가능한 접근 방법입니다. 그러나 EMF는 메타 모델을 나타 내기 위해 Java 코드 만 생성합니다. 이 접근법에서는 EMF로 생성 된 코드를 기본 모델로 사용하는 모든 GUI 프레임 워크 코드를 작성해야합니다. 따라서, 나는 여러분이 대부분의 코드를 생성 할 수있는 m2m과 m2t 접근법을 추천 할 것이다.

Epsilon Framework는 모델에서 HTML을 생성하는 방법을 보여주는 EGL에서 간단한 tutorial을 가지고 있습니다. 필요한 정보를 얻는 데 도움이됩니다. GUI 프레임 워크가 HTML이라면 이는 좋은 출발점이 될 것입니다.

m2m 및 m2t의 최신 버전을 사용하려면 사용하려는 특정 UML 모델과 사용할 대상 GUI 프레임 워크에 대한 세부 정보가 필요합니다.