KR100576941B1 - Metamodel-based model transformation apparatus - Google Patents
Metamodel-based model transformation apparatus Download PDFInfo
- Publication number
- KR100576941B1 KR100576941B1 KR1020030094804A KR20030094804A KR100576941B1 KR 100576941 B1 KR100576941 B1 KR 100576941B1 KR 1020030094804 A KR1020030094804 A KR 1020030094804A KR 20030094804 A KR20030094804 A KR 20030094804A KR 100576941 B1 KR100576941 B1 KR 100576941B1
- Authority
- KR
- South Korea
- Prior art keywords
- model
- transformation
- metamodel
- rule
- conversion
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 소프트웨어 시스템의 모델 기반 개발(Model-Driven Development: MDD)을 원활히 지원하기 위하여 플랫폼에 독립적으로 설계된 모델을 원하는 플랫폼에 종속적인 모델로 변환하는 기법 및 시스템에 관한 것이다. The present invention relates to a technique and system for converting a model that is designed independently of a platform into a model-dependent model in order to smoothly support model-driven development (MDD) of a software system.
즉, 본 발명은 플랫폼에 독립적인 모델(Platform Independent Model: PIM)을 다양한 플랫폼 종속 모델(Platform Specific Model: PSM)로 자동 변환하기 위하여 메타모델 기반의 모델 변환 규칙 정의방법과, 모델 변환의 전체 프로세스와, 정의된 변환 규칙 메타모델과 변환 프로세스를 지원하여 플랫폼 종속 모델을 생성하는 모델 변환 시스템의 구조를 제공한다. 이에 따라 개발자는 플랫폼에 독립적인 모델을 원하는 플랫폼에 맞게 변환될 수 있도록 변환 규칙 메타모델을 기반으로 변환 규칙 인스턴스를 비쥬얼하게 정의할 수 있으며, 모델 변환 시스템을 이용하여 개발자가 정의한 변환 규칙 인스턴스에 맞게 플랫폼에 종속적인 모델을 자동 생성할 수 있다. That is, the present invention provides a method of defining a model transformation rule based on metamodels and an overall process of model transformation in order to automatically convert a platform independent model (PIM) into various platform specific models (PSM). And, it supports the defined transformation rule metamodel and transformation process to provide the structure of model transformation system to generate platform dependent model. This allows the developer to visually define transformation rule instances based on the transformation rule metamodel so that the platform-independent model can be transformed to suit the desired platform. Automatically generate platform-dependent models.
모델 변환, 모델 기반 개발, 플랫폼 독립적인 모델, 플랫폼 종속적인 모델, 메타모델Model transformation, model based development, platform independent model, platform dependent model, metamodel
Description
도 1은 본 발명의 실시 예에 따른 MOF 메타데이터 구조도,1 is a structure diagram of a MOF metadata according to an embodiment of the present invention;
도 2는 본 발명의 실시 예에 따른 모델 변환 처리 개념도,2 is a conceptual diagram of model transformation processing according to an embodiment of the present invention;
도 3은 본 발명의 실시 예에 따른 변환 규칙을 이용하여 PIM을 PSM으로 변환하는 처리 흐름도,3 is a flowchart illustrating a process of converting a PIM into a PSM using a conversion rule according to an embodiment of the present invention;
도 4는 본 발명의 실시 예에 따른 M2레벨의 변환 규칙 메타모델 구조도,4 is a structural diagram of a transformation rule metamodel of an M2 level according to an embodiment of the present invention;
도 5는 본 발명의 실시 예에 따른 변환규칙의 메타모델과 변환프로세스를 지원하는 변환 시스템 구성도.5 is a configuration diagram of a conversion system supporting a metamodel and a conversion process of a conversion rule according to an embodiment of the present invention.
본 발명은 모델 기반의 소프트웨어 시스템에 관한 것으로, 특히 소프트웨어 시스템의 모델 기반 개발(Model-Driven Development: MDD)을 원활히 지원하기 위하여 플랫폼에 독립적으로 설계된 모델을 원하는 플랫폼에 종속적인 모델로 변환하는 시스템 및 방법에 관한 것이다. The present invention relates to a model-based software system, and in particular, a system for converting a model that is designed independent of the platform to a model-dependent model to smoothly support model-driven development (MDD) of the software system; It is about a method.
소프트웨어 시스템을 개발함에 있어 시스템 통합과 개발 기술간의 상호 운용 성(Interoperability)은 다양한 미들웨어 플랫폼의 사용과 단일 인터페이스 사용의 부재로 인하여 여전히 어려움을 겪고 있다. 한편, 모델 기반의 개발에서는 소프트웨어 시스템을 플랫폼에 독립적인 모델(Platform Independent Model: PIM)과 플랫폼에 종속적인 모델(Platform Specific Model: PSM)로 나누어 개발함으로써 이를 해결한다. In developing software systems, interoperability between system integration and development technologies still suffers from the use of various middleware platforms and the absence of a single interface. In the model-based development, the software system is solved by dividing the software system into a platform independent model (PIM) and a platform specific model (PSM).
상기 모델 기반 소프트웨어 시스템에서는 시스템의 설계와 명세를 플랫폼과 분리하여 기술하고, 실제 구현과 관련된 모델은 매핑을 통해서 얻어내는 방법을 사용함으로써, 플랫폼에 독립적인 모델을 다양한 플랫폼에 맞게 재 사용할 수 있도록 한다. 즉, 분석정보로부터 설계된 플랫폼 독립적인 모델은 특정 플랫폼(예: J2EE, .Net, CORBA)의 정보를 가지고 있지 않기 때문에 플랫폼에 상관없이 시스템을 모델링하는데 재 사용될 수 있다. In the model-based software system, the design and specification of the system are described separately from the platform, and the model related to the actual implementation is obtained through mapping, so that the platform-independent model can be reused for various platforms. . In other words, the platform-independent model designed from the analysis information can be reused to model the system regardless of platform because it does not have the information of a specific platform (eg J2EE, .Net, CORBA).
이러한 기술은 PIM과 PSM간의 모델 변환 기법(Model Transformation Method)을 통하여 실현되는데 하나의 PIM을 여러 개의 PSM으로 변환시키기 위해서는 특정 플랫폼에 맞는 정보를 표현하는 PSM을 생성하는 모델 변환 기능이 필요하다. 기존의 소프트웨어 시스템 개발에서는 설계단계부터 특정 플랫폼에 맞게 모델을 설계하고 이를 코드로 생성하였으나, 모델 기반의 개발에서는 PIM을 PSM으로 변환하는 모델 변환 시스템을 통하여 입력으로 들어온 모델에 대하여 원하는 플랫폼의 출력 모델을 생성하고 이를 바탕으로 코드를 생성함으로써 설계 모델의 재사용을 가능하게 한다. 즉, 모델 기반의 소프트웨어 시스템 개발은 설계 모델에 대한 재 사용성을 증대시켜, 이를 다양한 플랫폼에 맞는 구현으로 코드를 자동 생성하는 것을 목표로 한다. 이를 위해서는 다양한 모델들의 기본 구조를 마련하는 메타모델이 정의되어 있어야 하고, 이를 기반으로 설계 모델 및 플랫폼 모델이 확장 정의되어야 한다.Such a technique is realized through a model transformation method between PIM and PSM. In order to convert one PIM into several PSMs, a model transformation function for generating a PSM representing information for a specific platform is required. In the existing software system development, a model was designed for a specific platform from the design stage and generated as a code.However, in model-based development, an output model of a desired platform for a model inputted through a model conversion system converting a PIM into a PSM. By creating the code and generating the code based on it, the design model can be reused. That is, model-based software system development aims to increase the reusability of the design model, and to automatically generate code with implementations for various platforms. To this end, a metamodel that defines the basic structure of various models should be defined, and the design model and platform model should be extended and defined based on this.
소프트웨어 시스템 개발의 분석 및 설계 시에 많이 사용되고 있는 UML(Unified Modeling Language)은 MOF(Meta Object Facility)를 기본으로 일반적인 모델링을 지원하는 메타모델 구조를 갖는다. MOF는 OMG(Object Management Group)에서 제안한 것으로 가장 기본적인 모델 구조를 제안한 것이다. 이를 이용하여 UML 메타모델이나 다양한 기술들을 표현하는 메타모델의 확장 정의가 가능하고 정의된 메타모델들 사이의 상호 동작 및 접근이 가능하다. MOF에 기반한 메타모델들은 MOF 저장소에서 관리되며 모델의 접근을 용이하게 하는 인터페이스를 생성한다. 모델 기반의 개발에서는 PIM이나 PSM 설계를 위한 메타모델 구조를 MOF 기반으로 정의하고, 이들을 관리하는 저장소의 접근 및 상호동작이 가능하므로, 모델간의 매핑 규칙 정의를 통하여 원하는 플랫폼 모델을 얻어낼 수 있다. UML (Unified Modeling Language), which is widely used in analysis and design of software system development, has a metamodel structure that supports general modeling based on the Meta Object Facility (MOF). MOF was proposed by the OMG (Object Management Group) and suggested the most basic model structure. By using this, the UML metamodel or metamodel that expresses various technologies can be defined and extended, and the interaction and access between the defined metamodels is possible. Metamodels based on MOF are managed in the MOF repository and create interfaces that facilitate model access. In model-based development, the metamodel structure for PIM or PSM design can be defined based on MOF, and the repository that manages them can be accessed and interacted with. Therefore, the desired platform model can be obtained by defining mapping rules between models.
이때 모든 소프트웨어 시스템 모델을 메타모델에 기반하여 모델링 하듯이, 모델의 변환 규칙 또한 메타모델, 즉 변환 규칙에 대한 추상화된 구조의 표현을 기반으로 정의할 수 있다. 메타모델에 기반하여 정의된 변환 규칙 또한 MOF저장소에 저장되어 관리되면 다른 메타모델들과 상호 동작할 수 있게 되어 모델변환을 쉽게 지원할 수 있다. 또한, 추상화된 구조를 가지고 변환 규칙을 정의하면, 변환 규칙의 정형화된 명세를 가질 수 있어 변환 규칙을 쉽게 검증할 수 있고, 단순한 변환 규칙뿐 만 아니라 복잡한 규칙을 정의하기 위한 확장이 용이하다. 그러나 지금까지 MOF를 기반으로 소프트웨어 시스템 모델을 표현하는 표준은 많이 제안되었으나, 모 델 기반 개발의 가장 중요한 요소인 모델 변환 규칙과 관련된 메타모델은 아직까지 연구가 활발히 진행되지 못했다. In this case, as all software system models are modeled based on the metamodel, the transformation rules of the model can be defined based on the metamodel, that is, the abstract structure of the transformation rules. Conversion rules defined based on metamodels are also stored and managed in the MOF repository so that they can easily interact with other metamodels to support model transformation. In addition, by defining transformation rules with an abstracted structure, you can have a formal specification of the transformation rules so that you can easily verify the transformation rules and extend them to define complex rules as well as simple transformation rules. However, many standards have been proposed to express software system models based on MOF. However, metamodels related to model transformation rules, the most important element of model-based development, have not been actively studied.
즉, 지금까지의 소프트웨어 개발은 모델의 재사용보다는 코드의 재사용에 초점을 맞추어 연구가 진행되었기 때문에 데이터나 코드의 구조를 통일하려는 노력은 있었으나 설계 모델의 구조를 재사용하기 위하여 모델의 메타모델을 통일하고 이들간의 변환 규칙을 메타모델에 기반하여 표현하여 모델을 변환하는 노력은 거의 없었으며, 모델 기반의 개발을 지원하기 위한 변환 메타모델의 정의방법에 대한 연구는 현재 진행 중에 있다. In other words, until now, software development has been focused on code reuse rather than model reuse. Therefore, efforts have been made to unify the structure of data and code. There has been little effort to transform models by expressing the transformation rules between them based on metamodels, and research on how to define transform metamodels to support model-based development is currently underway.
한편, 이미 OMG에서 제안한 CWM(Common Warehouse Metamodel)은 Transformation이란 명세를 정의하고 있으나, 간단한 모델에 대한 변환규칙만을 규정하도록 정의되어 있고, 상세한 정의정보에 대해서는 언급이 없으며, 실제 개발자들이 변환규칙을 적용하여 변환을 수행할 때 따르는 모델 변환의 절차(Process)와 이를 지원하는 시스템의 구조에 대한 연구결과가 거의 없다. On the other hand, the Common Warehouse Metamodel (CWM), already proposed by OMG, defines a specification called Transformation, but it is defined to define only transformation rules for simple models, and there is no mention of detailed definition information, and actual developers apply transformation rules. There is little research on the process of model transformation and the structure of the system that supports it.
따라서 모델 기반 개발에 의한 소프트웨어 시스템 개발을 지원하기 위해서는 PIM을 다양한 PSM으로 변환하는 변환규칙에 대한 메타모델의 정의와 이를 바탕으로 한 변환규칙의 정의방법, PIM에서 PSM을 자동 생성할 수 있는 프로세스 및 지원 시스템에 대한 정의가 필요하였다. Therefore, in order to support software system development by model-based development, it is necessary to define the metamodel of the conversion rule that converts PIM into various PSMs, the method of defining the conversion rule based on this method, the process of automatically generating PSM from PIM, and A definition of the support system was needed.
또한 종래 기술은 모델의 재사용보다는 데이터나 코드의 재사용에 초점을 맞추어 데이터를 추상구조를 생성하고 이를 따르는 다양한 포멧으로 실제 데이터를 생성하는 연구가 많았다. 그러나, 데이터나 코드뿐 만 아니라, 시스템 설계시 사용 되었던 모델을 재사용하기 위해서는 설계하는 모델에 대한 강력한 메타모델이 정의되어 있어야 하고, 모델들간의 변환을 지원하는 변환규칙의 메타모델 또한 필요하다. 변환 규칙에 대한 메타모델을 정의할 때에는 이것이 도구로 개발되었을 때 사용성(Usability)를 높일 수 있고 변환 규칙의 표현이 강력하도록 정의해야 한다. In addition, the prior art has focused on the reuse of data or code rather than the reuse of models to generate abstract data and to generate actual data in various formats. However, in order to reuse not only data or code but also the model used in system design, a powerful metamodel for the model to be designed must be defined, and a metamodel of transformation rules to support the conversion between models is also required. When defining metamodels for transformation rules, they should be defined so that they can increase usability when developed as a tool, and the representation of transformation rules is strong.
Biju Appukuttan, Tony Clark, Sreedhar Reddy, Laurence Tratt, and R. Venkatesh의 논문, A model driven approach to building implementable model transformations은 모델 기반의 개발을 지원하기 위하여 패턴매칭을 지원하는 MTL(Model Transformation Language)를 이용한 모델 조작과 변환 기법을 제안하였다. 상기 MTL은 모델 요소들이 메타모델의 패턴을 기반으로 매칭되는 것을 지원하며, Relation과 Mapping을 정의하여 변환을 수행하도록 한다. 또한 Mapping은 Action 부분을 가지고 있어서 변환의 실제 구현을 담고 있다. 그러나 MTL로 정의한 변환 규칙은 소스 모델의 각 해당 요소에 대한 변환 규칙은 표현하고 있으나, 두 개 이상의 소스 모델 요소들의 관계에 대한 목적 모델로의 변환은 지원하지 않는다. 또한 하나의 소스 모델 요소가 여러 개의 목적 모델 요소들로 변환될 때, 그것들 사이의 관계가 명시적으로 정의되지 않는다. MTL이 모델 변환 규칙을 정의하는 표현 능력은 뛰어나나 규칙을 정의할 때 복잡해질 수도 있으므로 MTL을 이용한 변환 규칙 정의는 많은 노력을 필요로 한다. A paper by Biju Appukuttan, Tony Clark, Sreedhar Reddy, Laurence Tratt, and R. Venkatesh, A model driven approach to building implementable model transformations uses MTL (Model Transformation Language) to support pattern matching to support model-based development. We proposed a model manipulation and transformation technique. The MTL supports model elements to be matched based on the metamodel pattern, and defines relation and mapping to perform transformation. Mapping also has an Action part, which contains the actual implementation of the transformation. However, the conversion rule defined by MTL expresses the conversion rule for each corresponding element of the source model, but does not support conversion to the destination model for the relationship between two or more source model elements. In addition, when a source model element is converted into several object model elements, the relationship between them is not explicitly defined. MTL has a good expressive ability to define model transformation rules, but it can be complicated when defining rules.
따라서, 본 발명의 목적은 모델 기반의 개발시 가장 중요한 기술인 모델간의 자동변환을 지원하기 위하여 변환 규칙을 정의할 수 있는 메타모델을 정의하고, 이 를 이용할 수 있는 시스템의 구조와 개발 절차를 제공함에 있다.Accordingly, an object of the present invention is to define a metamodel that can define a conversion rule in order to support automatic conversion between models, which is the most important technology in model-based development, and to provide a system structure and a development procedure that can use the same. have.
또한 본 발명의 다른 목적은 이러한 어려움을 극복하기 위하여, MOF 기반의 변환 메타모델을 정의하며, 모델 요소들간의 1:1 의 단순한 모델 매핑 뿐만 아니라, 1:N의 다중 매핑도 지원하고, 모델 요소들 간의 관계도 명시적으로 매핑할 수 있는 변환 구조를 제공함에 있다. In addition, another object of the present invention, to overcome this difficulty, to define a transform metamodel based on the MOF, and to support 1: N multiple mapping as well as simple model mapping between model elements, model elements The relationship between them is also provided to provide a transformation structure that can be explicitly mapped.
또한 본 발명의 다른 목적은 메타모델간의 매핑만을 고려하면 구현 코드와 거의 1:1 매핑될 수 있는 PSM모델의 표현요소들이 누락될 수 있으므로, 완벽한 PSM이 나오도록 메타모델을 기반으로 정의된 모델 인스턴스까지 고려하여 매핑하는 템플릿 기반의 변환 구조를 제공하며, 정의된 변환 모델을 실제 개발자들이 시각적으로 쉽게 작성할 수 있도록 지원하는 시스템의 구조와 개발하는 소프트웨어 시스템의 모델 변환을 수행하는 절차를 제공함에 있다.In addition, another object of the present invention may be missing representation elements of the PSM model that can be mapped almost 1: 1 with the implementation code, considering only the mapping between metamodels, model instances defined based on the metamodel to produce a complete PSM It provides a template-based transformation structure that maps to the point of consideration, and provides a procedure for performing model transformation of the developing software system and the structure of the system supporting the actual developer to easily create the defined transformation model.
상기 목적을 달성하기 위한 본 발명의 특징은, 모델들간의 변환규칙을 정의할 수 있는 변환구조의 메타모델을 제안함으로써, 일대일 매핑, 일대다 매핑, 모델 요소들간의 관계 매핑을 지원하고, 변환하고자 하는 모델의 인스턴스까지 매핑하여 모델을 자동으로 변환할 수 있도록 하며, 이를 위한 모델 변환 절차 및 지원 시스템을 제안함으로써, 모델 기반의 소프트웨어 시스템 개발의 장점인 모델 자동 생성과 개발 시간 단축을 실현하는 것을 특징으로 한다.A feature of the present invention for achieving the above object is to support a one-to-one mapping, one-to-many mapping, relationship mapping between model elements and to transform by proposing a metamodel of a transformation structure that can define the transformation rules between models The model can be automatically converted by mapping to the instance of the model to be modeled, and the model conversion procedure and supporting system are proposed to realize the model automatic generation and the reduction of development time, which are advantages of the model-based software system development. It is done.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation of the preferred embodiment according to the present invention.
도 1은 본 발명의 실시 예에 따른 MOF 메타데이터 구조를 도시한 것이다. 상기 도 1을 참조하면, 모델 기반의 소프트웨어 시스템 개발은 모델을 MOF 메타데이터 아키텍쳐(MOF Metadata Architecture)에 의하여 구분하고 이를 기반으로 시스템 모델링 및 모델 변환을 수행한다. MOF 메타데이타 아키텍쳐는 4-layer의 메타데이터 아키텍쳐를 따르며, 이를 M0에서 M3 레벨까지의 모델로 구분한다. M0는 실제 구현하는 데이터를 의미하며, M1은 데이터를 표현하는 메타데이터로 모델이라고 한다. M2는 모델의 의미 및 구조를 표현하는 메타모델을 의미하며, M3는 이러한 메타모델의 의미 및 구조를 의미하는 메타-메타모델을 의미하며 이러한 메타 구조는 계속적으로 정의될 수 있다. M3 레벨 이상의 메타구조는 모두 M3 레벨로 표현한다.1 illustrates a MOF metadata structure according to an embodiment of the present invention. Referring to FIG. 1, a model-based software system development classifies a model by a MOF metadata architecture and performs system modeling and model transformation based on the model. The MOF metadata architecture follows the 4-layer metadata architecture and divides it into models from M0 to M3 levels. M0 means data to be actually implemented, and M1 is metadata representing data and is called a model. M2 means a metamodel expressing the meaning and structure of the model, and M3 means a meta-metamodel meaning the meaning and structure of this metamodel, and this metastructure may be continuously defined. Meta structures above the M3 level are all represented at the M3 level.
모델 기반의 소프트웨어 시스템 개발방법에서는 원하는 도메인마다 M2 레벨의 UML 메타모델을 M3 레벨의 MOF를 기반으로 확장하여 표현한다. 예를 들어, J2EE(Java 2 Enterprise Edition) 플랫폼을 도메인으로 정하여 서버 레벨의 컴포넌트들을 EJB(Enterprise JavaBeans)로 개발한다면, EJB 모델을 UML로 표현할 때 EJB의 특정 속성들을 표현할 수 있어야 한다. 기존의 UML 메타모델을 확장하여 각 도메인에 맞는 메타모델을 정의한 것이 UML Profile이다. MOF를 기반으로 정의된 UML 메타모델 및 UML Profile들을 이용한 모델 기반의 개발은 M2 레벨의 메타모델 요소들간의 변환 규칙을 정의하고 정의된 규칙에 따라 자동으로 모델을 변환한다. 그러나, M2 레벨의 메타모델들간의 변환 규칙이 일대일 매핑의 간단한 매핑만 있는 것은 아니다. 소스 모델의 요소가 조건에 따라 목적 모델의 다양한 요소에 매핑될 수도 있다. 또한, M2 레벨의 모델 매핑이 두 모델간의 모델 변환을 완전하게 지원 하지 않는 경우가 있다. 예를 들어, UML을 따르는 기본 분석모델을 J2EE 플랫폼의 PSM으로 변환할 때, 소스 모델에 정의되어 있는 M2 레벨의 Entity Class가 목적 모델의 M2 레벨과 M1 레벨에 정의되어 있는 EntityBean의 기본 클래스들과 그 내부의 오퍼레이션들의 생성에 모두 관여할 수 있다. 여기서 생성되는 오퍼레이션들은 M2레벨에서는 단일한 Method 라는 메타모델 요소로 표현되지만, M1 레벨에서는 다양한 오퍼레이션으로 정의된다. 따라서, 모델간의 완전한 변환을 지원하기 위해서는 모델의 레벨과 매핑의 종류를 모두 고려하여 정의할 수 있는 변환 모델의 구조가 필요하다. In the model-based software system development method, M2 level UML metamodel is extended and expressed based on M3 level MOF for each domain. For example, if you develop a Java 2 Enterprise Edition (J2EE) platform as a domain and develop server-level components as Enterprise JavaBeans (EJBs), you must be able to express the EJB's specific attributes when you express the EJB model in UML. The UML Profile defines the metamodel for each domain by extending the existing UML metamodel. Model-based development using the UML metamodel and UML profiles defined based on MOF defines the conversion rules between metamodel elements at the M2 level and automatically converts the model according to the defined rules. However, the conversion rule between M2 level metamodels is not just a simple mapping of one-to-one mapping. Elements of the source model may be mapped to various elements of the target model depending on conditions. In addition, model mapping at the M2 level may not fully support model transformation between two models. For example, when converting a UML-compliant analytic model to a PSM on the J2EE platform, the M2 level entity class defined in the source model and the EntityBean base classes defined at the M2 and M1 levels of the target model. It can all participate in the creation of operations within it. The operations created here are represented by a single metamodel element called Method at the M2 level, but are defined as various operations at the M1 level. Therefore, in order to support complete conversion between models, a structure of a conversion model that can be defined in consideration of both the level of the model and the type of mapping is required.
도 2는 본 발명의 실시 예에 따른 모델 변환 개념을 도시한 것이다. 상기 도 2를 참조하면, 소스 모델과 목적 모델은 M2레벨의 메타 모델을 가지고 있다. M1 레벨의 소스 모델은 M2 레벨의 메타모델을 기반으로 편집기를 통하여 모델링되며, 이는 정의된 변환규칙을 따라 동작하는 변환엔진에 의하여 변환된다. M1 레벨의 변환 규칙은 M2 레벨의 변환 메타 모델을 기반으로 정의되며, 변환 메타 모델은 M2레벨의 소스 메타 모델이 target 플랫폼에 다양하게 매핑하고, 플랫폼에 종속적인 정보도 매핑시 고려될 수 있도록 목적 모델을 템플릿 구조로 정의할 수 있도록 한다. 따라서 M1레벨의 변환 규칙은 M2 레벨의 소스 메타모델의 요소들(예를 들어, Classifier나 Feature)을 target 플랫폼의 요소들과 매핑시키며, 이때에는 target 플랫폼의 메타모델(M2)뿐만 아니라, M1 레벨의 특정 모델 요소까지도 고려하여 변환 규칙을 정의할 수 있다. 정의된 변환규칙은 변환 엔진의 입력으로 들어가 모델링한 소스 모델을 목적 모델로 변환한다. 2 illustrates a model transformation concept according to an embodiment of the present invention. Referring to FIG. 2, the source model and the target model have a meta model of M2 level. The source model at M1 level is modeled through the editor based on the M2 level metamodel, which is converted by the conversion engine operating according to the defined conversion rules. M1 level transformation rules are defined based on the M2 level transformation metamodel, and the transformation metamodel is intended to allow the source metamodels of the M2 level to be mapped to the target platform in a variety of ways, and platform-dependent information can be considered in mapping. Allows you to define a model with a template structure. Therefore, the M1 level conversion rule maps elements of the source metamodel of the M2 level (for example, classifier or feature) with elements of the target platform, and in this case, not only the metamodel (M2) of the target platform, but also the M1 level. You can even define transformation rules by considering specific model elements of. The defined conversion rule enters the input of the conversion engine and converts the modeled source model into the destination model.
도 3은 변환규칙을 정의하고 정의된 변환규칙을 이용하여 PIM을 PSM으로 변환하는 전체 프로세스를 도시한 것이다. Figure 3 shows the overall process of defining a conversion rule and converting PIM to PSM using the defined conversion rule.
상기 도 3을 참조하면, 변환의 프로세스는 변환 규칙을 정의하는 프로세스(301)와 정의된 변환규칙을 이용하여 모델을 변환(302)하는 두 개의 부분으로 나눌 수 있다. 도 3의 (301)에 나타난 변환 규칙을 정의하는 프로세스는 시스템 개발 이전에 개발하는 도메인을 정하고, 정해진 도메인간의 모델 변환 규칙을 정의하여 모델 저장소(Model Repository)에 변환 규칙 모델을 저장한다. 도메인은 개발 플랫폼 도메인인 J2EE(Java 2 Enterprise Edition), .NET, CORBA(Common Object Request Broker Architecture)와 같은 PSM 도메인이나, 분산 엔터프라이즈 시스템 분석시 사용되는 EDOC(Enterprise Distributed Object Computing)과 같은 PIM 도메인을 모두 포함한다. 변환 규칙은 본 발명에서 제안하는 변환 규칙 정의 편집기를 이용하여 정의되며, 변환하는 모델 도메인의 모델요소들을 편집 대상으로 하여 변환 규칙을 정의할 수 있다. 정의하는 변환 규칙은 소스메타모델 요소가 목적 모델에 어떻게 매핑되는지를 정의한다. 정의된 변환 규칙은 모델 저장소에 변환 모델로 저장된다. 도 3의 (302)는 정의된 변환 규칙 모델을 기반으로 실제 소프트웨어 시스템을 개발하는 프로세스를 의미한다. 플랫폼에 독립적인 정보를 모델링하는 PIM은 (301)에서 정의한 변환 규칙 모델과 함께 변환 엔진의 입력으로 들어가 선택한 PSM 도메인에 맞는 모델로 변환된다. Referring to FIG. 3, the process of transformation may be divided into two parts, a
도 4는 M2 레벨의 변환 규칙 메타모델의 구조를 도시한 것으로, 상기 도 4를 참조하면, 변환 규칙 모델의 구조는 모든 모델이 그러하듯이 MOF를 기반으로 정의 되며, M2 레벨의 메타모델간의 변환규칙과 M1 레벨의 특정 모델 요소로의 변환규칙을 정의할 수 있도록 지원하여 해당 플랫폼 모델로 변환하기 위한 변환 규칙을 모두 정의할 수 있다. FIG. 4 illustrates the structure of the M2 level transformation rule metamodel. Referring to FIG. 4, the structure of the transformation rule model is defined based on the MOF as all models are. By supporting the definition of rules and transformation rules to specific model elements at the M1 level, both transformation rules for transformation to the platform model can be defined.
(401)은 변환 모델 구조의 최상위 노드로서 변환의 시작을 알리는 변환맵(TransformationMap)이다. TransformationMap(401)은 하위의 다양한 Map을 관리하고 있어서 하위의 변환 규칙을 변환엔진이 정의된 Map에 따라 적용할 수 있도록 한다. 변환하고자 하는 모델의 메타모델을 분류(Classifier)와 속성(Feature)으로 나누어 각각 어떻게 매핑이 되고 이들간의 관계가 어떻게 매핑되는지 정의된 Map을 관리한다.
(402)는 메타모델의 구성요소인 Classifier의 변환규칙을 정의하는 Map을 나타낸다. 분류맵(ClassifierMap)(402)은 Classifier 타입의 소스모델이 목적 모델로 변환될 때 어떻게 변환되는지를 기술한다. 본 발명에서 제안하는 ClassifierMap은 조건(Condition)에 따라 타겟(target) 요소를 결정하며, target은 특정 플랫폼의 속성을 반영한 모델의 요소까지 표현할 수 있도록 한다. 더구나, PIM을 PSM으로 변환하는 규칙을 정의할 때에는 구현 레벨의 상세한 정보까지도 생성될 수 있어야 하므로, 소스에 대한 목적 모델의 변환 규칙을 정의할 때에는 M2 레벨의 메타모델만을 고려하는 것이 아니라, 목적 모델의 M1 레벨 모델 요소까지 고려하여 변환 규칙의 정의가 가능해야 한다.
이를 지원하기 위하여, 본 발명은 매핑된 목적 모델의 요소를 나타내는 템플릿(Template) 구조를 정의하고 Template을 구성하는 Object들과 이들간의 관계를 표현하는 Link를 정의할 수 있도록 한다. ClassifierMap(402)은 Classifier 타입의 소스 메타 모델이 목적 모델에 적용되었을 때 변환되는 모델요소를 Template 구조로 나타낸다. 이러한 TargetTemplate은 오브젝트(Object)들과 이들간의 관계를 나타내는 링크(Link)들로 구성되어 매핑 엔진이 목적 모델을 생성할 수 있는 기본 정보를 제공한다. In order to support this, the present invention allows to define a template structure representing the elements of the mapped objective model and to define links representing the objects and the relationships between them. The
(403)은 메타모델의 구성요소인 속성(Feature)의 변환규칙을 정의하는 Map을 나타낸다. 각 Classifier는 Feature를 속성으로 가지고 있어서, 소스 모델의 Feature가 목적 모델에 매핑되었을 때 어떠한 type의 feature로 생성되는지 정의한다. 이때 하나 이상의 feature가 변환 시 새로운 type의 feature로 정의될 수 있는 구조를 갖는다. (404)는 소스 모델에서 Classifier들간의 관계가 목적 모델의 Object들간의 관계로 표현될 때 이를 정의하는 Map을 나타낸다. Classifier들의 관계를 조건으로 검사하여 이에 영향을 받는 target object들을 식별하고 이들간의 관계를 정의한다.
관계맵(RelationMap)(404)의 조건은 모델요소들간의 관계를 표현하는 네가지 패턴을 지원하며, 이는 'Depends', 'Contains', 'AttributeOf', 'MethodOf' 이다. 'Depends'는 object와 object 사이의 dependency 관계를 표현하며 'Contains' 관계는 Package와 Class관계와 같은 포함관계를 정의한다. 'AttributeOf'와 'MethodOf'의 관계는 서로 다른 TargetTemplate의 object들간의 관계가 속성이나 메소드의 관계로 표현될 때 이용한다. The condition of the
(405)는 모델 변환시 정의하는 수행 함수에 대한 표현이다. ClassifierMap(402)이나 FeatureMap(403)에서 정의한 TargetTemplate과 Feature에 대하여 이를 생성하는 절차를 Action들의 집합으로 표현하거나, RelationMap(404)에서 관련된 Object들을 연결시키는 절차를 Action들의 집합으로 표현한다. (406)은 모델 변환시 정의하는 조건에 대한 표현이다. ClassifierMap(402)에서는 변환하고자 하는 소스 Classifier의 속성 값을 검사하여 적절한 Target Template으로 구현하게 하며, RelationMap(404)에서는 소스 Classifier들의 관계를 검사하여 이에 타당한 target object들의 관계를 나타낸다.
도 5는 상기 도 4에서 정의한 변환규칙의 메타모델과 도 3에서 정의한 변환 프로세스를 지원하는 변환 시스템의 구조도이다. 상기 도 5를 참조하면, 모델 기반의 개발을 지원하는 시스템은 모델들을 위한 저장소가 잘 관리되어야 하며 모델들간의 자동변환을 지원하는 변환 엔진이 있어야 한다. 변환 시스템의 필수 요소는 모델 저장소(501), 변환 규칙 정의 편집기(502), 변환 엔진(503)이다. FIG. 5 is a structural diagram of a transformation system supporting the metamodel of the transformation rule defined in FIG. 4 and the transformation process defined in FIG. Referring to FIG. 5, a system supporting model-based development should have a well-managed repository for models and a conversion engine supporting automatic conversion between models. Essential elements of the transformation system are the
모델 저장소(501)는 다양한 모델을 관리하며, 모델 기반의 소프트웨어 시스템 개발을 위한 도메인의 메타모델과 모델 변환을 위한 모델, 모델링한 모델을 관리한다. 각각의 모델은 Java 언어로 구현되어 있으며, 메타데이터에 접근할 수 있는 JMI 인터페이스(Java Metadata Interface: JMI)를 통하여 모델에 접근한다. 모델 변환을 위하여 본 발명에서 정의한 변환 규칙 메타모델은 모델 저장소에서 관리하며, 변환 규칙 편집 정의기(502)의 모델로 동작한다. The
변환 규칙 정의 편집기(502)는 변환 규칙을 시각적으로 편집할 수 있도록 지원한다. 본 발명에서 제안한 변환 규칙 메타모델을 기반으로 원하는 도메인 모델간 의 변환 규칙을 ClassifierMap, FeatureMap, RelationMap을 정의할 수 있도록 한다. 목적 모델은 TargetTemplate 구조로 편집하고, 변환의 조건(Condition)과 수행 함수의 액션(Action)은 각각 OCL(Object Constraint Language)와 ASL(Action Semantic Language)를 이용하여 정의한다. 변환 규칙 편집 정의기를 통하여 정의된 변환 규칙은 하나의 변환 규칙 모델 인스턴스로 모델 저장부(501)에 저장된다. The translation
변환 엔진(503)은 실제 모델 변환을 수행한다. 변환 엔진을 수행하기 위하여 필요한 입력은 시스템 개발을 위하여 모델링한 모델과 변환 규칙 정의 편집기(502)를 통하여 정의한 변환 규칙 모델 인스턴스이다. 소스 모델의 Classifier들에 대하여 변환 규칙 모델 인스턴스에 정의된 변환 규칙을 찾아내어 목적 모델을 생성하면서 실제 데이터 값은 소스 모델의 값을 이용하여 계산한다. The
또한 변환 엔진(503)은 변환 규칙 모델 인스턴스를 분석할 수 있어야 하고, 분석된 정보를 이용하여 모델을 생성할 수 있어야 한다. 규칙 해석기(504)는 변환 규칙 모델 인스턴스를 분석하고 접근하는 역할을 하고, 모델 해석기(506)는 소스 모델을 분석하고 접근하는 역할을 한다. 조건 검사기(505)는 Source 모델의 변환하는 요소들에 대하여, 하나의 요소가 다중의 변환 규칙을 가지고 있을 때 원하는 규칙을 선택할 수 있게 조건을 검사해 주는 역할을 한다. 매핑 테이블 생성기(508)는 변환 규칙을 적용한 모델간의 연관관계를 보여주고 관리함으로써, 매핑 규칙의 변경관리나 모델의 Update관리에 사용된다. 마지막으로, 모델 생성기(509)는 Template 구조로 정의되어 있는 변환 규칙과 소스 모델의 실제 값을 이용하여 목적 모델을 생성한다. In addition, the
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.
이상에서 설명한 바와 같이, 본 발명은 모델 기반의 소프트웨어 시스템을 개발함에 있어서, 모델 변환 구조의 메타모델을 따라 해당 도메인 모델의 변환 규칙을 정의하면 실제 구현 작업이 필요했던 부분을 자동으로 생성해주기 때문에 시스템의 개발 주기를 단축할 수 있는 이점이 있으며, 또한 제안하는 변환 규칙의 메타모델은 모델간의 일대일 매핑뿐 만 아니라, 일대다 매핑과 모델 요소들간의 관계 매핑을 지원하고, 변환하고자 하는 모델의 인스턴스까지 매핑할 수 있도록 정의되었으므로, 원하는 형태의 목적 모델로 완벽하게 생성할 수 있는 이점이 있다. As described above, in the development of a model-based software system, when a transformation rule of a corresponding domain model is defined according to a metamodel of a model transformation structure, the system automatically generates a portion that required actual implementation work. The metamodel of the proposed transformation rule supports not only one-to-one mapping between models, but also one-to-many mapping and relationship mapping between model elements, and even the instance of the model to be converted. Since it is defined to be able to map, it has the advantage of being able to create perfectly with the desired model of the desired shape.
또한 본 발명의 모델 변환 절차를 지원하는 변환 시스템은 개발자가 좀 더 체계적인 방법으로 모델 변환 규칙을 정의하고 모델을 자동으로 변환할 수 있게 한다. 이때 모델 변환 시스템의 모델 저장부는 모델 기반의 개발에서 중요한 역할을 하며 생성되는 모델들의 이용 및 관리를 담당하여 개발자들의 구현부분을 줄여준다. 그리고 변환 규칙 정의 편집기를 통하여 변환 규칙을 시각적으로 정의함으로써 텍스트 기반의 매핑보다 쉽게 정의할 수 있고, 정의된 변환 규칙도 모델 저장부에서 자동으로 관리되므로 모델에 대한 관리 구현은 시스템에 일임할 수 있게 된다.In addition, the conversion system supporting the model conversion procedure of the present invention allows a developer to define a model conversion rule in a more systematic manner and automatically convert the model. At this time, the model storage unit of the model transformation system plays an important role in model-based development and reduces the implementation part of developers by taking care of the use and management of the generated models. Visually define the transformation rules through the transformation rule definition editor, making it easier to define them than text-based mappings.The defined transformation rules are also managed automatically in the model store so that the management implementation of the model can be left to the system. do.
이에 따라 본 발명에서 제안하는 모델 변환 기법과 지원 시스템을 이용하면 인스턴스 레벨의 모델까지도 자동으로 생성해 주므로, 소프트웨어 시스템 개발의 개발 기간이 단축되며, 개발자는 쉽게 모델 변환 규칙을 정의할 수 있게 되는 이점이 있다. Accordingly, the model conversion technique and the support system proposed in the present invention automatically generate an instance level model, thereby shortening the development period of software system development and allowing developers to easily define model conversion rules. There is this.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030094804A KR100576941B1 (en) | 2003-12-22 | 2003-12-22 | Metamodel-based model transformation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030094804A KR100576941B1 (en) | 2003-12-22 | 2003-12-22 | Metamodel-based model transformation apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050063404A KR20050063404A (en) | 2005-06-28 |
KR100576941B1 true KR100576941B1 (en) | 2006-05-10 |
Family
ID=37255261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030094804A KR100576941B1 (en) | 2003-12-22 | 2003-12-22 | Metamodel-based model transformation apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100576941B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200047006A (en) | 2018-10-26 | 2020-05-07 | 주식회사 피도텍 | Method and system for constructing meta model based on machine learning |
KR20230026628A (en) | 2021-08-18 | 2023-02-27 | 삼성에스디에스 주식회사 | Method and apparatus for generating a domain model |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8150886B2 (en) | 2007-08-29 | 2012-04-03 | Microsoft Corporation | Multiple database entity model generation using entity models |
WO2016099535A1 (en) * | 2014-12-19 | 2016-06-23 | Hewlett Packard Enterprise Development Lp | Specifying models of an architectural type |
CN117648833B (en) * | 2024-01-30 | 2024-05-17 | 浙江大学 | Simulink-to-SysML model generation method and device |
-
2003
- 2003-12-22 KR KR1020030094804A patent/KR100576941B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200047006A (en) | 2018-10-26 | 2020-05-07 | 주식회사 피도텍 | Method and system for constructing meta model based on machine learning |
KR20230026628A (en) | 2021-08-18 | 2023-02-27 | 삼성에스디에스 주식회사 | Method and apparatus for generating a domain model |
Also Published As
Publication number | Publication date |
---|---|
KR20050063404A (en) | 2005-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bézivin et al. | Reflective model driven engineering | |
Beazley | Automated scientific software scripting with SWIG | |
US7823120B2 (en) | Device, system and method for accelerated modeling | |
US8024703B2 (en) | Building an open model driven architecture pattern based on exemplars | |
Macias Gomez de Villar et al. | MultEcore: Combining the best of fixed-level and multilevel metamodelling | |
KR20040004619A (en) | Method and system for transforming legacy software applications into modern object-oriented systems | |
CA2306933A1 (en) | Method for data access code generation | |
Schleicher et al. | Beyond stereotyping: Metamodeling approaches for the UML | |
Ramaesh et al. | Representing and maintaining process knowledge for large-scale systems development | |
Sprinkle et al. | Domain model translation using graph transformations | |
Schippers et al. | Leveraging UML profiles to generate plugins from visual model transformations | |
KR100576941B1 (en) | Metamodel-based model transformation apparatus | |
CN113626026A (en) | Code generation method supporting complex model structure conversion | |
CN111176658B (en) | Automatic conversion method from AADL (architecture analysis and design language) to Simulink model based on meta-object mechanism | |
Sawprakhon et al. | Sequence diagram generation with model transformation technology | |
Prinz et al. | A model-based standard for SDL | |
Gurevych et al. | Automatic creation of interface specifications from ontologies | |
Batory et al. | The ADAGE avionics reference architecture | |
Schröpfer et al. | Integrating UML and ALF: An Approach to Overcome the Code Generation Dilemma in Model-Driven Software Engineering | |
Garzotto et al. | Supporting reusable web design with HDM-Edit | |
Djeddai et al. | Integrating a formal development for DSLs into meta-modeling | |
KR100250486B1 (en) | The method of transform from s/w process graphic model to process definition language | |
Ali et al. | Towards modular combination and reuse of languages with perspectives | |
Schröpfer et al. | Unifying Modeling and Programming with Valkyrie. | |
Schröpfer | An Integrated Framework for Running Extended Class Models. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100401 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |