---
title: UModelを使用したC++のためのUMLモデリング
date: 2019-08-21
categories:
  - software
  - tools
tags:
  - c
  - software-modeling
  - uml
  - uml-tool
  - umodel
description: Altova UModelは、最先端のUMLモデリングツールと競合し、UML図からC++コードを生成するための、包括的なコードエンジニアリング機能を備えています。
---
Status: #blog

Tags:  #c #software-modeling #uml #uml-tool #umodel

Categories: [uml](/blog/ja/category/uml.md) | [development](/blog/ja/category/development.md)
# UModelを使用したC++のためのUMLモデリング

C++は、現在利用可能なプログラミング言語の中でも最も強力で効率的な言語の一つであり、高性能な計算、サーバーアプリケーション、そして高度な機能が必要とされる複雑なシステム開発において、事実上の標準となっています。Unified Modeling Language™ (UML®)は、C++やその他のソースコード言語で実装されたソフトウェアシステムのモデルを設計、可視化し、ドキュメント化するための標準規格です。

Altova UModelは、最上位の製品と競合するソフトウェアです [高度なUMLモデリング](https://www.altova.com/ja/umodel) C++に対応したUMLモデリングにおいて、完全なコードエンジニアリング機能を備えたツールです。UModelには、UML図からC++コードを生成する機能、C++コードを解析してUMLモデルを生成する機能、そしてC++コードとUMLモデルの両方を更新できる双方向のエンジニアリング機能が含まれています。

モデル変換機能は、さらに、Java、C#、またはVisual Basic用に設計された既存のUMLモデルを、C++に対応するように変換することも可能です。

[![](/blog/images/BLOG_State_machine02.png)](BLOG_State_machine02.png)

<!--more-->

UModelにおいて、C++向けのUMLを始めるには、いくつかの方法があります

- 新しいUModelプロジェクトを作成し、ターゲットとするプログラミング言語としてC++を選択してください
- 既存のC++プロジェクトからコードをインポートし、新しいUMLモデルを作成します
- 既存のUML図をC++コードに変換する
- UModelに付属しているサンプルC++プロジェクトを開きます

[UModel](https://www.altova.com/ja/umodel)には、JavaまたはC#で実装されたサンプル住宅ローンプロジェクトが含まれており、これはビジネスプロセスモデルとして機能します。さらに、SysMLのバージョンも用意されています。私たちは、C#版をC++向けに変換し、その結果を新しいプロジェクトとして保存しました。

この銀行関連プロジェクトには、様々な種類の銀行口座に対応するためのクラス階層が含まれており、以下に示すクラス図はその一例です

[![C++のオリジナルクラス図に対するUMLモデリング](/blog/images/UML-class-diagram.png)](UML-class-diagram.png)

開発者は、銀行アプリケーションを拡張し、証券口座に対応させる作業を割り当てられることがあります。以下に示すように、新しいクラスを既存の図に直接追加することができます。（一部の既存クラスは、スペースを節約するため、折りたたんで表示しています。）

[![UModelプロジェクトにおける、C++のクラス図を修正するためのUMLモデリング](/blog/images/revised-UML-class-diagram.png)](revised-UML-class-diagram.png)

上記のクラス図では、UModelのアイコンが、プロパティや操作の可視性（保護、公開、非公開）を視覚的に示しています。もしご希望であれば、従来のUMLで使用される記号（#、+など）を使用することも可能です。

[![C++向けのUMLモデリングプロジェクトにおける、従来のUMLクラス定義](/blog/images/traditional-style-UML-class.png)](traditional-style-UML-class.png)

残された作業は、新しい「BrokerageAccount」クラスに対して、プロパティウィンドウでコードファイル名を指定することです

コード生成は、メインのプロジェクトメニューから開始され、いくつかの設定を行うためのダイアログが表示されます。

[![C++プロジェクトにおけるUMLモデリングにおけるUModelコード生成オプション](/blog/images/generate-code.png)](generate-code.png)

UModelは、UML図からC++コードを生成することができ、生成されるコードはC++ 98、C++ 11、またはC++ 14のいずれかのバージョンに対応しています。また、Visual Studio 6.0からVisual Studio 2017までのバージョンに対応したプロジェクトを作成することも可能です。コードの生成が成功すると、メッセージウィンドウにその旨が表示されます。以下に、新しく作成したクラスのC++ソースコードの一部を示します

[![UModelは、C++向けのUMLモデリングに使用できるソースコードを生成します](/blog/images/code-file.png)](code-file.png)

UModelのヘルプファイルには、独自のUML C++プロジェクトを構築するための詳細な手順が記載されています。また、より複雑な例にすぐに取り組みたい場合は、C++で実装された実際の暖房/空調システムのステートマシンのUMLモデルも含まれています。

[![C++のサンプルプロジェクトにおける、UMLモデリングで用いられるUModelステートマシン図](/blog/images/UModel-aircondition.png)](UModel-aircondition.png)

UModelは、手頃な価格で利用できるUMLツールであり、豊富なビジュアルインターフェースと、データベースやXMLモデリング、XMIによるモデルの交換、ビジネスプロセスモデリングのサポート、ドキュメント生成、チームワーク支援など、高度な機能を備えています。これにより、開発チームは、今日のプロジェクトにおける様々な課題に対応するための強力なツールを手に入れることができます。

[無料トライアル版をダウンロードして、C++向けのUMLプロジェクトをすぐに始めましょう](https://www.altova.com/ja/umodel/download)
