2012年5月21日月曜日

MindmapModeling「燃えるスカイツリー争奪戦」

5月19日(土)に横浜モデリング勉強会(facebook group)を行いました。また、会場には(株)アットウェア様の会議室をお借りしました。参加された皆さん、アットウェア様、どうもありがとうございました。

この勉強会で、浅海が作成したモデルを紹介します。モデルはMindmapModelingの手法で作成しました。(勉強会で使用したチュートリアル)

前々回、前回と(1)MindmapModelingでドメイン・モデルの作成、(2)SimpleModelerでモデル駆動開発を試してみましたが、2コマ目のモデル駆動開発のための回が少し間延びするかな、ということで、今回から以下のようにすることにしました。

  • 記事の内容を元に、ドメイン・モデルを作成し、この上にサービス・モデルを作成。
    • ドメイン・モデルとサービス・モデルは、DSL駆動開発での開発を念頭においたものにする。
  • 時間内に、(1)ドメイン・モデル、サービス・モデルの作成、(2)SimpleModelerで参考実装の生成、(3)サービスの開発をできるところまで行う。
  • 勉強会終了後、宿題としてサービスの開発などを行った場合は、次回の勉強会の最初にレビュー会を行いフォローする。

勉強会の時間内ではモデリング+αがいいところなので、DSL駆動開発を前提にしたモデリングをすることと、モデルからどのような参考実装が生成されるかの確認をするところまでが想定した作業になります。

ドメイン・モデルを作成するためには、サービス・モデルの文脈が確定している必要があるので、ドメイン・モデルとサービス・モデルは相互に協調してスパイラル的に構築されていくことになります。

テーマ

モデリングの対象は、日経ビジネス誌の記事「燃えるスカイツリー争奪戦」です。

記事の方は4つぐらいの小さな記事の集りで、モデリングの素材としては今ひとつでした。面白そうなモデルをつくりにくいので、もう一つ別の記事も用意しましたが、こちらもモデリングの対象としては今ひとつのようでした。

そこでボクは、スカイツリーの記事から人材仲介会社のビジネスをテーマにすることにしました。

用語の収集

ドメイン・モデルの土台となる用語を収集してラフに分類します。今回は記事の内容がモデリング対象としては浅いので、用語の収集だけだとモデルとしてはしごくあっさりしたものになります。


サービスを念頭においた作り込み

システムづくりのために、モデルの内容を追加していきます。


物語

大事なのが、物語作り。

システムをビジネスと連動させるためには、ビジネス上の「物語」の中でシステムがどのような局面(文脈)でどのような役割を果たして行くのか、という点が明確になっている必要があります。

このための鍵となるモデル要素が「物語」です。「物語」を使って、出来事→(登場人物, 道具)を束ね、ビジネスの進行に伴う登場人物や道具の状態遷移を確定します。


今回の作業はここまでで、DSLを使ったコード生成まではできませんでした。次回は時間配分を調整して、コード生成まで行くようにしたいと思います。

ビジネス・モデリング

Scalaのような「DSL指向言語」の興隆で、システム開発もさらにプログラミング主導の方に軸足が移っていきそうです。

その流れの中で、なぜシステム開発でのモデリングを重視しているのかというと、ビジネスとシステムをきちんと連携させ、意味のあるシステム開発を進めていくには、ビジネス・モデルからシステム・モデルへのモデル上の追跡性が重要となると考えているからです。

ビジネス上の要件が、システムのどのモデルのどの仕様に影響を与えているのかをきちんと管理できていないと、持続可能性のあるシステム開発を行うことができません。少人数のビジネスでビジネスオーナーとプログラマが一体化しているケースではプログラム主導でもいいのですが、ステークホルダーが一定数を超えてくると、共通のビジョンを共有するためのモデルづくりが必要になってきます。

そのためのモデリングの手法として、SimpleModelingやMindmapModelingを整備しているわけです。

このあたりのモデリングの位置付けに質問があったので、勉強会では板書を使って説明を行いました。



OO技術によるビジネス・モデリング手法と、このビジネス・モデルとOOADへの連携の話題は2000年代前半には盛んでしたが、IT技術のホットスポットがWeb技術の加速度的な進展に移ってしまった2000年代中盤以降はロストテクノロジー化してしまっているように思います。

また、この影響もあってビジネス・モデリングからOOADへの具体的なモデルの連携方法は大枠の方向性は定まっているものの、具体的に教育可能なレベル(名人芸に依存しない)、DSLで扱うレベル(可能な範囲で自動生成)の詳細化、具体化という点では未整備のままになっている、というのがボクの認識で、このあたりのミッシングリンクを埋めるのがSimpleModeling、MindmapModeling、SimpleModelerの目標になっています。

Web技術の方は、クラウドの方に大きくシフトして、依然として加速度的な進化は続いていますが、Web/クラウド技術の優位性について一定の評価が確定したのではないかと思います。そういう意味で、そろそろ企業システムも情報系あたりからWeb/クラウド上に載せ替える時期に入って来ることになりそうです。

そのような流れの中でロストテクノロジ化してしまったOOAD( +ビジネス・モデリング)が再度必要になってくるのではないかと期待しています。もちろん、新しいOOADは新しい革袋の中に入って新しい枠組みの方法論として登場してくるはずです。それがどのようなものになるのか分かりませんが、本ブログもDSLやOFADについて具体的に考えていくことで、新しい枠組みに迫っていければと思っています。

0 件のコメント:

コメントを投稿