内容説明
「EOD(拡張オブジェクト図)+NLUR(自然言語によるユースケース実現)」によるオブジェクト指向の設計と実装
AIがコードを生成できる時代に、人間のソフトウェア設計者はどのような役割を担うべきでしょうか。本書はその問いに対する一つの答えを提案します。
生成AIのコード生成能力は驚くべきものです。しかし、生成されたコードに対する最終的な責任は、それを利用した人間が負わなければなりません。したがって、AIが生成したコードの正しさを検証し、必要に応じて変更を要求できることが、これからのソフトウェア開発において人間に求められるきわめて重要な能力になります。
本書は、その基盤となるオブジェクト指向設計法として、EOD(Extended Object Diagram:拡張オブジェクト図)とNLUR(Natural Language Use-case Realization:自然言語によるユースケース実現)を中心に据えた設計法を紹介するものです。
(本書「はじめに」より)
【本書の特徴】
・メモリからの理解:値型、参照型、スタティック領域など、プログラムが動く際のメモリ挙動を図解。オブジェクト指向の抽象的な概念を、具体的なイメージに定着させます。
・独自の設計手法「EOD+NLUR」を解説:標準的なUMLだけでは捉えきれないオブジェクト間の動的なつながりを「拡張オブジェクト図(EOD)」で可視化し、「自然言語による設計(NLUR)」で論理構造を整理します。演習を通じ、誰もが「迷わない設計」を習得できます。本設計手法はUMLが抱えていた曖昧さを排除し、AIによるコード生成において間違えの発生しやすい推測フェーズを除去します。
・AIとの共同開発を実践:単にコードを書かせるのではなく、EOD/NLURという論理的な成果物を介してChatGPTと対話することで、設計品質を担保しながら開発を加速させる次世代のワークフローを紹介します。
目次
Chapter1 オブジェクト指向の基礎
1.1 オブジェクトとクラス
1.2 オブジェクト指向プログラムのメモリ上での振舞い
1.3 実行時のメモリイメージ
1.4 クラスとオブジェクトのUML 表記
1.5 オブジェクト指向プログラムの設計、生成プログラム、実行時動作の関係
1.6 C とオブジェクト指向プログラムのイメージ
1.7 実行時メモリイメージの演習問題の解答
Column
1 データ型の意味
2 オブジェクト指向の見える化
3 C とC++ のスピード
4 Polymorphism の使用とオブジェクト間の移動によるスピードの劣化
Chapter 2 Unified Process(UP)の概要とユースケース駆動の分析・設計
2.1 Unified Process(UP)とは
2.2 ユースケース駆動開発の概要
2.3 アーキテクチャ中心
2.4 繰返しと漸進的プロセス
2.5 ユースケース駆動における分析と設計
Column
1 Rumbaugh のオブジェクト指向分析法
2 アーキテクトの例
3 まずは動くコードを作成する
4 アーキテクトがいることの利点
5 要求定義におけるアーキテクトの役割
Chapter 3 拡張オブジェクト図と自然言語によるユースケース実現に基づく設計法
3.1 演習問題の紹介:缶自動販売機
3.2 ユースケースの記述法
3.3 分 析
3.4 設 計
3.5 実 装
3.6 良くない設計例
3.7 オブジェクト指向設計における迷信
Column
1 不要なコントロールクラスの問題
Chapter 4 ChatGPTとの共同プログラム開発の実例
4.1 ChatGPT とのプログラムの共同開発
4.2 演習問題:Domestic Telephone System(DTS)
4.3 ChatGPT とのDTS の共同開発の実例
4.4 ChatGPT との共同作業を通して得られた結論
Appendix
A.1 クラス図とEOD のテキストによる記述法
A.2 ChatGPT が生成したDTS のユースケース(最終版)
A.3 ChatGPT が生成したDTS のNLUR(バージョン1)
Reference
Index
-
- 電子書籍
- 愛を知らない伯爵【分冊】 12巻 ハー…
-
- 電子書籍
- ADHDの正体―その診断は正しいのか―
-
- 電子書籍
- フランス人が好きな3種の軽い煮込み。
-
- 電子書籍
- 村人転生 最強のスローライフ : 1 …
-
- 電子書籍
- Ocean Blue 運命のカレは最強…



