実践UML - パターンによるオブジェクト指向開発ガイド- |
この本を読もうとしている読者のかた、ありがとうございます。そしておめでとうございます。あなたが今、手にしているものは、オブジェクト指向分析/設計の世界を案内する実践的なロードマップです。この本で得られる利点の数々についてご紹介しましょう。
頑健で保守の容易なオブジェクトシステムを設計する
1. オブジェクトテクノロジの利用はソフトウェア開発の分野で急増しており (Java の採用が広がるにつれ、これはいっそう顕著になっています)、頑健で保守の容易なオブジェクト指向システムを作成するにあたってはオブジェクト指向分析/設計を習得することが非常に重要です。さらに、この習得によって、読者のアーキテクト、アナリスト、設計者としての仕事に新しいチャンスがもたらされます。
要件設定から、分析、設計、コーディングにいたるロードマップをたどる
2. 読者がオブジェクト指向分析/設計に初めて取り組むかたであれば、この複雑なテーマをどのように進めていくかを理解するにはかなりの努力が求められます。この本は、読者が要件設定からコーディングまで段階的に進んでいけるように、詳細に定義されたアクティビティのロードマップを示します。
UML を使って分析と設計のモデルを図解する
3. 統一モデリング言語 (Unified Modeling Language: UML) はモデリングの標準的表記法として認識されてきています。したがって、UML に精通することは非常に有益です。この本は、UML 表記法を使ってオブジェクト指向分析/設計のスキルを教授します。
"四人組" と GRASP デザインパターンを適用し、設計の質を高める
4. デザインパターンは、オブジェクト指向設計のエキスパートたちがシステムの構築に適用している "最良の実践例" の流儀と解決法を教えてくれます。この本では、"四人組" *** パターンを含むデザインパターンと、特に重要な GRASP (General Responsibility assignment Software Pattern) パターンを適用する方法を学びます。GRASP パターンはオブジェクト指向設計における責務割り当ての基礎をなす原則を示したものです。パターンを学び、実際に適用することによって、分析と設計の習得が加速されます。
練り上げられた表現を通して効率よく学ぶ
5. この本の構成や力点の置き方は、オブジェクト指向分析/設計の分野で長年、講習と指導を続けてきた私自身の経験をベースにしています。この経験を生かし、よく練られた、実績のある、効率的なアプローチによってテーマを習得できるように配慮しました。読者にとっては、この本を読み、記載内容を学ぶという投資に見合う効果が最大限に得られます。
現実的な課題を通して学ぶ
6. この本では 1 つのケーススタディを徹底的に検証します。これは、オブジェクト指向分析/設計の全体のプロセスを現実に即して解説するためです。そして、問題の複雑な細かい部分については特に深く掘り下げ、現実的な演習を行います。
コードへ変換する
7. オブジェクト指向設計の成果物を Java のコードへ変換する方法を示します。
多層化されたアーキテクチャを設計する
8. 多層化されたアーキテクチャを設計する方法と、グラフィカルユーザインタフェースレイヤを問題領域およびシステムサービスのレイヤと関連づける方法を説明します。これは見過ごされがちですが、実際には重要な点です。
フレームワークを設計する
9. オブジェクト指向のフレームワークを設計する方法を示し、具体的な例としてデータベースを利用した永続性保存のためのフレームワーク作成にこれを適用します。
この本の目的
最も重要な目的は次のとおりです。
この本の読者である学生および開発者が、明確に説明された原則と発見的手続きの応用を通して、より品質の高いオブジェクト指向設計を行えるように支援する。
この本で述べられている情報とテクニックを学習し、適用することにより、読者はプロセスと概念の観点から問題の理解を深め、オブジェクトを使った堅固なソリューションの設計の手腕を大きく高めることになります。
対象読者
この本は以下の読者を想定しています。
■ オブジェクト指向プログラミング言語の経験はあるが、オブジェクト指向分析/設計はまったく初めてかごくわずかな経験しかない開発者
■ オブジェクトテクノロジを学んでいるコンピュータサイエンスまたはソフトウェアエンジニアリングコースの学生
■ オブジェクト指向分析/設計をある程度理解しているが、UML 表記法やパターンの適用を学びたい人、または自分の分析および設計スキルをさらに磨き、深めたい人。
前提条件
この本を最大限に活用していただくために、読者が以下の知識をもっていることを前提としています。これは必須の知識です。
■ C++、Java、または Smalltalk のようなオブジェクト指向プログラミング言語を理解し、経験があること
■ クラス、インスタンス、インタフェース、多相性、カプセル化、継承のような基本的なオブジェクトテクノロジ概念を理解していること
基本的なオブジェクトテクノロジ概念の定義はここでは行いません。
この本の構成
この本全般にわたる構成上の戦略は、オブジェクト指向分析/設計のトピックを、開発サイクルを 2 回繰り返すことになったソフトウェア開発プロジェクトの進行に合わせて紹介していくことです。最初の開発サイクルでは、分析と設計を取り上げます。2 番目の開発サイクルでは、新たな分析/設計のトピックを扱うほか、既出のトピックをさらに深く探求します。
この本の執筆にいたった理由
オブジェクトテクノロジには大きな未来が約束されています。しかし、その可能性を十分に現実の世界で生かすには適切なスキルが必要です。私がこの本で目指すものは、オブジェクト指向分析/設計のアクティビティを巧みに駆使してオブジェクトテクノロジの採用を成功に導けるようにすること、そして、オブジェクトテクノロジ関連の能力を高めることです。重要なシステムの作成と保守を成功させるにはこれらが不可欠だからです。
目次
序論
計画と詳細化フェーズ
分析フェーズ
設計フェーズ
組み立てフェーズ
専門的なトピック