Skip to content

パターン編(3) 分析・設計パターンの重要さと書籍紹介


当「モデリングしてますか」チャンネルの”パターン編”の意味、なぜパターンを知っておくことがよい­モデリングにつながるのかについて解説します。世の中には、ソフトウェア開発活動に役­立ついろんなカテゴリのパターンが存在します。分析パターン、設計パターン、実装パタ­ーン、アーキテクチャパターン、などなど。お薦めの書籍とともに紹介します。


[スクリプト]
モデリングしてますか?
今日は、パターン編という事で、ソフトウェアのパターンの重要性について、最初にお話ししたいと思います。


AYMパターンとは?


パターンとは、歴史を話すと凄く長くなるので、今日は話しませんが、ソフトウェアの色々な開発活動の中で、よく行われている例(パターン)が、いくつもあって1つのパターンを形成します。こういう風にやるとうまくいくんだ、というものに名前をつけて、集めてくる手法です。

例えば、実装のコードレベルのパターンもあれば、設計レベルや、分析レベル、ビジネスレベルのパターンもあり、非常に広範囲に使われる言葉です。

パターンとは、「名前」と、「名前が使われる文脈」と、「解こうとしてる問題」があって、「解決」があります。

だから、「文脈」、「問題」、「解決」をセットにして名前を付けたもの、という言われ方をしますが、基本的にはコードのように、固い再利用ではなく、考え方や知識を再利用するフォーマットになります。


AYMデザイン/設計/ビジネスで使用されるパターン


1

オブジェクト指向における再利用のためのデザインパターン

1番良く知られているのが、この「オブジェクト指向における再利用のためのデザインパターン」という、95年に書かれた本です。ソフトウェアの中で、パターンが非常に花開くきっかけとなった本です。この本が書かれる前に、James o. Coplienが「Advanced C++ Programming Styles and Idioms」という本の中で「イディオム」として、実装のパターンを解説しております。

それから、Kent Beckの「Smalltalk Best Practice Patterns」ですが、これも実装レベルのパターンとして、非常に有名です。後にKent Beckは、Java版に書き直して、「Implementation Patterns」という本に変えています。これは実装のパターンです。

それから、分析に入ると、1番有名な本としては、「アナリシスパターン―再利用可能なオブジェクトモデル」で、Martin Fowlerが書いた本です。この本は、分析レベルで現れるパターンについて、書かれており非常に分厚い本です。

おそらく、これが書かれるおおもとになったのは、インフォメーションエンジニアリングという言葉を作った、James Martinの「オブジェクト指向方法序説〈基盤編〉」です。James J. Odellと、一緒に書いています。この本では、企業の中で言葉やデータが、どのように使われるべきか、あるいは、アーキテクチャについて書かれています。

2

実践UML―パターンによる統一プロセスガイド

それから設計レベルですと、Craig Larmanの、「実践UML―パターンによる統一プロセスガイド」という本があります。この本は、非常に読みやすく、私のお薦めです。この中で、設計レベルのパターンについて、大変詳しく、面白い例も含めて書かれています。

どんどん次へ行きましょう。

ビジネスレベルでは、Chris Marshallが書いた、「企業情報システムの一般モデル―UMLによるビジネス分析と情報システムの設計 (Object Technology Series) 」を、紹介します。この本は正確にいうと、パターンではないですが、分析レベルあるいは、ビジネスレベルのモデリングの考え方について書かれています。

また、アーキテクチャでも様々なパターンが発見されています。それをまとめた「ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系」という本があります。日本語には、1冊しか翻訳されていないかもしれません。ただ、洋書はVOL1.から始まって、数冊出ています。これも見てみるといいと思います。


AYM人の活動へ繋がるパターン


さらに、パターンは、人の活動にまで繋がっています。特に、最近のアジャイル開発自体も、パターンといえると思いますね。

3

パターン・ランゲージ: 創造的な未来をつくるための言語 (リアリティ・プラス)

それから、例えば、Linda Risingさんが書かれた「Fearless Change アジャイルに効く アイデアを組織に広めるための48のパターン」。これはまさに人間の活動ですね。

次に、井庭さんが書かれた「パターン・ランゲージ: 創造的な未来をつくるための言語 (リアリティ・プラス)」という本には、人の活動に焦点をあてたパターン言語について書かれています。非常に面白い本です。

まとめると、このように「実装」「設計」「分析」「ビジネス」と、色々なソフトウェアの活動がありますが、それぞれの場面で、「実装」には「イディオム」、それから「インプリメンテーションパターン」があり、「設計」にくると、「デザインパターン」があり、「分析」になると「アナリストパターン」があるという事になります。

もっと広く言うと、「アーキテクチャパターン」があり、また、「分析パターン」や「ビジネスパターン」にかけては、インフォメーションエンジニアリングや、日本のDONの考え方などに深く影響を与えています。

それから、James O. Coplienが書いた「組織パターン (Object Oriented SELECTION)」という本の中では、人の構造、組織、プロセスに対してパターンを適用する、といったような考え方もあります。これが、エクストリーミングプログラムや、アジャイルの最初の考え方です。それが広がって、人の活動まで含めて、パターン書き換えていこうというような動きがあります。

4

UMLモデリング入門

ソフトウェアの開発を実務的にいうと、おそらく実装のイディオム、設計の全パターン、このあたりが、実際の開発ではよく使われます。企業内にある、エンタープライズのシステムの開発では、このアナリストパターンが大変重要です。データ構造、とくにデータベースのモデルも含めて、アナリストパターンを知っておくというのは、非常に良い設計をする鍵になるので、知っておくと良いと思います。

平沢さんがかかれた「オブジェクト指向でなぜつくるのか 第2版」という本の中に、このあたりのフォーカス的な解説もあるので、お勧めします。それから、UMLを含んだ上で、どのように分析をしていくかというあたりを、児玉さんの「UMLモデリングの本質 第2版」や、麻美さんの「上流工程UMLモデリング」にて、書かれています。

また、児玉さんが書かれている「UMLモデリング入門」、こちらも面白い本です。


AYM知識を集めることによる、ソフトウェアの開発


まとめると、ソフトウェアを開発するときに、実装ではなく、実際に行われている例から、知識を集めてきて、その知識はどういう問題を解決するのか、どういう時に役に立つのか、そしてソリューションは、こんな形ですというのを、まとめて頭の中に入れておくことで、実際のモデリングの活動が非常に説得力を増し、応用が利き、広い知見で解決をする事ができます。

パターンについては、ぜひ調べて、勉強をしてみてください。このシリーズで、パターンについて、いくつか具体的な例で解説もしています。
ぜひ、ご覧ください。それでは。


[関連リンク]
パターン編モデリングしてますか?

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: