모델 변환

Model transformation

모델 중심 엔지니어링에서 모델 변환은 모델을 수정하고 생성하는 자동화된 방법입니다.모델 변환의 예로는 소프트웨어 엔지니어가 정의할 수 있는 정확한 의미에서 모델 패밀리의 일관성을 보장하는 것이 있습니다.모델 변환을 사용하는 목적은 가능한 경우 모델의 구축 및 수정을 자동화하여 노력을 줄이고 오류를 줄이는 것입니다.

개요

모델 변환은 모델을 입력으로 사용하는 프로그램으로 생각할 수 있습니다.모델 변환 및 용도는 매우 다양하며 입력 및 출력과 표현 방식이 다릅니다.

모델 변환은 일반적으로 모델이 준수해야 하는 메타모델을 지정함으로써 어떤 모델이 입력으로 받아들여질 수 있는지, 그리고 적절한 경우 출력으로 생산될 수 있는 모델을 지정합니다.

모델 변환 분류

모델 변환 및 이들의 언어는 여러 [1][2][3]가지 방법으로 분류되어 왔습니다.다음으로 일반적인 차이점을 제시하겠습니다.

입력 및 출력의 수 및 유형

원칙적으로 모델 변환은 다양한 유형의 입력 및 출력을 가질 수 있습니다. 유일한 절대적인 제한은 모델 변환이 적어도 하나의 모델을 입력으로 받아들인다는 것입니다.그러나 어떤 모형도 출력으로 생성하지 않은 모형 변환은 일반적으로 모형 분석 또는 모형 쿼리라고 합니다.

내인성 대 외인성

내생적 변환은 같은 언어로 표현된 모델 간의 변환입니다.외인성 변환은 다른 [4]언어를 사용하여 표현되는 모델 간의 변환입니다.예를 들어 OMG 모델 중심 아키텍처를 준수하는 프로세스에서 플랫폼 독립 모델은 외부 모델 변환에 의해 플랫폼 고유 모델로 변환될 수 있습니다.

단방향과 쌍방향

단방향 모델 변환에는 실행 모드가1개밖에 없습니다.즉, 항상 같은 타입의 입력을 받아 같은 타입의 출력을 생성합니다.단방향 모델 변환은 출력 모델이 읽기 전용인 컴파일과 같은 상황에서 유용합니다.관련된 일관성의 개념은 매우 간단합니다. 입력 모델은 변환이 출력으로 생성하는 모델과만 일관됩니다.

양방향 모델 변환의 경우 동일한 유형의 모델이 입력되고 다른 시간이 출력될 수 있습니다.쌍방향 변환은 사람이 여러 모델을 작업하는 상황에서 필요하며 모델을 일관되게 유지해야 합니다.어느 한 모델을 변경하면 모델 간의 일관성을 유지하기 위해 다른 모델을 변경해야 할 수 있습니다.각 모델은 다른 모델에 반영되지 않은 정보를 통합할 수 있기 때문에 주어진 모델과 일치하는 모델이 많을 수 있습니다.중요한 특수 케이스는 다음과 같습니다.

  • 주어진 모델과 일치하는 모델이 정확히 한 개 있는, 즉 일관성 관계가 비주사적인 변환입니다.모델 쌍은 일관성 분사와 관련된 경우에만 일관성이 있습니다.두 모델 모두 동일한 정보를 포함하지만 다르게 표시됩니다.
  • 뷰 변환 - 콘크리트 모델이 단일 뷰 모델을 결정하지만 동일한 뷰 모델이 여러 콘크리트 모델에서 생성될 수 있습니다.뷰 모델은 콘크리트 모델의 추상화입니다.뷰를 갱신할 수 있는 경우는, 쌍방향 변환이 필요합니다.이 상황은 데이터베이스 필드에서 보기 업데이트로 알려져 있습니다.어떤 구체적인 모델도 그 견해와 일치합니다.

쌍방향 모델 변환은, 예를 들면 불필요하게 변경을 가하지 않거나,[5] 의도적으로 변경을 폐기하는 등, 적절한 속성을 가지는 것이 특히 중요합니다.

모델 변환을 위한 언어

모델 변환은 범용 프로그래밍 언어로 작성될 수 있지만 전문 모델 변환 언어도 사용할 수 있습니다.특히 양방향 변환은 방향이 적절하게 관련되도록 하는 언어로 작성해야 합니다.OMG 표준 모델 변환 언어는 총칭하여 QVT라고 합니다.

QVT 언어와 같은 일부 모델 변환 언어에서는 모델 변환 자체가 모델이며, 모델 변환 언어 정의의 일부인 메타모델에 부합합니다.이를 통해 HOT([6]고차 변환), 즉 입력 및/또는 출력과 같은 다른 변환이 있는 변환을 쉽게 정의할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Czarnecki; Helsen (2006). "Feature-based survey of model transformation approaches". IBM Systems Journal. 45 (3): 621–645. CiteSeerX 10.1.1.124.9674. doi:10.1147/sj.453.0621.
  2. ^ Stevens, Perdita (2008). A landscape of bidirectional model transformations (PDF). Generative and Transformational Techniques in Software Engineering II. Lecture Notes in Computer Science. Vol. 5235. Springer. pp. 408–424. doi:10.1007/978-3-540-88643-3_10. ISBN 978-3-540-88642-6.
  3. ^ Jakumeit; Buchwald; Wagelaar; Dan; Hegedüs; Herrmannsdörfer; Horn; Kalnina; Lano; Lepper; Rensink; Rose; Wätzoldt; Mazanek (2014). "A survey and comparison of transformation tools based on the transformation tool contest". Science of Computer Programming. 85: 41–99. doi:10.1016/j.scico.2013.10.009.
  4. ^ Tom Mens, Pieter Van Gorp: 모델 변환 분류법.전기.노트 이론컴퓨터Sci. 152: 125-142 (2006)
  5. ^ Stevens, Perdita (2010). "Bidirectional model transformations in QVT: semantic issues and open questions". Software and Systems Modeling. 9: 7–20. doi:10.1007/s10270-008-0109-9.
  6. ^ Tisi, Massimo (2009). On the Use of Higher-Order Model Transformations. Ecmda-Fa '09. LNCS. Vol. 5562. Springer. pp. 18–33. doi:10.1007/978-3-642-02674-4_3. ISBN 978-3-642-02673-7.

추가 정보

  • 모델 중심 소프트웨어 엔지니어링, Marco Brambilla, Jordi Cabot, Manuel Wimmer, Richard Soley(OMG 회장), Morgan & Claypool, 2012, 소프트웨어 엔지니어링에 관한 통합 강의 #1.182 페이지ISBN 9781608458820(페이퍼백), ISBN 9781608458837(전자책) http://www.mdse-book.com