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
-
製品レビュー
[ヴィーム・ソフトウェア株式会社] SCS評価制度を導入するだけで十分? 組織の防御力を高める活用方法とは -
技術文書・技術解説
[フォーティネットジャパン合同会社] AIランサムウェアに勝つ 自律型エンドポイント管理導入で確認すべき条件4つ -
技術文書・技術解説
[フォーティネットジャパン合同会社] LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント -
製品レビュー
[ネットアップ合同会社] 研究分野でAI活用が進まない? 真の成果につなげるデータ管理の在り方とは -
製品レビュー
[ヴィーム・ソフトウェア株式会社] SCS評価制度を導入するだけで十分? 組織の防御力を高める活用方法とは
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
2
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
3
Claude Codeでは「エージェントを作るな、スキルを作れ」 Anthropicが示すAI構築術
-
4
「WSUS」終了の時限爆弾 “本命”移行先ツールとMicrosoft提唱の新管理手法
-
5
AIエージェント導入が82%増 Salesforce調査で判明した“急拡大”の代償
-
6
全社標準Copilotに絶望? MS Copilotで問い合わせ6割減できた企業は何が違った
-
7
ITエンジニア1265人調査 生成AIを使い込むほど「人の確認」が重い理由
-
8
VMware離れの決め手は“機能”以外だった 情シス109人が選んだ新基準と死角は
-
9
IBM iのブラックボックス化を打破 資産継承と進化を実現する「IBM Bob」の実力
-
10
経理のAIエージェント化が進む今 見落としてはならない「統制の5原則」
ホワイトペーパーランキング PR
-
1
「Google Workspace」活用事例34選、先進の生成AIによる組織変革の全貌
-
2
Linuxのスキルを証明する“激推し”の認定資格はこれだ
-
3
バックアップは“取っているから大丈夫”なのか? ランサムウェア時代の備え方
-
4
ネットワーク遅延の原因、「パケットロス」の基礎知識と効果的な解決策
-
5
月1000枚の紙を削減 9年動けなかった組織が、業務改革のその先に得たもの
-
6
「改正物流効率化法対策」徹底解説 総物流費を抑制するサプライチェーン戦略
-
7
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
-
8
ソフトウェア開発の属人化と手戻りをどう防ぐ? 速さと品質を両立させる方法
-
9
AI活用を停滞させる「2:6:2の壁」を乗り越えるためのポイントとは?
-
10
ドラマで分かる、標的型攻撃メールの被害を受ける企業と回避できる企業の分岐点
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー