。
<ライブラリーのご紹介> 開発方法論/オブジェクト指向技術/データーモデリング技術
The Object Advantage~Business Process Reengineering With Object Technology | |
---|---|
著 者 | I. Jacobson , M. Ericsson, A. Jacobson |
出 版 社 | Addison-Wesley Professional (1994/9/30) |
内 容 | UMLの生みの親の1人であり、オブジェクト指向開発方法論(ObjectoryあるいはOOSE)の提唱者であるイヴァー・ヤコブソンの書籍である。 書籍のテーマはITテクノロジーで企業のリエンジニアリングをどのように推し進めるかということを分かりやすく解説している。 最上流のビジネス・エンジニアリングに特に焦点が置かれているが、一通り下流の作業まで多くの図を用いて解説をしている。 企業のリエンジニアリングの難しさと成功への鍵は、技術的なものよりも、企業理念と改革に対する意識の強さ、経営者層の強いリーダーシップが非常に重要になるが、本書を技術的な側面からどのようにIT化を進めて、リエンジニアリングを実現するかを理解することは価値があるだろう。 ヤコブソンのオブジェクト指向開発方法論(ObjectoryあるいはOOSE)を実践した読者、あるいは書籍[1]を読んだ事がある読者なら、この書籍で紹介されているリエンジニアリングのアプローチはObjectory(OOSE)そのものである。 ただし、この書籍は技術者のために詳細なリエンジニアリングを解説した開発方法論の内容では無く、ヤコブソンのObjectory(OOSE)の「ユースケース・ドリブンアプローチ」と呼ばれるアプローチがリエンジニアリングにも有効であり、如何に効果的で大きな効果をもたらす事を示す啓蒙書に近い内容になっている。 Objectory(OOSE)の「ユースケース・ドリブンアプローチ」は、ソフトウェア開発やITインテグレーションなどの分野で最上流の顧客要件開発から統合テストまでをカバーする方法論であるため、かなり専門的な内容になるが、本書はObjectory(OOSE)を知らない読者や、経営者や管理者を意識して書かれている。 本書はリエンジニアリングに焦点が当たっているが、ヤコブソンのオブジェクト指向開発方法論(ObjectoryあるいはOOSE)に興味がある方や大まかな内容を把握したい読者には、Objectory(OOSE)導入書として読むこともできる。 既に記述したように本書の狙いが本格的な開発方法論の専門書ではないため、詳細な方法論はヤコブソンによる別の書籍[1][2]を読むと良いだろう。 [1]:「Object Oriented Software Engineering: A Use Case Driven Approach」Addison-Wesley Professional [2]:「Software Reuse: Architecture, Process and Organization for Business Success 」Addison-Wesley Professional サンプル1 サンプル2 サンプル3 |
Object-Oriented Systems Analysis: A Model-Driven Approach(Yourdon Press Computing Series) | |
---|---|
著 者 | David W. Embley, Barry D. Kurtz, Scott N. Woodfield |
出 版 社 | Yourdon (1992/01) |
内 容 | 1990年代初めに出版されたオブジェク指向分析(OOA)に焦点を当てた書籍である。 この時期は非常に多くの開発方法論が提唱された時期である。 書籍に書かれている他のオブジェクト指向方法論と比較して、オブジェクトとクラスの解説や考え方は他の方法論よりも厳密性と緻密性とういう点では優れている気がする。 UMLが発表される前の書籍であるために、登場するモデルはUMLではないが、他のオブジェクト指向開発方法論やUMLを理解して読者であれば問題無く読み進めることができる。 書籍がカバーしている範囲は、上流工程の対象ドメインのクラス図(概念モデル、分析モデル)、状態図、(UMLで言うところの)シーケンス図、そして(これもUMLで言うところの)サブシステムに分割を行う考え方までである。 この書籍の特徴の1つとして方法論の背景には数学(集合・写像)や論理学(述語論理)の視点からの形式的な分析を行っていることであり、このために他の方法論よりも厳密性と緻密性が際立っている。 ただし、本篇の内容の理解のために読者には特別専門的な数学や論理学の知識を求めていない。 Appendixには、述語論理に馴染んでいるエンジニアのために本文中の例題のモデルを述語論理式で記述している。 図が多用されており、かつ、説明が丁寧なため読み進める上で困難な部分はない。 学校の教科書としても独習書としても利用できるが、設計や実装に関係する内容は解説されていないために現場開発の実践的方法論としての位置づけにはない。 なお、この書籍は東京電機大学出版局から翻訳本が出版されている。 サンプル1 サンプル2 サンプル3 |
Designing Object-Oriented C++ Applications: Using the Booch Method | |
---|---|
著 者 | Robert Cecil Martin |
出 版 社 | Prentice Hall (1995/03) |
内 容 | オブジェクト指向開発方法論「Booch法」を利用したソフトウェア開発について解説した書籍である。 分類上、この本は「開発方法論」に該当されるかもしれないが、純粋な開発方法論(Booch法)の詳細解説というよりは、Booch法を用いて実システムを開発した「Boochを活用した際の ノウハウと事例」という内容になっている。 単なる実例集でもないし、C++の実装例でもない。 書籍としては色々とユニークで良い内容になっているが、事例の実装言語がC++というのも魅力かもしれない。 最近ではJavaによる解説が多く、C++が減少傾向であるからだ。 大変興味深い解説の1つとしてサブシステム凝集性や抽象性とサブシステム間の連結性のメトリクスの考え方と計算方法および評価方法を紹介している点が挙げられる。 紹介されているメトリクスを利用してサブシステム分割が効果的であるか?サブシステム間の依存関係が適切であるか?を定量的に評価する方法を具体的かつ実践的に述べている。 さらに紹介されているメトリクスを魅力あるものにしている理由は、メトリクスを「開放閉鎖原則」「依存関係逆転原則」「リスコフ置換原則」などのアーキテクチャ設計で大変重要な原則と結びつけている点である。 メトリクスが重要原則群を効果的に活用してアーキテクチャが構築できているかを判断できるメトリクスになっているからである。 サブシステムの凝集性、抽象性とサブシステム間の独立性(疎結合:連結性)を効果的に実現できればアーキテクチャの保守性、再利用性の向上が期待できることを解説している。 サンプル1 サンプル2 サンプル3 |
Software Components With Ada言語: Structures, Tools, and Subsystems (The Benjamin/Cummings Series in Ada言語 and Software Engineering) | |
---|---|
著 者 | Grady Booch |
出 版 社 | Benjamin-Cummings Pub Co (1987/04) |
内 容 | 600ページ 大型本でオブジェクト指向の方法論提唱者、UML提案者、エバンジェリストとして有名なGrady Boochの初期の書籍である。 Boochは初期にAda言語を用いたオブジェクト指向設計の優れた書籍を出版しており、同じ時代に「Booch Components」というAda言語で記述されたライブラリーを提供している。 そのライ ブラリーの解説書である。 Ada言語は動的型チェック、並列機能、汎用プログラミング機能(ジェネリック)、ガーベージコレクション機能など高度な機能を多数備えている。 優れた分析・設計を効果的に実装するためには色々なクラス(Ada言語の場合はレコード型)とメソッドおよびクラスをグループ化したサブシステム(Ada言語ではパッケージ)を作成する 場合が多いが、この「Booch Components」は、汎用的なクラスをライブラリーとして提供している。 この書籍は「Booch Components」に含まれているクラス、サブシステムを実際にAda言語でどのように実装すればいいのかをコードで示しているので格好のテキストになる。 サンプル1 サンプル2 サンプル3 |
Ada言語によるソフトウェア開発―ソフトウェア工学とAda言語導入のすすめかた | |
---|---|
著 者 | イアン ゾンマヴィル (著), ロン モリソン (著), Japan SIGAda言語 (翻訳), 筧 捷彦 (翻訳) |
出 版 社 | 近代科学社 (1991/05) |
内 容 | >318ページ 「Adaによるソフトウェア開発」は、Ada言語の文法の解説や学習書ではない。 多機能かつ優れたAda言語の特徴を最大限にいかして実装すればよいかという指導書である。 Ada言語の誕生がミッションクリティカル、リアルタイムシステムの設計を効果的に実装できる言語として誕生した。 そのためAda言語はEiffel言語などの言語同様、ソフトウェア工学の知識 が充分でないとAda言語の能力を引き出せない。 1989年以降防衛産業のエンジニアとして大規模なリアルタイムシステムをオブジェクト指向で開発する際に参考にした書籍が、この「Adaによるソフトウェア開発」である(監訳は筧捷彦先 生で、形式手法などを中心に有名な方である)。 私自身、いわゆる開発方法論と呼ばれる書籍の中で最初に読んだものの1つである。 1989年前後の当時、鳴りモノ入りで登場したAda言語であったが、Ada言語の文法を理解するには、文法そのものよりも、Ada言語の思想の土台となっているソフトウェア工学上の分析・設 計技法の理解が重要であった。 たとえば、仕様と実装の分離、クラスやオブジェクトの切り出し、カプセル化における情報のエクスポート・コントロールとAdaパッケージと型の対応、マルチスレッド・プロセス設計と Adaのタスクとランデブー通信へのマッピングおよびデッドラインを満たすためのリアルタイム設計などなど。。。 さらには、保守性や再利用性が高いソフトウェアを記述するのはどうすればいいのかと言った問題まで理解しておかなければならない。 学生時代はOS理論、アルゴリズム理論、テスト技法、正当性理論、要件工学などテーマごとに分けて学習するが、ビジネスの世界ではテーマ毎に割りで作業をする訳でなない。 つまり、テーマ毎の理解は進んでも、テーマ横串の理解、つまりどのように互いを効果的に活用知ればいいのかという点が弱いことになる。 また、大学の授業では大規模開発の開発について扱うことはしないために、大規模開発の抱える課題(分散開発、アウトソーシングの開発スタイル及びそれにまつわる技術的課題)も理解す る必要がある。この理解があり、初めてAdaが並行開発や階層的開発をどのような思想と機能でサポートしているかがもきちんと理解でいることになる。 この「Ada言語によるソフトウェア開発―ソフトウェア工学とAda言語導入のすすめかた」は、ソフトウェア工学とAdaによる実装を結び付ける書籍となっている。 サンプル1 サンプル2 サンプル3 |
Software Design Methods for Concurrent and Real-Time Systems (SEI Series in Software Engineering) | |
---|---|
著 者 | Hassan Gomaa (著) |
出 版 社 | Addison-Wesley Professional(1993/7/31) |
内 容 | 464ページ サンプル1 サンプル2 サンプル3 |
Object Oriented Software Engineering: A Use Case Driven Approach | |
---|---|
著 者 | Ivar Jacobson (著) |
出 版 社 | Addison-Wesley Professional(1992/6/30) |
内 容 | UseCaseドリブンアプローチの生みの親イヴァー・ヤコブソンによるオブジェクト指向開発方法論の解説書。 この方法論(Objectory)の登場以前の開発方法論ではあまり考慮されていなかったプロジェクト管理や反復型開発の具体的な実施方法も体系的に解説されている。 いまでは常識になりつつある「UseCaseドリブンアプローチ」であるが、Objectory が注目されたのは、UseCaseに要件定義を記述するという価値だけでなく、「アーキテクチャ中心開発」「リスク軽減開発」「反復型開発の視点と粒度」「ビジネスロジックの明確な分離」「ユースケースシナリオからのオブジェクトとクラスの抽出方法」などを具体に解説したという点にある。 この書籍では他の開発方法論があまり扱わない「テスト技法」「メトリクス」「体系的な改善活動」などについても言及している。 サンプル1 サンプル2 サンプル3 |
Software Reuse: Architecture, Process and Organization for Business Success | |
---|---|
著 者 | Ivar Jacobson (著), M. Griss (著), P. Jonsson (著) |
出 版 社 | Addison-Wesley Professional |
内 容 | 528ページ サンプル1 サンプル2 サンプル3 |
Object-Oriented Methods: A Foundation | |
---|---|
著 者 | James Martin (著), James J. Odell (著) |
出 版 社 | Prentice Hall; 2nd版 |
内 容 | 400ページ サンプル1 サンプル2 サンプル3 サンプル4 サンプル5 サンプル6 |
システム開発―JSD法 | |
---|---|
著 者 | ママイケル ジャクソン著 大野 徇郎 , 山崎 利治 (監訳) |
出 版 社 | 共立出版 (1989/12) |
内 容 | 527ページ ジャクソン法の書籍である。これも1989年の出版だからかなり以前の出版である。 このジャクソン法は日本では正しく伝わっていないことが残念である。 日本ではもっぱらジャクソンプログラミングという、方法論の一部のみ紹介されてきた。 そのためか、下流の開発工程を対象としているイメージが定着してしまっている。 実際のジャクソン法は構造化手法とオブジェクト指向の両方を持ち合わせている開発手法である。 ジャクソンは、ケンブリッジ大学とオックスフォード大学をでているのでヨーロッパでは有名な方法論で、JSD+やOO-JSDなどのいくつもの方法論が発表されている。 ヨーロッパに主に利用されているために、ジャクソン本人以外にもJSDをベースにしたいくつもの方法論が提唱されている。 今日でもヨーロッパでは最新の内容を反映したJSDの流れをくむ開発方法論が利用されている。 1990年ごろ、最初の会社でリアルタイムシステムの制御装置の開発をしていたころ、イギリスの会社にエンジニアと打ち合わせを持った時、USで有名なOMTについて尋ねたとろヨーロッパでは あまり知られていないと言っていた。 一方、日本やアメリカではJSD系の開発方法論はあまり知られていなかった。 どうやら、日本はUSに事情ばかりしか知らないようで、もう少しヨーロッパに目を向けた方がいいとその頃から感 じていた。 サンプル1 サンプル2 サンプル3 |
オブジェクト指向概論 第2版(アジソン ウェスレイ・トッパン情報科学シリーズ (47)) | |
---|---|
著 者 | I. グラハム (著), Ian Graham (原著), MISCOオブジェクト指向研究会 (翻訳) |
出 版 社 | トッパン; 第2版 (1996/03) |
内 容 | 単行本: 505ページ |
文芸的プログラミング | |
---|---|
著 者 | Donald E.Kunuth著 有澤誠訳 |
出 版 社 | アスキー出版局 |
内 容 | 単行本: 505ページ
有名なクヌースの書籍に「Literate Programming」がある。 翻訳がこのアスキー出版からの「文芸的プログラミング」である。 20年以上も以前の書籍であるが内容は決して古くなく現在でも刺激に富む一冊である。 なぜ古くないと言えば、内容が普遍的なことを扱っているからである。 表面的にはやや古い印象を与える部分もあるが、本質は現在と変化していないテーマを多く扱っている。 クヌースは第一章でこの本のテーマである「文芸的プログラミング」について言及し自分の意見と立場を示している また他の著名な研究者達の「文芸的プログラミング」に対する意見を「工学的プログラミング」と対比させ紹介している。 いずれにしても「文芸的プログラミング」は「工学的プログラミング」を基礎とし、その上でエンジニアの感性が必要となっくるだろう。 この本で紹介されている数々の科学的な論点を理解していなければ、正当性のあるプログラムを書けないだろうし、個々の個性やセンスなどを主張することはナンセンスである。 第2章では「goto文」について議論されている。 「いまどきgoto文の話も無かろう」と思うかもしれないが、議論の内容はなかなかレベルが高い。 おそらく日本の多くの大学や大学院では、現在あまり深く教えていない形式的な正当性の理論を利用した話が軸である。Hoareトリプルやループ不変条件が理解できなければ 「goto文不用説」や「goto文有用説」は単なる嗜好レベルの議論になっていまうからである。 「goto文不用説」と「goto文有用説」の両視点から解説が述べられている。 第3章以降はパズル称した共通問題を用いたプログラムの議論やTEXやWEBを題材にしている議論が多い。 本書は特定のテーマを体系的に学習するというタイプではなく、気が向いた時に好きなページをジックリ考えて読む事に向いている。 出張で長い時間の移動の時に小説や雑誌を読むのがあまり好みで無い方は、内容さえ興味があれば本書は向いているかも知れない |
HASHIMOTO SOFTWARE CONSULTING INTERNATIONAL Inc./TEL 042-747-0766