ITの現場でよく耳にする“モデルドリブン”という言葉ですが、「モデルドリブンとはなんぞや?」と疑問に思っている非エンジニアの方も多いと思います。
でも知らないと恥ずかしいので「あ~モデルドリブンね、ハイハイ」と適当に相槌を打った経験はありませんか?
そして「後々調べてみたけどイマイチ意味が分からない」などといったことも珍しくありません。
ちなみに、インテリジェントモデルが提供する大規模バッチシステム「ODIP(オーディップ)」は100%モデルドリブンでシステム構築を提供しています。
今回はこの”モデルドリブン”について非エンジニアでも分かりやすく解説していくので、ここらで知ったかぶりから卒業しましょう。
モデルドリブンとは
まず、”モデルドリブン”という言葉の意味から解説していきます、
“モデル(Model)”は日本語で「型、模型、見本」と訳されるのが一般ですが、IT分野では主に「仕様(モデル図)」という意味で扱われます。
これは特に問題ないでしょうが、難しいのが”ドリブン(Driven)”という言葉です。
ちなみに皆さんはこの”ドリブン”を使用した「○○ドリブン」といった言葉をどこかで聞いたことはないでしょうか?
「アクションドリブン」
「データドリブン」
「デマンドドリブン」
「イベントドリブン」
などなど、実は色々な「○○ドリブン」が存在しています。
この”ドリブン”という言葉は”ドライブ(Drive)”の過去形であり、日本語では「突き動かされた」という意味があります。
しかしこれだけでは意味として不十分であり繋がりません。
ビジネスにおいて”ドリブン”とは「~をもとにして次のアクションを起こす」といったニュアンスがあるのです。
つまり「データドリブン」なら「データをもとにして次のアクションを起こす」という意味があり、「デマンドドリブン」なら「ユーザーの要求(デマンド)が顕在化してから取り組む」といった意味があります。
前にくる単語によって少々ニュアンスが異なりますが、”ドリブン”には上記のような意味がるのです。
では”モデルドリブン”では「仕様(モデル図)をもとにして次のアクションを起こしていく」という意味があると考えられますが、何だかしっくりきませんね。
実はこの言葉の意味を深く捉えるためには、MDAについて解説しなくてはなりません。
MDA(Model Driven Archietecture)
MDAとは米国の非営利団体であるOGM(Object Management Groupe:オブジェクト指向の標準化団体)が提唱しているソフトウェア開発手法です。
モデルは「仕様(モデル図)」、ドリブンは「~をもとに突き動かされた」、そしてアーキテクチャとはソフトウェアなどの「構造」やプログラムそのものを指します。
つまり、MDAとは「仕様(モデル図)をもとにビジネス要件(※1)や、ソフトウェアの機能や構造をプログラムに落とし込んでいく開発手法」となります。
ちょっと長いですが、なんとなく”モデルドリブン”のニュアンスがグッと近くなったのではないでしょうか。
さらに要約すると、ソフトウェア開発の工程ではビジネス要件とそれをもとにした機能や構造をプログラムで生成する必要があります。
言葉で説明するのは非常に簡単ですが、実際はかなり複雑なものであり多くの弊害を生んでいます。
そこでMDAを採用することでビジネス要件や機能などをもとに、プログラムを自動的に生成していくことができるのです。
イメージとしては、最近ブロックを積み上げていく感覚で簡単にWebサイトを制作できるサービスがありますがあんな感じです。
ユーザーは直感的に構造を組み立てていき、裏ではプログラムが自動生成されシステムが構築されていきます。
実際のMDAはもっと複雑なものですが、上記の例がイメージとして最も近いでしょう。
※1:ビジネス要件とはITによって達成・実現したいビジネスモデルを指す。また、経営上の業務課題を指すこともある。
つまりモデルドリブンって?
さて、ここまでの解説で”モデルドリブン”についてなんとなく理解できたという方も多いでしょうが、結局のところ何なのかを定義しましょう。
まず要点をまとめると、
- モデルドリブンとはMDAに基づく言葉
- MDAとは仕様(モデル図)をもとにプログラムを自動生成すること
上記のことから転じて、モデルドリブンとはGUI(※2)や仕様(モデル図)によって直感的に自動生成していくシステムを指します。
いかがでしょうか?これでモデルドリブンの意味が明確になったのではないかと思います。
次に、モデルドリブンのメリットを解説していきます。
※2:GUIとは「Graphical User Interface」の略であり、画面上に表示されたウインドウ/アイコン/ボタンをマウスやタッチパッドなどで直感的に操作するインタフェース。これに対しコマンドベースで操作するCUI(Character User Ineterface)も存在する。
モデルドリブンのメリット
ビジネス要件とプログラムの分離
モデルドリブンではビジネス要件とプログラムなどのIT技術を完全に分離してすることができます。
従ってビジネスやIT技術の変化へ柔軟に対応していくことができるので、ビジネスとシステムの整合性を取りつつコスト削減などに繋がります。
つまり、ビジネス要件をもとにシステムを構築したとしても、変化の激しい現代ビジネスでは要件が目まぐるしく変わっていきます。
その都度要件に合わせてシステムまで対応しようとすると、莫大なコストと業務負担を生んでしまうのは避けられません。
逆もまた然り、IT技術の変化にビジネス要件を合わせていては企業経営として破たんしてしまいます。
このように、ビジネス要件とIT技術を分離することでコスト削減や業務効率化が実現するのです。
プログラムの標準化
従来の開発環境では仕様書をもとに手作業でコーディングしたり、情報共有の難しさからプログラムが属人化することによりシステムが完全にブラックボックス化するケースが珍しくありません。
これでは担当エンジニアが変わるたびに新たなプログラムを生成しなくてはならないので、かなり大きな負担を生んでいました。
一方モデルドリブンでは仕様(モデル図)をもとにプログラムが自動生成されているので、ソースコードのオープンなシステムを構築することができます。
視認性良く整えられたモデルは誰が見ても理解がしやすいので、プログラムの属人化を防ぐことができるのです。
自動生成による生産性の向上
モデルドリブンではモデル図をもとにプログラムを自動生成していくので、当然エンジニアが手作業でコーディングしていく必要はありません。
また、モデル図を変更することでプログラムへ自動的に反映するので、労働生産性の向上にも繋がります。
昨今ではビッグデータやIoT(※3)などが盛んであり、IT戦略がグローバルで叫ばれています。
モデルドリブンでエンジニアにも余裕が生まれ、経営への参画がより容易にできるようになりますね。
※3:IoTとは「Internet of Things」の略であり、日本語で「モノのインターネット化」という意味。全てのモノとインターネットを繋げてビジネスや生活の利便性を高めていこうという概念、またはその手法を指す。
継続的に品質を維持した開発環境
システムがブラックボックス化した従来の開発環境では、担当エンジニアが変わるたびに仕様変更がなされることは珍しくありません。
この場合、システムの担当エンジニアの技術に依存します。
つまり一定品質のシステムを構築することが難しかったのです
これに対しモデルドリブンで構築したオープンなシステムは、担当エンジニアが変わったとしてもプログラムを共有することができるので、継続的に品質を維持した開発環境を提供するのです。
以上のようにモデルドリブンには多くのメリットがあり、今や前述したMDAなどは標準的な開発手法となっています。
モデルドリブンでない場合
モデルドリブンでは開発環境では、以下のような弊害を生んでしまうことが多々あります。
- システム仕様の理解不足や誤りにより、上流工程でバグが生まれやすくなる
- 手作業でコーディングしていくため、ミスが発生しがち
- 担当エンジニア独特のコーディングにより仕様書とソースが不一致になり、仕様書の再利用が不可能になる
などなど、他にも細かいところまで言えばさらに多く弊害が発生します。
ODIPが提供するモデルドリブン
冒頭で”ODIPは100%モデルドリブンでシステム構築を提供しています”と紹介しましたが、ここまで読んだ頂けたのであれば既に理解できるではないかと思います。
つまりODIPはGUIをもとに直感的な操作で大規模バッチのシステム構築を提供し、ビジネス要件とIT技術の整合性を取った開発が可能ということです。
また、当然ながらプログラムの属人化やシステムのブラックボックス化を抑止することもできます。
まとめ
いかがでしょうか?今回は、イマイチ意味の分からないモデルドリブンについて分かりやすく解説しました。
これでモデルドリブンについて知ったかぶりをしていた自分とはおさらばですね。
実際分かりやすかったかどうかは皆さんの主観によりますが、まずはここまで読んで頂けたことに感謝致します。
そして、本稿によりモデルドリブンの意味を理解し、さらにITへの理解を深めようという方が少しでもいれば幸いです。