UMLモデリングツール紹介:IBM Rational Rhapsody編
モデル駆動型開発に役立つツール「IBM Rational Rhapsody」
組み込みシステムの設計などでも利用されている「IBM Rational Rhapsody」。今回は、UMLからのコード自動生成機能を備え、モデル駆動型開発を支援する同ツールの利点と課題を考察する。
今回は「IBM Rational Rhapsody」を紹介する。IBM Rational Rhapsodyは開発元のI-Logixが2006年にTelelogicに買収され、さらに2008年にTelelogicをIBMが買収したことにより、現在はIBMの開発製品群の1つとして販売されている。また、日本国内では伊藤忠テクノソリューションズでも販売・サポートを行っている。IBM Rational Rhapsodyは、組み込みシステムをメインターゲットとしており、航空宇宙、自動車やOA機器などの業界における製品開発で利用されている。
| 製品名 | 概要 |
|---|---|
| IBM Rational Rhapsody Architect for Software | モデル駆動型開発による、組み込みシステムとリアルタイムソフトウェアの開発・設計 |
| IBM Rational Rhapsody Architect for Systems Engineers | UML、SysML、UPDMを使用するモデル駆動型開発による、システムエンジニアリング要求の分析 |
| IBM Rational Rhapsody Designer for System Engineers | UML、SysML、UPDMを使用するモデル駆動型開発による、システムの分析、開発、およびシミュレーションを行う |
| IBM Rational Rhapsody Developer | 制御系/リアルタイム、または組み込みシステムのためのモデル駆動型開発環境 |
今回の記事ではIBM Rational Rhapsody Developer(以下、Rhapsody)を取り上げる。
RhapsodyはUMLのバージョン2.0に対応しており、以下のダイヤグラムを作成することができる。
| ダイヤグラム名 | 対応状況 | 備考 |
|---|---|---|
| クラス図 | ○ | オブジェクトモデル図として対応 |
| オブジェクト図 | ○ | |
| パッケージ図 | ○ | オブジェクトモデル図として対応 |
| コンポーネント図 | ○ | |
| コンポジット構造図 | ○ | 構造(structure)図として対応 |
| 配置図 | ○ | |
| ステートマシン図 | ○ | 「ステートチャート」と表記。状態遷移表による表示も可能 |
| アクティビティ図 | ○ | |
| シーケンス図 | ○ | コミュニケーション図と相互変換可能(アドインを利用) |
| コミュニケーション図 | ○ | 「コラボレーション図」と表記 |
| タイミング図 | × | |
| 相互作用概要図 | × | |
| ユースケース図 | ○ |
Rhapsodyは上記のダイヤグラムに加えて、フローチャートにも対応する。また上述の製品一覧で“for Systems Engineers”と付いている「システムエンジニアリング版」では、システムエンジニアリング用の標準モデリング言語「SysML」にも対応している。さらに、UMLモデルの標準ファイルフォーマット「XMI」にも対応し、ほかのモデリングツールとのモデル交換も可能である。
Rhapsodyには画面や製品の操作パネルに相当する「GUI(パネル)」を作成するエディタも付いており、作成したパネルをモデルとリンクさせて利用することも可能だ。ただ、Rhapsodyには「ダイヤグラムを記述するための制約」が幾つかあり、UMLモデルを作成するためのUMLエディタとして使用する際には注意が必要である。この点については後ほどあらためて詳述する。
RhapsodyにはUML仕様以外にも、モデル要素の色やフォントの変更、直線や長方形を使って自由に図形を描くことができる「ダイヤグラム作成機能」が備えられている。なお、一部のダイヤグラムでは日本語入力可能だが、基本的には英語のみとなる。メニュー表示やツール自体が使用する表記も英語なので、その点は導入時に考慮する必要があるだろう。
Rhapsodyで作成したモデルの持つ情報を利用する機能としては「ドキュメント(RTF形式)の生成」「チェックリスト形式によるモデルチェック」「モデルを利用したシミュレーション」などが可能だ。
モデルを利用したソースコードの生成が可能
Rhapsodyがほかのツールと一線を画す特徴として「モデルを利用したソースコードの生成も可能」なことが挙げられる。
RhapsodyはJava、C/C++、Ada(※)などのプログラミング言語に対応しており、特にC言語のためのソフトウェア開発標準規格「MISRA-C」のコーディング規約に対応する形でコード生成が可能である。
(※) Ada:1980年に考案された手続き型のプログラミング言語。米国防総省が同省に納入するソフトウェアの開発をAdaで行うことを指定したため、政府部門や関連産業で利用されていた。
C言語やMISRA-Cに対応している点は組み込みシステムをメインターゲットとしているこのツールならではだといえる。また、車載システム向け共通ソフトウェアプラットフォーム「AUTOSAR」に対応したコードの生成も可能だ。
差別化ポイントは「MDD」「モデルシミュレーション」
次に、Rhapsodyのほかのツールとの差別化ポイントを紹介していこう。
MDD(Model Driven Development:モデル駆動型開発)
これが前述したコード生成に関する、Rhapsodyの大きな特徴の1つだ。Rhapsodyではコード生成だけではなく、ターゲットとなるリアルタイムOS(以下、RTOS)とコンパイラを指定しておけば、クロスコンパイルとビルドまで行える。つまり、モデルの記述から「実行可能な」バイナリの生成までが可能だ。
また、後述するモデルシミュレーションと合わせることで「モデルを作成し、その動きをシミュレーション機能で確認した後、問題がなければバイナリを生成してターゲットとなる実機上でその動作確認を行う」ことが可能となる。こうした「モデルを中心として開発を行う形態」であるモデル駆動型開発(MDD)は、組み込みシステム開発で主に使われる開発手法だ。
Rhapsodyでは、コンパイラとターゲットOSの組み合わせを「コンフィギュレーション」として複数登録できる。複数登録しておくと、開発環境用と実機用のそれぞれの実行バイナリを同じモデルから作成したり、デバッグ用とリリース用のビルドを分けたりすることも可能だ。
Rhapsodyで登録可能なコンパイラとターゲットOS
- コンパイラ:GCC、Microsoft Visual Studio、Borland C++ Builder
- ターゲットOS:ITRON、VxWorks、Windows CE、Linux
実際にMDDを行う場合、「どのような手順と考え方でモデルを作成するか」が重要な問題になる。この点については、I-Logixでオブジェクト指向開発方法論を策定していたブルース・ダグラス氏がRhapsodyの開発にもかかわっていたため、その考え方がRhapsodyには反映されており、かつ書籍としてしてもまとめられている(※)。同氏の著書を参考にしながらモデル作成を進めると自社におけるMDDの導入もしやすいだろう。
(※)『リアルタイムUML』(発行:翔泳社、著:Bruce Douglass、訳:オージス総研、監訳:渡辺博之、2001年)
モデルシミュレーション機能
Rhapsodyのシミュレーション機能には、Rhapsody上にモデルとして表現されたシステムに対して、イベント入力やその動作をステートマシンのアニメーションやシーケンス図などのログで確認できる。特にシーケンス図については、2つのシーケンス図を比較して、その違いをグラフィカルに表現することも可能だ。
例えば、「想定される動作を表すシーケンス図」と「実際の動作結果のシーケンス図」を比較して、モデルの誤りを検出できる。また、仕様変更前後のシーケンス図を比較することで、その変更がモデル全体にどのような影響を及ぼすかを確認するという使い方も可能だ。
さらに、シミュレーションに用いるイベントのリストは記録できるため、モデルに対する回帰テスト環境を構築することも容易である。
もう1つの特徴として「GUIとの連携」が挙げられる。
通常の組み込みシステムの開発では、操作パネルを使用した動作シミュレーションを行う場合には「操作パネルのハードウェアを用意する」または「シミュレータ上に仮のGUIを構築し、さらにそれらと接続するためのプログラムを記述する」のどちらかが必要である。それらの環境を用意するにはそれなりの手間が掛かる。
これがRhapsodyのパネル用エディタでGUIを作成すると、そのGUIとモデルの対応関係を定義するだけで動作確認が行える。GUIを使用してステートマシン図やシーケンス図による動作確認ができるため、実機がなくてもモデル上でかなりの部分の動作確認が可能だ。これは開発早期からの検証を可能にするため、通常の開発と比較してその部分の工数を削減することができる。
モデリングツールの中にはモデルの作成やコード生成はできるが、「実際にモデルを動かして動作を確認できる」というツールは少ない。さらに、シーケンス図の比較などといった「モデルの動作結果を確認するための機能を備えている」ものはさらに少なくなる。この点はRhapsodyとほかのモデリングツールとの大きな差別化ポイントだといえる。
Rhapsody使用時に気を付けること
次にRhapsodyの課題ともいえる点を考える。
表記法の混在
まずは挙げられるのは「Rhapsody内でUMLの表記法が混在している」ことである。前述のUMLのダイヤグラムの対応状況の表にも記載しているが、Rhapsodyでは、コラボレーション図に代表されるようにUML1.5時代のダイヤグラム名が残っている。また、ダイヤグラムの中には、ステートマシンを持っているクラスを表すアイコンなど、Rhapsody独自の表記も登場する。そのため、UML初心者から見た場合に「UML2.0で定義されている」ものがどれか分かりづらいこともある。
さらに「インスタンス間に継承関係が引けてしまう」といったUMLの表記ルールとしては許されていない記述もできてしまう。そのため、UML資格試験対策のように「UMLを正確に覚える必要がある」際は、Rhapsodyを使用していると混乱を招きやすい。また、Rhapsodyからそれ以外のツールに移行したときに用語や表記の違いが影響することも考えられるので、その点を注意する必要がある。
ダイヤグラム作成時の制約
これは実行可能なソフトウェアを生成できることの裏返しとなっている部分であるが、Rhapsodyではダイヤグラムの役割やその間の対応関係をある程度限定することで、実行可能なレベルのソースコードの生成を行っている。そのため、ユーザーがダイヤグラムを自由に作れないことがある。
例えば「ステートマシン図は何らかのクラスに対応していなければならないし、アクティビティ図は何らかのオペレーション(クラスの持つ操作)に対応していなければならない」といったことが挙げられる。つまり、ステートマシン図やアクティビティ図を単独で書くことはできないのである。
この制約は、ソースコードの生成にこだわらずにUMLのダイヤグラムを作るような「UMLエディタ」として使用したときに発生しやすい問題だ。特に、分析モデリングのように自由にモデルを作成したいときには、ダミーのクラスを作るといった回避策を取る必要が出てくる。
MDDの推進を支援する有効なツール
実際、Rhapsodyを使用したプロジェクトのコンサルティングを幾つか経験しているが、その生産性の高さに驚かされることも多く、MDDの推進を支援する有効なツールである。日本語対応の問題やコード生成ルールの理解などの点もあるが「UMLからのコード自動生成を検討しているのであれば、Rhapsodyはその現実的な選択肢の1つとなる」といえるだろう。
<著者紹介>
井上 樹(いのうえ たつき)
株式会社豆蔵 ES事業部 基幹コンサルタント
組み込みシステム開発を対象としたオブジェクト指向・UMLの導入、プロセス改善に関するコンサルティングやトレーニングを中心に担当している。主な著書に『ダイアグラム別UML徹底活用』(翔泳社)、『いちばんやさしいオブジェクト指向の本』(技術評論社)がある。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
技術文書・技術解説
[SAS Institute Japan株式会社] 生成AIを予知保全に組み込むことで「産業設備保全」はどこまで進化できるのか -
市場調査・トレンド
[SAS Institute Japan株式会社] 製造企業が「AIによる価値創出」を迅速に実現する方法 -
技術文書・技術解説
[株式会社日立ソリューションズ] 開発と運用の分断を解消、実践知に基づくプラットフォームエンジニアリングとは -
事例
[株式会社日立ソリューションズ] 開発・運用の属人化をどう打破した? 日立ソリューションズの実践事例 -
技術文書・技術解説
[Eleven Labs Japan合同会社] 問い合わせ解決単価を約9割削減する試算も 音声AIエージェントのROIと活用例
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「WSUS」を捨てない? 非推奨でも35%が使い続けるワケ
-
2
Microsoft 365統一で「SharePoint」が1日2TB増 富士フイルムはどう管理した?
-
3
なぜMicrosoftは「Rust」を標準言語に? AIで進むC/C++書き換えの課題
-
4
なぜ「Claude Code」拡張は消しても危ないのか? Cursorで不正版配信
-
5
8割がアナログに逆戻りする“やっぱりな理由” DXを阻む2つの落とし穴
-
6
なぜ「Microsoft Teams」がランサムウェアの入り口になるのか?
-
7
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
8
停滞する製造業のDX、開発の生産性を高める可視化の実践方法
-
9
Web攻撃を受ける企業に共通するセキュリティ対策の誤り
-
10
「GPT-6.1 Terra」は半額 それでもなぜ企業はAIモデルを選べないのか?
ホワイトペーパーランキング PR
-
1
「IT史に名を残すシステム障害」8選
-
2
AIが苦手な「汚いデータ」になっていない? AI投資を無駄にしないための注意点
-
3
急増する高度なフィッシング詐欺 先回りしてブロックするには何が必要?
-
4
法人向け光回線のプランはどう選ぶ? 機能面/保守体制/コストを一覧で比較
-
5
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
6
「テスト内製化&自動化」事例集:ディー・エヌ・エーなど9社に学ぶ実践のコツ
-
7
三井ホームに学ぶ「無線LAN環境」構築 快適なオフィスと高度なIT運用の両立法
-
8
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
9
進化が遅れる「電話」をアップデート、AIを搭載した次世代の通話機能とは?
-
10
有識者が語る、中堅中小企業に求められる最新のサイバーセキュリティ対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー