---
title: Altova UModelを使用したモデル駆動型アーキテクチャ
date: 2012-02-14
tags:
  - uml
  - uml-tool
  - umodel
  - v2012
description: UModelは、プラットフォームに依存しないモデルと、UML、C#、Visual Basic、Java、データベース、XMLスキーマといった様々な要素を相互に変換するモデル変換機能を備え、モデル駆動型アーキテクチャをサポートします
---
Status: #blog

Tags:  #uml #uml-tool #umodel #v2012

Categories: [Altova](/blog/ja/category/altova.md) 
# Altova UModelを使用したモデル駆動型アーキテクチャ

 [UModel](https://www.altova.com/ja/umodel.html)は、プラットフォームに依存しないモデルと、モデル変換機能をサポートしており、この機能により、UML、C#、Visual Basic、Java、データベース、XMLスキーマといった、コードに関わるすべてのモデリング要素を相互に変換できます。
**モデル変換**：モデル駆動型アーキテクチャ（MDA）のアプローチによるソフトウェア開発は、プラットフォームに依存しないモデルを用いることで、主に以下の2つの利点があります

- 設計段階においては、開発者はソフトウェア言語間の詳細な差異や多様性について心配する必要はありません  
    
- 既存のUModelプロジェクトは、あるソースコード言語から別の言語に変換することができます。例えば、C#アプリケーションのUMLモデルを、JavaまたはVisual Basicのプロジェクトに変換することが可能です

ユーザーは、既存のソースコードから逆コンパイルされたプロジェクトに対しても、モデル変換を適用することができます。例えば、既存のJavaアプリケーションをUModelで逆コンパイルし、その後、Visual Basicのクラスを生成するように変換することができます。他にも、さまざまな変換が可能です。 

[![Altova UModelにおけるモデル変換ダイアログ](https://lh5.ggpht.com/-vlDqDh0bm04/TzGCelTJU_I/AAAAAAAAAmo/5iBbBSXMQN8/clip_image001_thumb.png?imgmax=800 "Model Transformation Dialog")](http://lh4.ggpht.com/-IkLLlKyafts/TzGCeZSd8gI/AAAAAAAAAmk/l08wEfYKH04/s1600-h/clip_image001%25255B3%25255D.png) 

## プラットフォームに依存しないモデル
モデル駆動型アーキテクチャ（MDA）は、Object Management Groupが管理するUML（統一モデリング言語）を適用するための規格と手法の集合です。MDAでは、ソフトウェアプロジェクトのUMLモデルは、特定のプログラミング言語の詳細を考慮することなく、完全に記述できるプラットフォームに依存しないモデル（PIM）として扱われます。この開発戦略により、ソフトウェアアーキテクとその他の開発者は、特定のプログラミング言語の特性ではなく、対象となる分野で必要とされるロジックに集中することができます。 

## データ型マッピング
モデル変換の際、UModelは、異なる言語間の差異に対応するために、ソース側のデータ型をターゲット側のデータ型にマッピングします。タイプマッピングダイアログを使用すると、タイプマッピングの設定を確認したり、必要に応じて編集したりすることができます。 

[![UMLモデル変換における型マッピング](https://lh5.ggpht.com/-wv6KDewZJG8/TzGCfHTDz8I/AAAAAAAAAm8/2HbRCTFxdoQ/clip_image002_thumb.png?imgmax=800 "Type Mapping for UML Model Transformation")](http://lh4.ggpht.com/-rEbyMfbBpyQ/TzGCesGg87I/AAAAAAAAAm0/bxq-gJkEpxA/s1600-h/clip_image002%25255B3%25255D.png) 

UModelは、変換されたプロジェクトに、自動的にターゲット言語の設定を適用します。 

## UMLクラス図 
モデル変換の一環として、UModelは、元のプロジェクトに存在するクラスやクラス図を反映した、新しいUMLクラスとクラス図をターゲットに対して生成します。以下に示されたスクリーンショットは、JavaからVisual Basicへのモデル変換後、Visual Basicにおける「アカウント」の階層図です。モデルツリー内の「VB Target」という新しいフォルダに生成された新しい「アカウント」クラスは、すべてのプロパティと操作に対してVisual Basicの構文を使用しています。例えば、新しい「残高」プロパティは、Visual BasicのSingleデータ型として定義されていますが、Javaではfloatデータ型でした。変換後、元のJava用の「アカウント」クラスは、モデルツリー内の元の場所にそのまま保持されます。これにより、元のJavaのUML設計に基づいて、JavaとVisual Basicという複数のソースコード言語でコードが生成されるようになります。 

[![UModelのクラス図とモデルツリー](https://lh4.ggpht.com/-YLCTivkFrmA/TzGCfqos7qI/AAAAAAAAAnM/LXPoJNJq2w8/clip_image003_thumb.png?imgmax=800 "UModel class diagram and Model Tree")](http://lh4.ggpht.com/-szjiBcB8F-k/TzGCfaRJyVI/AAAAAAAAAnE/BG4Wj_kpps8/s1600-h/clip_image003%25255B3%25255D.png) 

## 継続的な変換パラメータ 
この変換パラダイムは、既存の変換を更新し、その更新内容を特定のターゲットモデルに統合することにも適用されます。変換パラメータは、モデル内の「モデル変換プロファイル」に格納されます。この変換プロファイルは、コード生成（フォワードエンジニアリング）の前に、またはリバースエンジニアリングの後に、自動的に変換を実行するように設定できます。これにより、あるターゲット言語の要素を、別の言語のモデル要素の変更に基づいて更新することができます。 

[![モデルと共に保存される、UModelの変換パラメータ](https://lh4.ggpht.com/-Bx5vm9d3qxs/TzGCgsJoN9I/AAAAAAAAAnc/7ztagxEOGsM/clip_image004_thumb.png?imgmax=800 "UModel Model Transformation Parameters")](http://lh4.ggpht.com/-DHWJQT8EZsI/TzGCgI86yiI/AAAAAAAAAnU/rgnof3YteXc/s1600-h/clip_image004%25255B3%25255D.png) 

これらの変換プロファイルの設定は、いつでも変更することができます。 

[![UModel変換プロファイルの設定](https://lh6.ggpht.com/-sReAh4mAWY0/TzGChB9cMlI/AAAAAAAAAns/4VUGEppaMGo/clip_image005_thumb.png?imgmax=800 "Transformation Profile Settings")](http://lh3.ggpht.com/-f4vf3DYtxLU/TzGCgzLGIDI/AAAAAAAAAnk/l2ck6BKgv3w/s1600-h/clip_image005%25255B3%25255D.png) 

この機能により、UModelは、クロスプラットフォームモデルの進化に伴い、複数のソースコード言語のメンテナンス作業を大幅に自動化することができます。UModel 2012でモデル駆動型アーキテクチャとモデル変換を試してみたい場合は、[30日間の無料トライアル版をダウンロード](https://www.altova.com/ja/download/umodel/uml_tool_enterprise.html)できます。
