トップ «前の日記(2004-10-25) 最新 次の日記(2004-10-27)» 編集

日々の破片

著作一覧

2004-10-26

_ POAD

Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems(Yacoub, Sherif M.)

買うだけなら金さえあれば(無いけど)できるわけで、こんだ、こんなの買ってみた。

序文を読んでみたらこんな感じだ。

ソフトウェアをこさえるのに1番大変なのはコーディングじゃなくてデザインだよ。デザインに失敗したらとんでもないのができちゃうよね。一生懸命コード書いてもさ。そんなの出荷して泣きを見るのは誰でも経験してるよね。でも、どうすりゃ実装する前にそのデザインが良いデザインだって判断できるんだろう?

まあ、そうですね、ということだ。

で、デザインパターンということになるのだが、この本はカタログとして個々のデザインパターンを云々するのではなく(2004年の本だから当たり前かも)、システマチックに(っていうことは方法論としてということと同義かな)デザインパターンを実際の開発に適用する方法を考えるって内容だ。

確かに、出来上がった後にあの設計はくそでした、すまんかったってことはあるし、設計の再利用ということはここ数年いろいろ思い当たる節が多いので主張は良さそうだ。

キーワードは、Composition of Design Patterns なんだろう。コンポジションパターンではなく、デザインパターンの組み合わせをソフトウェア部品(部品といえるのは再利用の単位だからだ)として開発に利用するということになるんだと思う。

ますます、2バイ4みたいな開発になるのかな。

POADのアプローチは、第7章から持ってくると

・パターン駆動

・コンポーネントベース開発

・アーキテクチュラル開発(なんかわけわからん言葉だが、機能より構造重視ということで良いのかな。デザインを再利用するってことは、個々のソフトウェアが提供する機能――が必要なのは当然だが――によって開発を駆動しないということになるんだろうか? ユースケース駆動の正逆のような。誤読してる可能性が強いな、このあたりは)

・ライブラリ駆動開発

――コンポーネント駆動があるのに、なんで? と思ったらデザインパターンのライブラリと書いてあるが、コード片という感じになるのかな(メソッドオブジェクト?)。っていうか、英語を書いとくと日本語訳が出てこないかな

POAD uses existing catalogues of design patterns. The approach heavily relies on the existence of reusable libraries of design patterns that can be browsed and queried. Therefore many of the traditional reuse library issues concerning asset retrieval still hold for pattern libraries. ...

・デザイン再利用

・階層的開発(Hierarchical Development)

――全体―部分という抽象化の階層(ってなんのことやらわからないが、読むとわかる――僕が形式知化できてないということだ)

・繰り返し開発

という性格を持つということだ。

で、この本は実際には実装の本なのだな。末尾がADだけど業務分析という意味での分析ではなく、実際にあてはめれば要件定義が完了してソフトウェアの機能(ユースケースということになるのだと思う)が明らかになった時点(といっても要件は変わるものであるが)で、ではどのようなソフトウェアになるかの分析、設計、実装……(と書いて、自分がこのフェーズでの分析というのはこれまで意識してなかったことがわかったり)、分析というのはどのようなパターンから構成されているかを考えるということのようだ。設計は設計。実装は実装。

では、この本の対象読者はどのような開発者なのだろうか?

序文には7種類の読者像が並べてある。

・ソフトウェアアーキテクトとデザイナー。フレームワーク作ったりするならますますそうだろう。

・Practitionersと書いてあるが手元の辞書の意味とは違いそうだ。ソフトウェアを作るためのパターンカタロウグの学習とかしている学習者という感じかな?

・アプリケーション開発者。コード書くときにデザインパターンの適用を考えるんじゃなく設計時に考えることで得するんじゃないかと考えてるような。っていうか、設計と実装は同じことなので大抵はこうなるような。

・研究者。元ネタになるぞと、なんか著者は自身満々であるな。

・デザインパターンを教えるプロフェッサーやレクチャー(教授や講師?)

・再利用マネージャ。なんか苦し紛れで7つにしたような感じだが。

コードサンプルはJava。Emacsをデフォルトの設定で使ってしかも失敗したような妙なインデントになってるし、フィールド名が大文字で始まってたり小文字で始まってたりするが、それほど気になるわけではない。(ということは、コーディング規約なんてほとんど意味ないということの証左でもある)

後ろのほうはUMLと仕様と称してOCLの解説とか。

340ページ程度とそんなに厚くないし、図版(UMLだけど)も結構使ってて、割と読みやすい。GoFを読むより応用問題になってるだけに面白いかも。目を通した範囲では、僕は結構面白いと思う。難を言えば形式化しているだけで、誰でも考えているようなことではないかという気もするが、あらためて文章化されているのを読むとそれはそれで勉強になる。なっているようだ(読む気になって、まさに読んでいるわけだから)。

ちなみに、直接Amazonから買うより約900円安いからuk books……というところ(マーケットプレイスに出てくる)から買ったら、10/10クリック、10/16 uk books...からメールで発送案内、10/25 到着と2週間かかった。どうもこのuk booksというのは遅いことで知られているようだ(評価を見ると遅いというのが結構見える)。ま、いいや。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|

ジェズイットを見習え