KR101524542B1 - 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 - Google Patents
이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 Download PDFInfo
- Publication number
- KR101524542B1 KR101524542B1 KR1020130048229A KR20130048229A KR101524542B1 KR 101524542 B1 KR101524542 B1 KR 101524542B1 KR 1020130048229 A KR1020130048229 A KR 1020130048229A KR 20130048229 A KR20130048229 A KR 20130048229A KR 101524542 B1 KR101524542 B1 KR 101524542B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- model
- smtl
- node
- metamodel
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은, 제 1 메타 모델 데이터, 제 2 메타 모델 데이터 및 제 1 모델 데이터를 입력 받는 단계; 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL을 입력 받는 단계; 및 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하여 출력하는 단계를 포함하는, 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법 및 그 장치에 관한 것이다.
Description
이종 스마트폰 어플리케이션을 위한 MOF(Meta Object Facility) 기반의 데이터 변환 방법 및 그 장치에 관한 것이다.
모델변환은 모델에서 모델로 자동으로 변환을 가능하게 해주는 모델기반개발(Model Driven Development, MDD)의 주요한 기술이다. 이 모델변환은 모델, 메타 모델, 모델 변환 언어를 입력으로 변환엔진을 통해서 변환이 수행된다. 우리는 기존 연구에서 이종의 스마트폰 소프트웨어 개발에 적용하기 위해서 UML(Unified Modeling Language) 모델, 메타모델과 모델변환언어인 ATL(Active Template Library)을 사용하였다. ATL은 메타모델 단위로 규칙을 작성한다. 이 경우 입출력 모델이 1:1로 대응 될 경우는 간단하게 처리할 수 있지만 이종 스마트폰 개발과 같이 모델에 대한 N:M의 관계로 생성, 수정이 빈번하게 일어나는 경우는 간단한 변환에 많은 노력이 들고 많은 양의 변환 규칙을 작성해야 하는 문제가 있다. 또한 ATL의 확장이 불가능하기 때문에 전용언어가 필요하게 되었다.
이와 관련된 기술은 '모델 변환 기법을 활용한 윈도우 모바일 어플리케이션 개발' 정보과학지 논문지 : 컴퓨터의 실제 및 레터 제16권 제11호. 2010. 11. 에 개시되어 있다.
이와 관련된 기술은 '모델 변환 기법을 활용한 윈도우 모바일 어플리케이션 개발' 정보과학지 논문지 : 컴퓨터의 실제 및 레터 제16권 제11호. 2010. 11. 에 개시되어 있다.
본 발명은, 이러한 문제를 해결하기 위해서 이종 스마트폰 모델 변환을 위한 언어를 창조하고, 이러한 언어를 이용하여 입력되는 모델의 데이터를 재사용 가능하고 쉽게 메타모델을 조작하기 위해서 메타모델 API와 직접 연결 되도록 하였고 모델 내의 데이터 검색을 위해 OCL(object constraint language)대신에 XML(extensible markup language)기술인 XPath를 사용할 수 있도록 설계할 수 있는, 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법 및 그 장치를 제공하기 위한 것이다.
상술한 구성을 가지는 본 발명의 일실시예인 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법은, 제 1 메타 모델 데이터, 제 2 메타 모델 데이터 및 제 1 모델 데이터를 입력 받는 단계; 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL을 입력 받는 단계; 및 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하여 출력하는 단계를 포함할 수 있다.
여기서, 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하여 출력하는 단계는, STML 파서를 이용하여 상기 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리(AST 모델)로 변환하는 단계를 포함할 수 있다.
여기서, 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하여 출력하는 단계는, 상기 추상 구문 트리를 실행기를 통해 제 1 모델데이터를 상기 제 2 모델데이터로 변환하여 출력하는 단계를 더 포함할 수 있다.
여기서, 상기 SMTL 은 M 대 N의 구조 변환을 위한 크리에이팅(creating), 업데이팅(updating), 델리팅(deleting), 프롬(from) 명령어를 포함할 수 있다.
여기서, 상기 SMTL은 초기화(initial), 웬(when), 두(do) 로 변환시키는 언어일 수 있다.
여기서, 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하여 출력하는 단계는, 상기 실행기는, 상기 SMTL을 EMF API로 변환하여 상기 제 1 모델 데이터를 상기 제 2 모델 데이터로 변환하여 출력하는 단계를 포함하는, 할 수 있다.
본 발명의 다른 실시예인 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법는, 제 1 메타 모델 데이터, 제 2 메타 모델 데이터, 제 1 모델 데이터, 및 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTK을 입력 하기 위한 입력부; 및 상기 SMTL을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하는 엔진; 및 상기 제 2 메타 모델 데이터와 상기 제 2 메타 모델 데이터를 출력하는 출력부를 포함할 수 있다.
여기서, 상기 엔진은, 상기 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리(AST 모델)로 변환하는 STML 파서를 포함할 수 있다.
여기서, 상기 엔진은, 상기 추상 구문 트리를 이용하여 제 1 모델데이터를 상기 제 2 모델데이터로 변환하는 실행기를 포함할 수 있다.
여기서, 상기 SMTL 은 M 대 N의 구조 변환을 위한 크리에이팅(creating), 업데이팅(updating), 델리팅(deleting), 프롬(from) 명령어를 포함할 수 있다.
여기서, 상기 SMTL은 초기화(initial), 웬(when), 두(do) 순서로 변환시키는 언어일 수 있다.
여기서, 상기 실행기는, 상기 SMTL을 EMF API로 변환하여 상기 제 1 모델 데이터를 상기 제 2 모델 데이터로 변환하여 출력할 수 있다.
상술한 구성을 가지는 본 발명의 일실시예에 따르면, SMTL은 메타모델을 조작하기 쉽게 하기 위해서 EMF API와 직접 연결 되도록 디자인 되었고 모델 내의 데이터 검색을 위해 XPATH를 사용하고, 확장성을 위해서 파서와 실행기를 분리하였고 두 모델간에 데이터를 MOF기반의 모델로 데이터를 주고받도록 함으로써, 메타모델을 기반으로 모델을 변환하기 위해서는 여러 가지 메타모델 형태에 데이터를 대입할 수 있게 되어서, M 대 N의 구조 변환이 용이하게 될 수 있다.
도 1은 본 발명의 일실시예에 따른 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치의 블록 구성도.
도 2는, 본 발명의 다른 실시예에 따른 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법을 설명하기 위한 흐름도.
도 3은, 본 발명의 일실시예와 관련된 SMTL 모델 변환의 예를 설명하기 위한 도면.
도 4는, 본 발명의 일실시예와 관련된 SMTL의 EBNF의 예를 나타내는 도면.
도 5는, 본 발명의 일실시예와 관련된 SMTL의 AST의 메타모델을 설명하기 위한 도면.
도 6은, 본 발명의 일실시예와 관련된 SMTL와 메타클래스와의 관계를 나타내는 도면.
도 7은, 본 발명의 일실시예와 관련된 AST 메타 모델을 기반으로 생성된 데이터의 예를 나타내는 도면.
도 8은, 본 발명의 일실시예와 관련된 AST 메테 모델을 기반으로 생성된 데이터 트리 구조를 나타내는 도면.
도 9는, 본 발명의 제 1 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 10은, 본 발명의 제 2 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 11은, 본 발명의 제 3 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 12는, 본 발명의 제 4 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 13은, 본 발명의 제 5 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 14는, 본 발명의 제 6 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 2는, 본 발명의 다른 실시예에 따른 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법을 설명하기 위한 흐름도.
도 3은, 본 발명의 일실시예와 관련된 SMTL 모델 변환의 예를 설명하기 위한 도면.
도 4는, 본 발명의 일실시예와 관련된 SMTL의 EBNF의 예를 나타내는 도면.
도 5는, 본 발명의 일실시예와 관련된 SMTL의 AST의 메타모델을 설명하기 위한 도면.
도 6은, 본 발명의 일실시예와 관련된 SMTL와 메타클래스와의 관계를 나타내는 도면.
도 7은, 본 발명의 일실시예와 관련된 AST 메타 모델을 기반으로 생성된 데이터의 예를 나타내는 도면.
도 8은, 본 발명의 일실시예와 관련된 AST 메테 모델을 기반으로 생성된 데이터 트리 구조를 나타내는 도면.
도 9는, 본 발명의 제 1 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 10은, 본 발명의 제 2 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 11은, 본 발명의 제 3 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 12는, 본 발명의 제 4 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 13은, 본 발명의 제 5 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
도 14는, 본 발명의 제 6 실시예와 관련된 맵핑 데이터 투 데이터(mapping data to data)를 나타내는 도면.
이하, 본 발명의 일실시예인 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법 및 그 장치에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
도 1은 본 발명의 일실시예에 따른 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치의 블록 구성도이다. 도시된 바와 같이, 본 발명에 따른 일실시예인 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치는, 입력부(10), 엔진(20) 및 출력부(30)를 포함할 수 있다.
입력부(10)는, 제 1 메타 모델 데이터, 제 2 메타 모델 데이터, 제 1 모델 데이터, 및 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL을 입력 하기 위한 구성요소이다.
그리고, 엔진(20)은, 상기 입력부를 통해 입력되는 SMTL(smartphone model transformation language)을 이용하여, 상기 제 1 모델 데이터를 제 2 모델 데이터를 변환하는 역할을 한다. 보다 구체적으로 보면, 엔진(20)은, 도 1에 도시된 바와 같이, SMTL 파서(21) 및 실행기(23)를 포함할 수 있다. SMTL 파서(21)는 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리(AST 모델)로 변환하는 기능을 하며, 실행기는, 상기 AST 모델을 이용하여 상기 제 1 모델 데이터를 제 2 모델 데이터로 변환하는 기능을 한다. 실행기(23)는, 상기 SMTL을 EMF API로 변환하여 상기 제 1 모델 데이터를 상기 제 2 모델 데이터로 변환하여 출력하는 기능을 한다.
출력부(30)는, 상기 엔진(20)으로부터 변환된 제 2 모델 데이터를 출력하는 기능을 한다. 여기서, 상기 SMTL 은 M 대 N의 구조 변환을 위한 크리에이팅(creating), 업데이팅(updating), 델리팅(deleting), 프롬(from) 명령어를 포함할 수 있으며, 상기 SMTL은 초기화(initial), 웬(when), 두(do) 순서로 변환시키는 언어일 수 있다..
이하에서는 상술한 구성을 가진 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치에서의 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법을 설명하도록 한다.
도 2는, 본 발명의 다른 실시예에 따른 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법을 설명하기 위한 흐름도이다. 도시된 바와 같이 우선, 제 1 메타 모델 데이터, 제 2 메타 모델 데이터 및 제 1 모델 데이터를 입력 받는다(S11). 그 다음, 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL(Smartphone Model Transformation Language)을 입력받는다(S13). 그리고, STML 파서는 상기 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리(AST 모델)로 변환한다(S15). 그 다음, 상기 추상 구문 트리를 이용하여 실행기를 통해 제 1 모델데이터를 상기 제 2 모델데이터로 변환하여 출력한다(S17, S19). 이 때, 상기 실행기는, 상기 SMTL을 EMF API로 변환하여 상기 제 1 모델 데이터를 상기 제 2 모델 데이터로 변환하여 출력할 수 있다. 여기서, 상기 SMTL 은 M 대 N의 구조 변환을 위한 크리에이팅(creating), 업데이팅(updating), 델리팅(deleting), 프롬(from) 명령어를 포함할 수 있다. 그리고, 상기 SMTL은 초기화(initial), 웬(when), 두(do) 로 변환시키는 언어일 수 있다.
이하에서는 본 발명의 일실시예와 관련된 SMTL 모델 변환의 예를 도 3등을 통해 설명하도록 한다.
도 3은, 본 발명의 일실시예인 SMTL 모델 변환의 예를 설명하기 위한 도면이다.
타겟 모델(Target Model)의 생성을 위해서는 크리에이팅 키워드(Creating keyword)를 사용하고 소스 모델(Source Model)의 데이터 수정을 위해서는 업데이팅 및 딜리팅 키워드(Updating and Deleting keyword)를 사용하게 된다. 이것은 기존의 모델과 다르게 소스 및 타겟 모델을 모두 변경 가능하다. SMTL은 특정한 메타모델 엘러먼트에 연결된다. 예를 들어 UML.Class 라고 하면 UML 메타모델에 클래스 엘러먼트(Class Element)를 읽어 온다. 이때 여러 개의 엘리먼트를 “,”를 이용하여 동시에 읽어올 수도 있다. 이렇게 각엘러먼트를 읽어온 후에 초기화, 웬, 두 ( init, when, do)를 순서대로 수행하게 된다. 초기화(init)는 변환을 수행하기 위해 준비하는 부분으로 변수를 선언하고 데이터를 초기화 가능하다. 웬(when)은 변환되는 조건으로 조건 값이 참일 경우에만 변환이 수행된다. 두(Do)는 실제로 모델을 생성하는 부분이다. EMF(Eclipse Modeling Framework)는 메타모델을 기반으로 만들어진 모델의 데이터를 API를 이용하여 조작 가능하다. 그렇기 때문에 모델을 생성 및 수정하기 위해서 EMF API(Application Program Interface) 를 직접 사용할 수 있도록 한다
도 4는, 본 발명의 일실시예인 SMTL의 EBNF의 예를 나타내는 도면이다. SMTL의 문법은 도 4와 같이 EBNF로 표현할 수 있다. 변수는 문자열, 숫자, 객체, 객체 리스트를 정의 할 수 있고 실행되는 타입에 따라 생성, 수정, 삭제로 구분된다.
도 5는, 본 발명의 일실시예인 SMTL의 AST의 메타모델을 설명하기 위한 도면이다. 도 5에서 이텔릭체는 추상 메타클래스로 실제 데이터와 관계를 가지지 않지만 의미적인 역할을 한다. 각 메타클래스들의 관계를 설명하면 도 6과 같다.
그리고, 도 3의 데이터를 SMTL 파서로 실행하면 도 7 및 도 8과 같이 AST 모델 데이터가 생성된다. 이 데이터는 XMI 규칙을 가지며, 이클립스 도구를 통해서 트리형태로 볼 수 있다. 도 7은 본 발명의 일실시예와 관련된 AST 메타 모델을 기반으로 생성된 데이터의 예를 나타내는 도면이고, 도 8은 본 발명의 일실시예와 관련된 AST 메테 모델을 기반으로 생성된 데이터 트리 구조를 나타내는 도면이다.
한편, SMTL 실행기는 SMTL 파서로부터 생성된 AST 모델데이터와 변환을 수행하고자 하는 UML 다이어그램 데이터를 입력으로 받아서 변환된 UML 다이어그램 데이터를 생성한다. SMTL 실행기의 원리는 AST 모델을 순차적으로 읽어 들여서 이를 해석하고 실행하는 것이다. AST 실행기는 두 단계로 수행된다. 첫 번째 단계에서는 모델을 순차적으로 처리하기 전에 입력되는 메타모델과 출력되는 메타모델을 읽어서 메타모델의 유효성을 검사하고 문제가 없다면 이를 메모리에 로드한다. 두 번째 단계에서는 각 모델의 노드를 의미적으로 해석하는데, 우선적으로 해석되는 노드는 “CreateStmtNode”, “UpdatingStmtNode”, “DeletingStmtNode” 들 이다. CreateStmtNode는 기존 데이터 없이 초기 상태에서 데이터를 생성하고, UpdatingStmtNode는 기존 데이터를 그대로 가져와 이를 쉽게 수정할 수 있다. 그리고 DeletingStmtNode는 기존 데이터에서 일정한 부분만 삭제한 후에 변환을 수행한다. 각 각의 “CreateStmtNode”, “UpdatingStmtNode”, “DeletingStmtNode”들이 해석된 다음에는 “InitNode”, “WhenNode”, “DoNode”들이 수행된다. InitNode에서는 변수들의 생성 및 초기화가 이루어지고 WhenNode에서는 조건의 참/거짓 여부를 판별한다. 그리고 WhenNode가 참일 경우 DoNode를 수행한다. DoNode에서 데이터를 수행할 때 사칙연산 및 대입 연산, 그리고 XPATH는 프로그램 단계에서 처리가 된다. 그러나 메타모델을 다루기 위한 EMF API는 SMTL 문법을 EMF API로 변환 시키고 이를 동적으로 수행하도록 한다. SMTL의 문법을 EMF API로 변환하는 방법은 표 1(SMTL 문법을 EMF API로 변환하는 방법)과 같다. 예를 들어 o.createClass는 실행될 때 createClass()로 변환되어 EMF API를 실행 시킨다.
Type | SMTL | EMF API |
Set data | setName = “name” | setName(“name”); |
Get data | getName | getName() |
Create element | createClass | createClass() |
createOperation | createOperation() | |
createPropety | createPropety() | |
Get list | getOwnedAttributes | getOwnedAttributes() |
getOwnedOperations | getOwnedOperations() | |
Add element | getOwnedAttributes.add = element | getOwnedAttributes.add( element) |
getOwnedOperations.add = element | getOwnedOperations.add( element) |
메타모델을 기반으로 모델을 생성하기 위해서는 여러 가지 메타모델 형태에 데이터를 대입할 수 있어야 한다. 우리는 이 경우를 크게 데이터, 엘러먼트 및 엘러먼트 리스트(Data, Element, Element List) 3가지로 구분하였다. 그 가능한 조합은 표 2(모델 변환을 위한 데이터와 리스트간의 관계)와 같다. 6가지 경우를 생각 가능하다. 각 경우에서 대해서 설명한다.
RHS | ||||
Data | Element | Element List | ||
LHS | Data | Case 1 | Case 2 | Case 3 |
Element | X | Case 4 | Case 5 | |
Element List | X | X | Case 6 |
[제 1 실시예]
제 1 실시예는, LHS와 RHS가 모두 데이터 값인 경우이다. 도 9와 같이 모델 A(Model A)의 클래스 이름이 모델 B(Model B) 클래스로 변경하기 위해서 LHS는 setName, RHS는 “Class_After”의 문자열을 사용하였다. 폼(Form) 뒤에 오는 o:UML.Class는 UML에 metamodel에 있는 class element를 이름 o를 정의한다는 것이다. 이렇게 정의된 메타모델 객체 o는 변환을 위한 기본 요소로 사용된다. SMTL은 EMF의 메서드와 직접 연결할 수 있는 구조로 되어있다. 그러므로 o.createClass는 SMTL이 실행될 때 createClass() 메서드에 매치된다. init에서 ref 키워드로 생성된 객체를 out 변수로 정의한다. out.setName = “Class_After”는 setName(“Class_After”)로 변경된다. 이것은 이름을 “Class_After”로 변경한다.
[제 2 실시예]
제 2 실시예는 LHS는 데이터이고 RHS의 값이 엘러먼트일 경우이다. 도 10과 같이 모델 A(Model A)의 메서드를 모델 B(Model B의 메서드로 만들 때, Model B의 메서드를 생성하고 메서드의 이름에 Model A의 이름을 Element로부터 가져와 같을 입력한다. Source model의 메소드이름은 target model에 메서드를 생성하고 이름을 같게 하는 예제이다. 여러 개의 리스트 데이터에서 하나의 데이터를 선택하기 위해서 XPath 표기법을 사용한다. getOwnedOperation[@name=”OpA”] 는 여러 개의 메소드들중에서 이름이 “OpA” element 하나를 선택한다. 이렇게 선택된 메소드 element의 이름을 target model에 입력한다.
[제 3 실시예]
제 3 실시예는 LHS는 리스트(List)이고 RHS는 데이터(Data)인 경우이다. 도 11은 소스 모델(source model)로부터 여러 개의 엘러먼트(Element)를 가져와 새로운 클래스에 하나의 함수를 추가하는 예제이다. 이 예제에서는 타겟 모델(target model)의 메서드를 새로 생성하고 소스 모델(source model)의 메서드 리스트를 가져와 그중의 하나의 엘러먼트(element)를 선택하고 선택한 엘러먼트(element)의 이름을 가져와 새로 생성된 타켓 모델(target model)의 메서드 이름으로 대치하는 것이다. 새롭게 생성된 메서드는 애드(add) 명령을 사용하여 클래스 내부에 삽입한다.
[제 4 실시예]
제 4 실시예는, LHS와 RHS 모두 엘러먼트(element)인 경우이다. 도 12와 같이 하나의 엘러먼트를 다른 엘러먼트로 변경하는 예제이다. 소스 모델에 있는 2개의 함수들 중에서 하나의 함수를 선택하여 타겟 모델의 클래스의 메서드에 추가한다.
[제 5 실시예]
제 5 실시예는 LHS는 리스트(list)이고 RHS는 엘러먼트(element)인 경우이다. 도 13과 같이 Source Model의 메서드 리스들 중에서 하나의 메서드를 선택하여 Target Model에 삽입하는 예제이다. 제 4 실시예와 후술하는 제 6 실시예와 유사하게 보이지만, 제 3 실시예 에서는 init에서 하나의 Element로 선언하여 그 element를 추가하는 것이고, 제 5 실시예는 메서드에 추가하기 위해서 여러 개의 리스트 객체에서 직접 element를 선택하는 차이가 있다.
[제 6 실시예]
제 6 실시예는 LHS와 RHS가 모두 엘러먼트 리스트(Element List)일 경우이다. 도 14와 같이 소스 모델(Source Model)에서의 2개의 메서드를 타겟 모델(Target Model)의 메서드로 복사하는 예제이다. 두 개의 데이터 타입이 같으므로 대입연산자를 이용하여 메서드의 추가가 가능하다.
상술한 구성을 가지는 본 발명의 일실시예에 따르면, SMTL은 메타모델을 조작하기 쉽게 하기 위해서 EMF API와 직접 연결 되도록 디자인 되었고 모델 내의 데이터 검색을 위해 XPATH를 사용하고, 확장성을 위해서 파서와 실행기를 분리하였고 두 모델간에 데이터를 MOF기반의 모델로 데이터를 주고받도록 함으로써, 메타모델을 기반으로 모델을 변환하기 위해서는 여러 가지 메타모델 형태에 데이터를 대입할 수 있게 되어서, M 대 N의 구조 변환이 용이하게 될 수 있다.
상기와 같이 설명된 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법 및 그 장치는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10 :입력부
20 : 엔진
21 : SMTL 파서
23 : 실행기
30 : 출력부
20 : 엔진
21 : SMTL 파서
23 : 실행기
30 : 출력부
Claims (12)
- 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치에서의 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법에 있어서,
입력부를 통해 제 1 메타 모델 데이터, 제 2 메타 모델 데이터, 제 1 모델 데이터, 및 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL을 입력 받는 단계;
STML 파서를 이용하여 상기 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리로 변환하는 단계;
실행기를 통해 상기 추상 구문 트리를 제 1 모델데이터를 상기 제 2 모델데이터로 변환하여 출력하되, 상기 제 1 메타 모델 데이터, 및 제 2 메타 모델 데이터의 유효성을 검사한 후, 유효성에 문제가 없는 경우 상기 추상 구문 트리에 포함된 노드의 의미적으로 해석하되, 기존 데이터 없이 초기 상태에서 데이터를 생성하는 노드인 CreateStmtNode, 기존 데이터를 그대로 가져와 이를 수정하는 노드인 UpdatingStmtNode, 및 기존 데이터에서 일정한 부분만 삭제한 후에 변환을 수행하는 노드인 DeletingStmtNode에 대한 해석을 먼저 시행한 후, 변수들의 생성 및 초기화가 이루어지는 노드인 InitNode, 조건의 참/거짓 여부를 판별하는 노드인 WhenNode, 및 데이터를 수행하는 노드인 DoNode에 대한 해석을 시행하는 단계; 및
출력부를 통해 상기 변환된 제 2 모델 데이터 및 제 2 메타 모델 데이터를 출력하는 단계를 포함하는, 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 제 1 메타 모델 데이터, 제 2 메타 모델 데이터, 제 1 모델 데이터, 및 상기 제 1 모델 데이터를 변환하기 위한 언어인 SMTL을 입력 하기 위한 입력부;
상기 SMTL의 텍스트 데이터를 SMTL 구조 데이터인 추상 구문 트리로 변환하는 STML 파서와, 상기 추상 구문 트리를 이용하여 상기 제 1 모델데이터를 제 2 모델데이터로 변환하여 출력하는 실행기를 포함하되, 상기 실행기는 상기 제 1 메타 모델 데이터, 및 제 2 메타 모델 데이터의 유효성을 검사한 후, 유효성에 문제가 없는 경우 상기 추상 구문 트리에 포함된 노드의 의미적으로 해석하되, 기존 데이터 없이 초기 상태에서 데이터를 생성하는 노드인 CreateStmtNode, 기존 데이터를 그대로 가져와 이를 수정하는 노드인 UpdatingStmtNode, 및 기존 데이터에서 일정한 부분만 삭제한 후에 변환을 수행하는 노드인 DeletingStmtNode에 대한 해석을 먼저 시행한 후, 변수들의 생성 및 초기화가 이루어지는 노드인 InitNode, 조건의 참/거짓 여부를 판별하는 노드인 WhenNode, 및 데이터를 수행하는 노드인 DoNode에 대한 해석을 시행하는, 엔진; 및
상기 엔진으로부터 변환된 제 2 모델 데이터 및 제 2 메타 모델 데이터를 출력하는 출력부를 포함하는, 이종 스마트폰 어플리케이션을 위한 MOF 기반의 데이터 변환 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130048229A KR101524542B1 (ko) | 2013-04-30 | 2013-04-30 | 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130048229A KR101524542B1 (ko) | 2013-04-30 | 2013-04-30 | 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140129660A KR20140129660A (ko) | 2014-11-07 |
KR101524542B1 true KR101524542B1 (ko) | 2015-06-01 |
Family
ID=52454881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130048229A KR101524542B1 (ko) | 2013-04-30 | 2013-04-30 | 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101524542B1 (ko) |
-
2013
- 2013-04-30 KR KR1020130048229A patent/KR101524542B1/ko not_active IP Right Cessation
Non-Patent Citations (6)
Title |
---|
Tihamer Levendovszky. "Applying Metamodels in software model transformation methods". JBudapest University of Technology and Economics Department of Automation and Applied Informatics PhD Thesis. 2005 * |
Tihamer Levendovszky. "Applying Metamodels in software model transformation methods". JBudapest University of Technology and Economics Department of Automation and Applied Informatics PhD Thesis. 2005* |
김우열 외 3명. "모델 변환 기법을 활용한 윈도우즈 모바일 어플리케이션 개발". 정보과학회 논문지 : 컴퓨터의 실제 및 레터 제16권 제11호. 2010.11. * |
김우열 외 3명. "모델 변환 기법을 활용한 윈도우즈 모바일 어플리케이션 개발". 정보과학회 논문지 : 컴퓨터의 실제 및 레터 제16권 제11호. 2010.11.* |
김우열. "이종 모바일 임베디드 플랫폼을 위한 모델 변환 프레임워크". 홍익대학교 대학원 전자전산공학과 학위논문(박사). 2011.2. * |
김우열. "이종 모바일 임베디드 플랫폼을 위한 모델 변환 프레임워크". 홍익대학교 대학원 전자전산공학과 학위논문(박사). 2011.2.* |
Also Published As
Publication number | Publication date |
---|---|
KR20140129660A (ko) | 2014-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7941461B2 (en) | System and method for developing and enabling model-driven XML transformation framework for e-business | |
US6269475B1 (en) | Interface for object oriented programming language | |
US9880820B2 (en) | Programming language with extensions using dynamic keywords | |
US8312427B2 (en) | Selecting a set of candidate code expressions from a section of program code for copying | |
US10055399B2 (en) | Method and system for linear generalized LL recognition and context-aware parsing | |
US20070050704A1 (en) | XML compiler that will generate an application specific XML parser | |
US20140250443A1 (en) | Code analysis for simulation efficiency improvement | |
CN104020994B (zh) | 基于流系统的流过程定义装置和流过程定义方法 | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
US20100082954A1 (en) | Configuration rule prototyping tool | |
CN101185116A (zh) | 在软件程序中使用强数据类型表示语音识别语法 | |
US10691434B2 (en) | System and method for converting a first programming language application to a second programming language application | |
US20110126171A1 (en) | Dynamic native editor code view facade | |
JP2008299723A (ja) | プログラム検証方法、プログラム検証装置 | |
Zhao et al. | Pattern-based design evolution using graph transformation | |
US7992111B1 (en) | Conversion of a high-level graphical circuit design block to a high-level language program | |
US20140359258A1 (en) | Declarative Configuration Elements | |
Buchmann et al. | Managing Variability in Models and Derived Artefacts in Model-driven Software Product Lines. | |
KR101524542B1 (ko) | 이종 스마트폰 어플리케이션을 위한 mof 기반의 데이터 변환 방법 및 그 장치 | |
US20050177788A1 (en) | Text to XML transformer and method | |
Fritzson et al. | Metamodelica–a symbolic-numeric modelica language and comparison to julia | |
Son et al. | SMTL Oriented Model Transformation Mechanism for Heterogeneous Smart Mobile Models | |
Trias et al. | Reverse engineering applied to CMS-based Web applications coded in PHP: A proposal of migration | |
US20070192367A1 (en) | Generic expression framework for computer implementable expressions | |
Al Dallal | UPSS: a tool for synthesizing UML concurrent communication protocol entities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |