テストに強いソフトウェアアーキテクチャはこれだ!

図解で分かるソフトウェアアーキテクチャ 「MVVM」のテスタビリティーと3つの特長

アーキテクチャを選定する上で重要な視点の一つにテスタビリティ―がある。「MVVM」はMVCやMVPとどこが違い、何に優れているのか。図を交えて解説する。

 ソフトウェア開発においてさまざまな新しいアーキテクチャが提案されている中で、アプリ開発においてテストに強いアーキテクチャを紹介する本連載ですが、第3回の本稿では「MVVM」アーキテクチャについて解説いたします。

著者紹介:石黒 邦宏

デジタル・マジック・ラボでインターネット経路制御運用に関わり、オープンソースウェアで経路制御を実現する「GNU Zebra」を開発。1999年IP Infusionを共同設立し、CTOに就任。2009年Access CTO、2015年アプリックス CTOを経て、2018年デジタルハーツホールディングスCTOに就任。

「MVVM」の特長と仕組み

 「MVVM」(Model/View/ViewModel)とは、「MVC」や「MVP」に連なるアーキテクチャの一つで、2005年10月にマイクロソフトのジョン・ゴスマン氏が提案したものです。当時「Adobe Flash」(以下、Flash)が全盛の時代で、リッチなWebアプリケーションはFlashで実装するのが一般的でした。同時にWebテクノロジーも進化を遂げ、Webブラウザで非同期通信を実現する「Ajax」という言葉が生まれたのも同じ2005年でした。

MVVMのイメージ

 MVVMは、結果的にWPF(Windows Presentation Framework)や、マイクロソフトが開発したFlashライクなフレームワーク「Microsoft Silverlight」の基本アーキテクチャとして採用されました。しかし、ジョン・ゴスマン氏がMVVMを提案した時はまだWPFもSilverlightもリリースされていませんでした(WPFのリリースは2006年、Silverlightのリリースは2007年)。MVVMはまずアーキテクチャが提唱され、その後にそれを適用したプラットフォームが順次リリースされた歴史的に珍しいアーキテクチャなのです。

 MVVMの主眼は、複数の異なるUIプラットフォームを並行して使えるモダンな環境下でUIをHTMLベースで開発しても、またFlashなどのNon-HTMLベースの環境で開発しても耐えられるアーキテクチャの提案にありました。

 開発時にデザインとロジックを明確に分離してモダンで高度なアプリ開発を行うためという観点では、当時すでにソフトウェア開発者マーティン・ファウラー氏による「Presentation Model」(以下、PM)が存在していました。

 MVVMはマーティン・ファウラー氏のPMのアーキテクチャを敷衍(ふえん)しつつも、WPFやSilverlightなどの複数UIプラットフォームをサポートする過程の中で、Data Bindingやイベントドリブンのアーキテクチャといった新しいアイデアを生み出しました。

印刷する
SNSでシェア

アプリ開発でテストに強いアーキテクチャはこれだ!

「プロジェクトに合ったソフトウェアアーキテクチャを選ぶには何を基準に選べば良いのか」そうした開発者の悩みに対して、答えを探っていきます。

この連載の記事をもっと見る

この記事の著者

石黒 邦宏
石黒 邦宏

デジタル・マジック・ラボでインターネット経路制御運用に関わり、オープンソースウェアで経路制御を実現する「GNU Zebra」を開発。1999年IP Infusion社を共同設立し、CTOに就任。2009年Access社CTO、2015年アプリックス社CTOを経て、2018年デジタルハーツホールディングスCTOに就任。

関連記事

こんなメディアも見られています

キーマンズネットに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。

無料会員登録
最新情報をいち早くチェック!

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます(メディアごとに文章は変更)

いますぐ無料会員登録

アクセスランキング

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9

キーマンズネット SNS

X @Keymansをフォロー

インフォメーション

キーマンズネットをフォロー