まろクエ日記ふたたび

主に.NET系開発に関する情報を紹介していきます!

【Oslo】Oslor vol.1 "Oslo"にチャレンジする前に

 小町えんじぇるです。こんにちは。

 今回から、Microsoft(以下MS)が提唱する、次世代モデリングプラットフォームと言われている"Oslo"について紹介(チャレンジ報告)していきたいと思います。…が、"Oslo"について話をする前に、「モデル」について、ちょっと考えてみたいと思います。

◆「モデル」について考えてみよう

皆さんは、「モデル」「モデリング」についてどのようにお考えでしょうか?

 「モデル」というと、私は、ファッションモデルを思い浮かべてしまうのですが、辞書を紐解くと、「モデル(model)」には「模型、ひな型、見本、設計図」といった「倣う対象」といった意味合いがあるようです。「モデル」自体は、「実体(あるいは実物)」ではありません。あくまでも実体を抽象化し、他者と認識を共有するためのツールです。

 もう少し具体的に考えてみます。例えば、私が「ぬうぬう」という名前の猫を飼っていたとします。(実際、飼っていますが。)全く見ず知らずの人と会話をするとき、「ぬうぬうが可愛いんですよ!」と話しても、相手の方は頭の中に「?」を思い浮かべることでしょう。しかし、「うちの猫が可愛いんですよ!」と話せば、見ず知らずの人でも、「猫」というキーワードを通じて、猫の姿をイメージすることができます。ここでは、「猫」という抽象的な概念が「モデル」の役割を果たしています。(必ずしも「モデル」は「図」である必要はないと私は考えています)実体そのものではないけれども、実体を端的に抽象化したイメージを通じて、認識を他者と共有できる、これが私の考える「モデル」です。

 とはいえ、「モデル」は実体そのものではなく、捉えられ方も様々であるため、しばしば「認識の相違」を生むことがあります。おそらくこれは宿命でしょう。この相違をいかに縮めて、他者と認識を共有できるか、それが「モデル」の課題とも言えます。

◆ソフトウェア開発における「モデル」

 では、ソフトウェア開発の現場における「モデル」について考えてみましょう。ソフトウェア開発の現場における「モデル」というと、クラス図やシーケンス図などのUML(Unified Modeling Language)を思い浮かべる方が多いと思います。UMLを上手に使用すると、抽象化され細分化された「モデル」(サブシステムや個々の機能などの設計要素)で、システムの全体像を表現することができ、開発メンバー間で(時にはお客様も含めて)イメージを共有することができます。(実際は、うまく表現できないことが多いですが)システムイメージがきちんと共有された状態で開発を行えば、無駄や手間を省けるため、結果的に生産性も上がりますよね。

 ソフトウェア開発における「モデル」の特徴を、一般的な「モデル」からもう少し限定してみると、以下のような特徴が挙げられます。(私がよく聞く特徴を列挙してみます)

 ・モデルは、曖昧さが小さく、高い抽象度でイメージを共有できる。
 ・モデルは、多角的な視点で、抽象化されたイメージを記述できる。
 ・モデルは、誰でも検証可能である。
 ・モデルは、誰でも実行可能である。

 上記のような特徴に着目し、モデルを使った開発手法も考え出されました。それが、最近注目されつつある「モデル駆動開発(MDD:Model Driven Development)」です。モデル駆動開発では、まずはモデル情報を作成し、そのモデル情報をベースにコードを自動生成していく開発スタイルです。(厳密には違うと指摘を受けそうですが、概念をお伝えしたいので、その辺はご容赦ください)

◆次世代モデリングプラットフォーム"Oslo"

 こうした中、モデル駆動開発のプラットフォームとして、Microsoft社から登場したのが、コードネーム"Oslo"です!"Oslo"については、PDC2008やTechDays2009、MSの長沢さんのblogなどで紹介されていますので、概要をご存じの方も多いと思います。しかし、まだまだ日本語の情報は少ないと思いますので、私の方でも次回から本格的に、基礎から順を追って、紹介していこうと思います。(本当はこのエントリで、Oslo開発環境の構築やHello Mの作成方法まで、紹介するつもりでしたが、長くなってしまったので、別エントリできちんと紹介します)

 "Oslo"の目指すゴールは、Oslo Developer Centerの言葉を借りれば、「モデル駆動開発のプラットフォームを提供することにより、生産性向上に貢献する」ことのようです。私としては、「モデルあるいはモデル駆動開発で、本当に、生産性向上って実現できるの?」という疑念があります。「モデル」や「モデリング」について、私自身、まだまだきちんと理解できていないというのも事実です。これらの答えが簡単に見つかるとは思っていませんが、"Oslo"に触れ、紹介することで、少しでも「モデル」や「モデリング」について見直すきっかけとしていければと考えています。

 私の場合、新しい技術を学習する際に、どうしても登場背景やコンセプトをきちんと押さえるところから入らないと、自分を見失ってしまうので、今回も遠回りなような気もしますが、概念的なところから、お話しを始めさせていただきました。(次回は、もう少しキャプチャ映像が入ると思います)

 これからが本題というところですが、今日はこの辺で。ではでは。

◆次回予告
・"Oslo"の初歩
⇒(ようやく)"Oslo"の概要、Hello M、Oslo開発環境の構築について紹介する予定です。

◆Reference URL
・"Oslo" Developer Center
  http://msdn.microsoft.com/en-us/oslo/
⇒"Oslo"の公式情報はこちらから。

・長沢智治のライフサイクルブログ
  http://blogs.msdn.com/tomohn/
⇒Tech Days 2009でも"Oslo"関連のセッションを担当したMS・長沢さんのblog。
 M言語、MGrammerを用いた簡単なサンプル作成手順の紹介もされていますので、興味のある方はぜひ一読を!

コメント

HIRO 発言:

非常にわかりやすいですね。

Osloは日本語での情報が非常に少ないので、 小町えんじぇるさんの連載を楽しみにお待ちしています。

早く続きが読みたいです。

ちなみにOsloはなんて発音するのでしょう?

# 2月 26, 2009 8:41 午前

maro 発言:

コメントありがとうございます!なるべくはやく続きを…。

私の情報源は基本的にODC("Oslo" Developer Center)ですが、Osloの日本語情報だと、やはりMSの長沢さんのblogが一番わかりやすいです。03/19 or 03/21あたりにどこかの勉強会でOsloについて紹介されるそうなので、ご興味があればぜひ!(私は卒園式でいけなさそうです)

Osloの発音はカタカナ読みして、「オスロ」のようです。Osloに関するエントリは、「Oslor」(←「オスラー」のつもり)としてみましたが、Oslorが増えるといいなぁと願う今日この頃です。

# 2月 27, 2009 7:14 午前

長沢智治 発言:

こんにちは!

実は4/6 にもセミナー(東京・新宿)で "Oslo" も含めたセッションをやろうと思っています。"Oslo" だけではなく、モデリングはじめての方やモデリングで過去に躓いた方にも整理できたらと思って考えていたのですが、その内容がまさにこの小町えんじぇるさんの投稿に近い!!

ちょうどそんな構想(妄想)中にこのブログに出会ったので感動して、思わず mixi の日記にも書いてしまいました!

# 2月 28, 2009 9:52 午後

maro 発言:

>長沢さん

コメントありがとうございます!(私の別Blogでもコメントをいただいていますのでお久しぶりですね)いつもBlog拝見させていただいています。

私自身、長沢さんのセッションを受講して、"Oslo"&モデリングに興味を持つようになりました。(しばらくは、"Oslo"のとりこになりそうです。)今後も順次、"Oslo"情報を掲載していく予定ですが、アドバイス等頂けたら幸いです。

04/06(月)のセミナーは、非常に面白そうですね!予定を空けておいて、ぜひ参加させていただきます!

# 3月 1, 2009 9:49 午前

seo. 発言:

はじめまして。

とてもわかりやすくて、モデリングが楽しくなりそうなブログですね。これからも参考にさせていただきます。

私も長沢さんのセッションでモデリングの面白さにハマってしまいました。

なお3/21は私のやっている勉強会で長沢さんにスピーカーをお願いしました v

# 3月 1, 2009 3:30 午後

技術との戯れ 発言:

小町えんじぇる さんのブログが面白いです。 techbank.jp/.../5007.aspx まずは「モデリングとは?」という根本のところを、とてもわかりやすく解説してくれています。 こういう方がいると、勉強するのが楽しくなりますね。 これからも "Oslo" についてこれからたくさん書いてくれそう、楽 ...

# 3月 1, 2009 3:49 午後

けろ-みお 発言:

>「ぬうぬう」という名前の猫

なるほど。野良さんがおっしゃっていた、猫の使いとはこのことでしたか?(違っ!w)

それにしても、例えがわかりやすくていいですね。モデリングって言われても、うやむやなことを思い浮かべてしまうので、こういう例は、面白くて、わかりやすく、素敵です!

HIROさん同様、早く、私も続きが読みたいですw

# 3月 2, 2009 10:08 午前

HIRO 発言:

返事が遅くなってしまいました。

「オスロ」と発音するのですね。ありがとうございます。

もう1度この記事読み返してみましたが、本当にわかりやすいですね。

こういう記事を書けるようになりたいものです。

# 3月 2, 2009 9:53 午後

まろクエ日記ふたたび 発言:

小町えんじぇるです。こんにちは。 前回は、"Oslo"にチャレンジする前提として、 「モデル」 や 「モデリング」 の意味について考えてみました。 「実体を抽象化し、他者と認識を共有するために使用するツール

# 3月 6, 2009 8:53 午後

maro 発言:

>seo.さん

あらためてはじめまして!

日本の開発の現場における「モデリング」の位置づけは、まだまだ低いと思っています。その原因は、やっぱり、「モデル」や「モデリング」の持つ概念理解の難しさにあるような気がします。

多くの現場の開発者にとっては、「なんとなくはわかるけど…」、「敬遠の対象」になってしまうんですよね…。個人的には、"Oslo"がこの状況を打破するきっかけとなることを期待しています。

なにはともあれ、某"○○○○"の輪では、よろしくお願いします。

>けろ-みおさん

コメントありがとうございます!

(猫の例は、実は一番ツッこんでほしいところでした。笑)

本職(?)のnekoについても、そのうち、こっそり紹介していきますので、お楽しみにしていてください。

「猫の使い」(?)として、今後もわかりやすい説明を心がけていきたいと思います。

>HIROさん

読み返していただきありがとうございます!!

ノルウェーの首都「Oslo」と全く同じ表記・読み方なんですよ!

コードネームなので、名前が変わってしまう可能性がありますが、

個人的にはこのまま"Oslo"で行ってほしいですね。

# 3月 9, 2009 10:53 午後
コメントを残す

(必須) 

(必須) 

(オプション)

(必須)