Altova UModel을 이용한 모델 기반 아키텍처
UModel은 플랫폼에 독립적인 모델과 모델 변환 기능을 지원하여, 모든 코드 관련 모델 요소를 UML, C#, Visual Basic, Java, 데이터베이스, XML 스키마 등으로 변환할 수 있는 모델 기반 아키텍처(MDA)를 제공합니다. 모델 변환 플랫폼에 독립적인 모델을 사용하는 모델 기반 소프트웨어 엔지니어링 방식은 다음과 같은 두 가지 주요 장점을 제공합니다
설계 단계에서는 개발자들이 소프트웨어 언어 간의 세부 사항이나 차이점에 대해 걱정할 필요가 없습니다
기존의 UModel 프로젝트는 하나의 소스 코드 언어에서 다른 언어로 변환될 수 있습니다. 예를 들어, C# 애플리케이션을 위한 UML 모델은 Java 또는 Visual Basic 프로젝트로 변환될 수 있습니다
사용자는 기존 소스 코드로부터 역설계된 프로젝트에도 모델 변환을 적용할 수 있습니다. 예를 들어, 기존의 자바 애플리케이션을 UModel을 사용하여 역설계한 후, 비주얼 베이직 클래스를 생성하도록 변환할 수 있으며, 이 외에도 다양한 가능성이 존재합니다.
![]()
플랫폼에 구애받지 않는 모델
모델 기반 아키텍처(Model Driven Architecture, MDA)는 오브젝트 관리 그룹(Object Management Group)에서 관리하는 UML(Unified Modeling Language, 통합 모델링 언어)을 적용하기 위한 표준 및 방법론의 집합입니다. MDA에서 소프트웨어 프로젝트의 UML 모델은 특정 프로그래밍 언어의 세부 사항에 대한 고려 없이 완전히 설명할 수 있는 플랫폼 독립적인 모델(Platform Independent Model, PIM)입니다. 이러한 개발 전략을 통해 소프트웨어 아키텍트 및 다른 개발자들은 특정 프로그래밍 언어의 특성보다는 해당 분야의 논리에만 집중할 수 있습니다.
타입 매핑
모델 변환 과정에서 UModel은 소스에서 대상 시스템으로 데이터 유형을 매핑하여 언어 간의 차이를 조정합니다. "유형 매핑" 대화 상자를 통해 유형 매핑 항목을 확인하거나 수정할 수 있습니다.
![]()
UModel은 변환된 프로젝트에 대상 언어 프로필을 자동으로 추가합니다.
UML 클래스 다이어그램
모델 변환 과정에서 UModel은 대상 시스템에 맞는 새로운 UML 클래스와 클래스 다이어그램을 생성하며, 이는 원래 프로젝트에 있던 클래스와 클래스 다이어그램을 반영합니다. 아래 스크린샷은 자바에서 모델 변환 후 생성된 비주얼 베이직의 "계정" 계층 구조 다이어그램을 보여줍니다. 모델 트리에서 "VB Target"이라는 새 폴더에 생성된 새로운 "계정" 클래스는 모든 속성과 연산에 대해 비주얼 베이직 구문을 사용합니다. 예를 들어, 새로운 "잔액" 속성은 비주얼 베이직의 "Single" 데이터 유형으로 정의되었지만, 자바에서는 "float" 데이터 유형이 사용되었습니다. 변환 후, 원래 자바용 "계정" 클래스는 모델 트리에서 원래 위치에 그대로 유지됩니다. 이제 원래 자바용 UML 디자인은 자바와 비주얼 베이직, 두 가지 소스 코드 언어로 코드를 생성합니다.
![]()
지속적인 변환 매개변수
변환 패러다임은 기존 변환을 업데이트하고, 이러한 업데이트를 지정된 대상 모델에 통합하는 것을 포함합니다. 변환 파라미터는 모델 내의 "모델 변환 프로필"에 저장됩니다. 이 변환 프로필은 코드 생성(순방향 엔지니어링) 전에, 그리고/또는 역방향 엔지니어링 후에 자동으로 변환을 실행하도록 설정할 수 있습니다. 이를 통해 다른 모델 요소의 변경 사항을 기반으로 특정 대상 언어의 요소를 업데이트할 수 있습니다.
![]()
이 변환 프로필 설정은 언제든지 변경할 수 있습니다.
![]()
이 기능은 UModel이 다양한 소스 코드 언어의 유지 보수 작업을 자동화하여, 크로스 플랫폼 모델이 발전함에 따라 효율성을 높여줍니다. UModel 2012를 사용하여 모델 기반 아키텍처와 모델 변환을 경험해 보고 싶으시다면, 30일 무료 체험판을 다운로드하실 수 있습니다.