オブジェクト指向設計(object-oriented design:ODD)に関するおすすめのスクラム本

アジャイルやスクラムをはじめようと思ったとき、はじめたばかりのとき、実際にはじめてみて壁にぶつかったとき、さまざまなシーンで、インターネットの記事や資料、書籍を探して読んでいるでしょう。

今回は、スクラム開発でも特に「スクラムチームにおける開発者(エンジニア・技術者・プログラマ)」のみなさんにとってぜひお役立ていただきたい本をご紹介します。

特に、テスト駆動開発(test-driven development:TDD)、リファクタリング(refactoring)、オブジェクト指向設計(object-oriented design:ODD)、受け入れテスト駆動開発(Acceptance Test Driven. Development:A-TDD)、 エクストリームプログラミング(extreme programming:XP)、自動化、デザインパターン・パターン指向など、技術的事項をジャンルに区切り、また、「プラグラマとしての姿勢」や「チームワーク」に至るまで、 開発者(エンジニア・技術者・プログラマ)のみなさんにぜひ一度は読んでいただきたい本を紹介いたします。

オブジェクト指向設計(object-oriented design:ODD)に関するおすすめのスクラム本

オブジェクト指向設計(object-oriented design:ODD)とは、オブジェクト指向に基づくソフトウェア開発の方法です。

オブジェクト指向とはプログラミング手法のひとつで、データをそれぞれの性質に応じた動作をも含むオブジェクトとして定義し、プログラムの設計と実現とを行うもの。

従来の手続きを中心としたプログラミングに比べ、大規模なプログラムの開発が容易となるものです。

オブジェクト指向の理論的枠組みに基づくソフトウェア開発、すなわちオブジェクト指向開発を行う際の、ソフトウェア開発工程において、分析工程であるオブジェクト指向分析(object-oriented analysis:OOA) 設計工程であるオブジェクト指向設計(object-oriented design:OOD)プログラミング工程であるオブジェクト指向プログラミング(object-oriented programming:OOP)の3つの意味を含んだ総称を指します。


アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技 ロバート・C・マーチン(著)、Robert C. Martin(著)、瀬谷 啓介(翻訳)

本書は優れたIT系書籍に送られる「Jolt Award」を受賞し、発売以来いまだにアメリカのAmazonでもトップセールを続けている「アジャイルソフトウェア開発」の不屈の名作でありバイブルと言われています。

著者は、アジャイル開発の歴史的な出発点となる「 アジャイルソフトウェア開発宣言(Agile Manifesto) 」の生みの親の一人であり、さまざまな国際会議やカンファレンスなどでレギュラースピーカーを務めるアジャイルソフトウェア開発の大御所です。

本書の他に「 Clean Coder プロフェッショナルプログラマへの道 」「 Clean Code アジャイルソフトウェア達人の技 」の著者としても広く知られています。

アジャイルソフトウェア開発は、めまぐるしく変化する仕様要求にさらされながらも、迅速にソフトウェアを開発する能力をあたえてくれます。

こうしたアジャイル性(俊敏性)を達成するためには、規律とフィードバクを与えてくれるプラクティス(実践法)が必要です。

また、柔軟性と保守性を兼ね備えた設計をするための基本原則や、特定の問題にこういった原則をバランス良く利用するためのデザインパターンを理解している必要があります。

本書は、上記3つのコンセプトがすべて縫い合わさり1つにまとめられています。

■ 著者

ロバート・C・マーチン(Robert C. Martin)

1970年からソフトウェアプロフェッショナルとして活動しており、1990年から国際的なソフトウェアコンサルタントとして活躍している。
C++、Java、.NET、OO、Patterns、UML、アジャイル方法論、XP(エクストリームプログラミング)といった分野で世界中の顧客を指導する経験豊富なコンサルタント集団であるObject Mentor社の創設者であり社長を努めている。


実践UML―パターンによるオブジェクト指向開発ガイド クレーグ・ラーマン(著)、Craig Larman(原著)、依田 光江(翻訳)、依田 智夫(翻訳)、今野 睦(翻訳)

本書はPOS(販売時点情報管理システム)という一貫した事例を通して、UMLに基づくオブジェクト指向設計の技法を丁寧に説明しています。

パターン、UML、フレームワーク、永続性、開発プロセス、そして成果物まで、具体的な開発プロジェクトを例として取り上げ、詳しく解説しています。

さらに、分析設計を進める上での開発プロセスと成果物についても明確な指針を述べており、オブジェクト指向開発を成功させるためのノウハウを収録しています。

  • オブジェクト指向分析/設計
  • 計画と詳細化フェーズ
  • 分析フェーズ
  • 設計フェーズ
  • 組み立てフェーズ
  • 専門的なトピック

と、各開発フェーズに基づいてさまざまな実践的なテクニックが包括的に理解できるようになっています。

■ 著者

クレーグ・ラーマン

バルテック社のチーフサイエンティスト。
1970年代にストリートミュージシャンとして生きていくことに挫折した後に、APL、PL/I、4GLでシステム構築を行った。
挫折の後遺症からすっかり立ち直り、1980年代に入ると、人工知能と知識表現に興味を持ち、LispマシンやLisp、Prolog、Smalltalkを使ってAIシステムを構築した。
カナダのバンクーバーにあるサイモン・フレイザー大学で、コンピュータ科学の学士および修士号を取得。


エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) エリック・エヴァンス(著)、今関 剛(監修), 和智 右桂(翻訳)、牧野 祐子(翻訳)

ソフトウェア開発コミュニティでは、ドメインモデリングがソフトウェア設計の中心であることが広く認められてきています。

ドメインモデルを通して、ソフトウェア開発者は豊富な機能を表現し、それをユーザの要求に本当の意味で応えるソフトウェアの実装に移すことができます。

しかし、明らかに重要であるにもかかわらず、効果的なドメインモデリングをどのようにソフトウェア開発プロセスに組み入れるかを説明する、実用的なリソースはほとんど存在しませんでした。
ドメイン駆動設計はこの要求に応えるものです。

これは具体的な技術についての本ではなく、読者にドメイン駆動設計への体系的なアプローチを提示するものです。

設計のベストプラクティスの応用的なセット、経験に基づくテクニック、さらに、複雑なドメインに直面するソフトウェアプロジェクトにおける開発を容易にする基本原則を紹介する一冊です。

■ 著者

エリック・エヴァンス

企業のビジネスと深く結び付いた進化するソフトウェア構築の支援を専門とするコンサルティンググループDomain Languageの創設者である。
1980年代から、複数の複雑なビジネスドメインと技術的ドメインの大型オブジェクト指向システムで、彼は設計者兼プログラマとして仕事をしている。
また、エクストリームプログラミングの開発チームの教育指導者でもあります。


オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング) バートランド・メイヤー(著)、酒匂 寛(翻訳)

前編の『 オブジェクト指向入門 第2版 原則・コンセプト 』の続編となる本書は、オブジェクト指向の第一人者バートランド・メイヤー著「Object-Oriented Software Construction 2/E」の邦訳の後半部分となっています。

モデリングのための視点、分析設計の原則を丁寧に解説しています。

また、数多くのデザインパターンや実装技法、希少な存在である手法上の詳細な探求、継承をうまく使うためにはどのようにしたらよいのか、そのほかにもオブジェクト指向方法論、オブジェクト指向分析に関する話題に多く触れられ、オブジェクト指向環境に関しての記述が豊富で、ソフトウェア開発技術者には必須書と言えるでしょう。1997年Jolt Award受賞。

■ 著者

バートランド・メイヤー(Bertrand Meyer)

1950年フランス生まれ。
ソフトウェア工学の草分けの一人として、言語、オブジェクト指向アプリケーションと再利用できるソフトウェア研究に大きな影響力を与えた。
また、オブジェクト指向言語Eiffelの開発者としても著名で、コンピュータ言語研究の第一人者。
現在、ETH Zurich(チューリッヒ工科大学)でソフトウェアエンジニアリングの主任教授を務めています。


Object-Oriented Design Heuristics Arthur J. Riel(著)

本書「Object-Oriented Design Heuristics offers」には、オブジェクト指向設計の改善についての洞察が書かれています。

掲載されている60以上のガイドラインは、言語に依存することなく、ソフトウェア設計の整合性がとられています。

ヒューリスティックという方法は、必要に応じてヒューリスティックを無視する柔軟性を可能にする警告メカニズムとして機能する厳密で急速なルールとしては書かれていません。

このチュートリアルベースのアプローチは、著者によるソフトウェア開発、何千人もの学生への教育、およびさまざまな分野でのデザインの批判の経験から生まれたもので、それぞれのガイドラインを適用することができます。

ヒューリスティックは、クラスとオブジェクトから物理的オブジェクト指向設計に至るまでの重要なトピックをカバーしています。

デザインヒューリスティックとデザインパターンの一般的な概念との間に存在する相乗効果について理解し、さらに、ヒューリスティックはデザインの一面における問題を浮き彫りにし、パターンは解決策を提供することができるため、あらゆるレベルのプログラマーが、本書に価値を見出すことができるでしょう。

特に初心者の場合は、オブジェクト指向プログラミングの概念を理解するための近道となるでしょう。
オブジェクト指向開発の取り組みを強化しようとしている経験豊富なプログラマーにとっては、洞察に満ちた分析力を得ることができるでしょう。
ガイドとしてオブジェクト指向設計ヒューリスティックを使用することで、さまざまなフェーズにいる開発者にとって「より良いソフトウェア開発者」になるためのテクニックを得られることでしょう。

■ 著者

アーサー・J・リエル(Arthur J. Riel)

アーサー・J・リエル(Arthur J. Riel)は、C、C++のプログラミング経験が豊富な企業や学校で40以上もの講義を年間を通して行っています。
AT&T Bell Laboratories、Draper Laboratories、IBMやNortheastern大学と大規模システム開発に参加。
またオブジェクト指向プログラミング(Object-Oriented Programming:OOP)に関連する記事、「The C++ Insider」「C/C++ Gazette」など多くの記事を執筆しており、 たびたび「OOPSLA」、「Object Expo」、「SCOOP」、「C++ World」などのカンファレンスを牽引する講師となっています。


オブジェクトデザイン (Object Oriented SELECTION) レベッカ・ワーフスブラック(著)、アラン・マクキーン(著)、株式会社オージス総研 藤井 拓(監修、監修)、辻 博靖(翻訳)、井藤 晶子(翻訳), 山口 雅之(翻訳)、林 直樹(翻訳)

本書には、良いテストの書き方が紹介されています。

良いテストとは、ポイントが簡潔であり、表現力が豊かで、有用で、かつメンテナンスが可能であるテストのことを指します。

ロイ・オシェローブのベストセラー「The Art of Unit Testing」にインスパイアされた本書には、特にJavaの世界のツールやプラクティスにフォーカスしており、振る舞い駆動開発(behavior-driven development)のような新しいテクニックが例とともに書かれています。

■ 著者

レベッカ・ワーフスブラック(Rebecca Wirfs-Brock)

Wirfs‐Brock Associatesの創設者。
アーキテクチャに関するコンサルティングや、顧客に対して効果的な開発プラクティスや開発手法のアドバイスを行っています。
責務駆動設計という一連の開発プラクティスの第一人者であり、彼女が考案し広く利用されているものの中には、ユースケースの会話やオブジェクトのロールステレオタイプがある。
また、著名な書籍『Designing Object‐Oriented Software』(Prentice Hall PTR,1990)の主執筆者でもあり、最近はIEEE Softwareで設計についてのコラムを連載しています。

アラン・マクキーン(Alan McKean)

優秀なオブジェクト指向技術者兼教育者。
講義を通じて何千もの開発者にオブジェクト指向設計やオブジェクト指向プログラミングの世界を紹介してきた経験豊かなプログラマーであり、講演者であり、指導者でもある彼には、 オブジェクト指向設計、オブジェクト指向プログラミング、分散オブジェクトシステムに関するカリキュラムの開発実績があります。

Odd-e Japanでは、オブジェクト指向設計(object-oriented design:ODD)について実践的に学んでいただける認定スクラムデベロッパー(CSD®)研修を開催しています。


認定スクラムデベロッパー(CSD®)研修とは
■ 概要
スクラムの開発チームメンバーとして、正しくかつ効率的に恊働できる人材育成を目的として Scrum Alliance® により作られた、体系的ソフトウェア開発者の教育・認定プログラム。
スクラムの原理原則を理解して、実際に恊働できる能力が Scrum Alliance® が規定した水準を満たしている事を証明します。
スクラムの開発チームメンバーとして必要かつ効率的なコミュニケーション、技術力が Scrum Alliance® の水準を満たしている事を評価します。

■ 学べること
Scrum Alliance®「Certified Scrum Developer® (CSD®)」の知識と技術を取得し、認定資格取得を目標とします。
実際に理想的なスクラム開発チームの1週間のスプリントを体験する過程で、小さなアプリケーションを構築しながら、適切な知識や技術、チームとして効率的に働きく習慣を得るでしょう。
本コースでは、トレーニング中にアジャイルコーチからコーチングも受けられるので、実践での悩みも相談できます。
近年、高い技術力を求められる市場において、有益な能力を保有している証明になります。
併せて、継続的に技術力の向上、継続的な改善できる能力を持っている証明にもなります。
また本研修は、高い技術力を持つエンジニアへ成長させ、参加者が良いスクラムの実践者となれるようにサポートします。

■ 詳しくはこちら
Odd-e Japan トレーニング申込み
Odd-e JapanのCertified Scrum Developer® (CSD®)研修
Certified Scrum Developer® (CSD®) - Scrum Alliance®

■ 研修プログラム
・スクラム(Scrum)のプラクティス
− スプリント計画
− バックログリファインメント
− スクラムの開発チームメンバーとして働くということなど
・技術的なプラクティス
− アジャイルな設計
− TDD(test-driven development)
− CI(継続的インテグレーション)
− A-TDD(Acceptance Test Driven Development)
− リファクタリング(refactoring)
− レガシーコードの改善方法 など

■ 認定スクラムデベロッパー(CSD®)資格取得
本資格の取得には、Scrum Alliance®が定めた5日間の研修を受講いただきます。
2日間で、 スクラム(Scrum)の原理原則や、正しいスクラムを理解いただき、残りの3日間でソフトウェア開発者として必要な技術的な教育を行います。
参会者のみなさまには、研修を通じて、認定スクラムトレーナー(CST®)から適切に指導を受けながら、「アジャイルな技術者として能力があること」を証明いただきます。
これらの必要な条件を満たすことで、2年間の資格取得を申請する権利を得ることができます。