SBクリエイティブ

アジャイルソフトウェア開発の奥義 第2版

ロバート・C・マーチン:著者 / 瀬谷 啓介:訳

オブジェクト指向開発の神髄と匠の技

【累計9刷りのロングセラー】
時代を超越したプログラミングの基本原則

本書はロバート・C・マーチン(愛称、ボブおじさん)が世に送り出した『Agile Software Development』の邦訳書(Java版)です。本書は優れたIT系書籍に送られる「Jolt Award」を受賞し、発売以来いまだにアメリカのAmazonでもトップセールを続けている「アジャイルソフォトウェア開発」の不屈の名作であり、バイブルです。

もはやソフトウェア開発業界で「アジャイル開発」という言葉を知らない人はいないでしょう。著者は、アジャイル開発の歴史的な出発点となる「アジャイルソフトウェア開発宣言」の生みの親の一人であり、さまざまな国際会議やドレードショーなどでレギュラースピーカーを務める「アジャイルソフトウェア開発」の大御所です。『Clean Coder プロフェッショナルプログラマへの道』『Clean Code アジャイルソフトウェア達人の技』などの著者としても知られている、一級の教育者でもあります。

アジャイルソフトウェア開発は、めまぐるしく変化する仕様要求にさらされながらも、迅速にソフトウェアを開発する能力をあたえてくれます。こうしたアジャイル性(俊敏性)を達成するためには、規律とフィードバクを与えてくれるプラクティス(実践法)が必要です。また、柔軟性と保守性を兼ね備えた設計をするための基本原則や、特定の問題にこういった原則をバランス良く利用するためのデザインパターンを理解している必要があります。

本書は、上記3つのコンセプトをすべて縫い合わせ、一つにまとめるという前人未到の究極の試みを見事にやってのけています。この美しく織り成された世界観には感動すら覚えます。これは、自らの経験をもって著者が到達した1つの究極の境地、「奥義」だといえるでしょう。「アジャイルソフトウェア開発」の創始者直伝の本書を手にした読者の方は、師匠から奥義を授かり、巨人の肩に乗りその一歩先に進むことができるはずです。

第1部 アジャイル開発
第1章 アジャイルプラクティス
第2章 エクストリームプログラミングの概要
第3章 プランニング
第4章 テスティング
第5章 リファクタリング
第6章 プログラミングエピソード

第2部 アジャイル設計
第7章 アジャイル設計とは
第8章 単一責任の原則(SRP)
第9章 オープン・クローズドの原則(OCP)
第10章 リスコフの置換原則(LSP)
第11章 依存関係逆転の原則(DIP)
第12章 インタフェース分離の原則(ISP)

第3部 給与システムのケーススタディ
第13章 CommandパターンとActive Objectパターン
第14章 Template MethodパターンとStrategyパターン:継承と委譲
第15章 FacadeパターンとMediatorパターン
第16章 SingletonパターンとMonostateパターン
第17章 Null Objectパターン
第18章 給与システムのケーススタディ:最初のイテレーション
第19章 給与システムのケーススタディ:実装

第4部 給与システムのパッケージング
第20章 パッケージ設計の原則
第21章 Factoryパターン
第22章 給与システムのケーススタディ:ふたたび

第5部 気象観測所のケーススタディ
第23章 Compositeパターン
第24章 Observerパターン:デザインパターンへの回帰
第25章 Abstract Serverパターン、Adapterパターン、Bridgeパターン
第26章 ProxyパターンとStairway to Heavenパターン:サードパーティAPIの管理
第27章 ケーススタディ:気象観測所

第6部 ETSのケーススタディ
第28章 Visitorパターン
第29章 Stateパターン
第30章 ETSのフレームワーク

付録A UML表記法1:CGIの例
付録B UML表記法2:Statmux(統計的マルチプレクサ)
付録C 皮肉な運命
付録D ソースコードは設計である
付録E リファレンス

定価:6,380円(本体5,800円+10%税)

書籍情報

  • 発売日:2008年7月1日(火)
  • ISBN:978-4-7973-4778-4
  • サイズ:B5変
  • ページ数:712
  • 付録:-
まえがきより

アジャイル開発は、めまぐるしく変化する仕様要求にさらされながらも、迅速にソフトウェアを開発する能力を与えてくれる。こうしたアジャイル性(俊敏性)を達成するためには、規律とフィードバックを与えてくれるプラクティス(実践法)が必要だ。また、柔軟性と保守性を兼ね備えた設計を実現するための基本原則や、そうした原則をバランスよく利用するためのデザインパターンを理解している必要がある。本書は、この3 つのコンセプト(原則・デザインパターン・プラクティス)をすべて縫い合わせ、1 つにまとめようという試みである。

本書では、原則、デザインパターン、プラクティスを示し、それらが実際にどのように利用されるのかをたくさんのケーススタディを通して説明する。もっと重要なことは、これらのケーススタディの解答を天下り的に示さず、むしろ設計過程を進行形で示したことである。したがって、あなたは設計者がミスを犯す様子を目撃することになる。設計者がそのミスをどのように特定し、また実際にどのように修正するのかを観察して欲しい。そこでは、設計者がどのように難問に挑み、仕様書の曖昧さや現実とのトレードオフとどのように格闘するのかを見ることになるだろう。つまり、設計という行為そのものを見ることになるのだ。

本書の構成 この本は下記に示す6 つの主な部と付録から構成されている

● 第1 部:アジャイル開発― この部ではアジャイル開発のコンセプトを説明。まずアジャイルソフトウェア開発宣言から始まり、エクストリームプログラミング(XP)の概要を説明してから、特に設計やコードの記述にインパクトがあるXP プラクティスの説明に的を絞った小さなケーススタディを数多く紹介。

● 第2 部:アジャイル設計― この部に属する章では、オブジェクト指向ソフトウェア設計について取り扱っている。最初の章では「設計とは何か?」という疑問を投げかけソフトウェア開発の複雑さを管理する際の問題点やテクニックについて議論。最後にオブジェクト指向設計の原則を紹介するところで頂点に達する。

● 第3 部:給与システムのケーススタディ― この部はこの本で最も大きな部分を占め、もっとも完全なケーススタディとなっている。給与システムのオブジェクト指向設計とC++ による実装を行う。最初に複数の章を割いて、このケーススタディで利用するデザインパターンを説明している。ケーススタディそのものについては、最後の2 つの章にまとめられている。

● 第4 部:給与システムのパッケージング― この部はオブジェクト指向パッケージ設計の原則について解説し、第3 部で登場したクラスを段階的にパッケージングしていく過程を通してこれらの原則の有効性を例証している。

● 第5 部:気象観測ステーションのケーススタディ―この部はもともとBooch の本のために書き下ろされたケーススタディである。このケーススタディでは、ビジネス上の重大な決定を下した会社の状況を説明し、Java 開発チームがその決定に対処していく様子を追う。他の部と同様にまずここで利用するデザインパターンを説明する。最後にステーションの設計と実装をするところで頂点に達する。

● 第6 部: ETS のケーススタディ― この部は著者が実際に取り組んだプロジェクトを例として取り上げている。このプロジェクトによって開発されたシステムは1999 年からずっと現在も稼働し続けている。これは自動化されたテストシステムであり、建築士登録委員全国協議会(NCARB)が主催する建築士試験を実施し採点することができる。

● UML 表記法に関する付録― 付録A とB にはUML の表記法を説明するために使った2 つのケーススタディが含まれている。

● その他の付録

多くのコードを掲載

この本にはたくさんのJava、C++ のコードが含まれている。コードをじっくり読んで欲しい。ある意味、本書のポイントはコードそのものにあると言っていい。

この本の論点を具現化しているのはコードなのだ。

本書の進め方は特定のパターンに従っている。まず、さまざまな大きさのケーススタディが用意されており、非常に小さいものからいくつかの章に渡って説明されているものまである。

具体的なケーススタディで追体験

本書では、原則、デザインパターン、プラクティスを示し、それらが実際にどのように利用されるのかをたくさんのケーススタディを通して説明する。もっと重要なことは、これらのケーススタディの解答を天下り的に示さず、むしろ設計過程を進行形で示したことである。したがって、あなたは設計者がミスを犯す様子を目撃することになる。設計者がそのミスをどのように特定し、また実際にどのように修正するのかを観察して欲しい。そこでは、設計者がどのように難問に挑み、仕様書の曖昧さや現実とのトレードオフとどのように格闘するのかを見ることになるだろう。つまり、設計という行為そのものを見ることになるのだ。

結論

各章の最後に「結論」で、その章のまとめを掲載。また章末ごとに参考文献を掲載しているので、出典が明確となっている

著者紹介

関連商品のご案内

もっと見る

試し読み新着お届け

もっと見る