ジェネレーティブ プログラミング(Krzysztof Czarnecki Ulrich W. Eisenecker 津田義史 今関剛 朝比奈勲)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. ジェネレーティブ プログラミング

ジェネレーティブ プログラミング






形式:
書籍
発売日:
ISBN:
9784798113319
価格:
本体7,800円+税
仕様:
B5変・776ページ
分類:
開発管理
  • このエントリーをはてなブックマークに追加

ジェネレーティブ プログラミングは
「エコ」チックなアプリケーション開発だ!

ジェネレーティブ プログラミング」とは、複数のアプリケーション開発において共通するソフトウェア設計を抽出し、再利用/展開するためのソフトウェア開発技術です。昨今、デジタル家電等の組込みシステム開発でソフトウェアの規模が増大し開発が逼迫する中、差分開発を前提とした生産性の高いバリエーション開発を推進する取り組みが脚光を浴びています。本書は、その技術的手段の一部としてソフトウェア工学的基礎を提供する唯一の書籍です。掲載する具体的な事例は、これまでのプログラミング技術やソフトウェア工学の範囲から見て先進的であり、今後発展が期待されるものです。研究職の方だけでなく、実践的な企業の技術者の方も重宝するしっかりとした入門書です。


第1章 本書について
1.1 ハンドクラフトから大量生産へ
1.2 ジェネレーティブプログラミング
1.3 利点と応用法

第1部 分析、設計モデル、技法

第2章 ドメイン工学
2.1 この章を読むべき理由
2.2 ドメイン工学とは
2.3 ドメイン分析
2.4 ドメイン設計とドメイン実装
2.5 アプリケーション工学
2.6 プロダクトラインの実践
2.7 ドメイン工学の主概念
2.8 ドメイン分析とドメイン工学方法論の傾向
2.9 ドメイン工学と関連するアプローチ
2.10 これまでの経緯
2.11 まとめ

第3章 ドメイン工学とオブジェクト指向分析・設計
3.1 この章を読むべき理由
3.2 オブジェクト指向技術と再利用
3.3 ドメイン工学とオブジェクト指向分析・設計手法(OOA/D)との関係
3.4 ドメイン工学とOOA/Dの統合におけるアスペクト
3.5 水平な手法と垂直な手法
3.6 手法の選択

第4章 フィーチャモデリング
4.1 この章の読むべき理由
4.2 フィーチャについてのおさらい
4.3 フィーチャモデリング
4.4 フィーチャモデル
4.5 フィーチャ図と他のモデル表現、実装技術の関係
4.6 制約の実装
4.7 フィーチャモデルのためのツール支援
4.8 フィーチャ図に関するよくある質問
4.9 フィーチャモデリングの手順

第5章 ジェネレーティブプログラミングのプロセス
5.1 この章を読むべき理由
5.2 ジェネレーティブドメインモデル
5.3 ジェネレーティブプログラミングの主な開発工程
5.4 ジェネレーティブプログラミング向けドメイン工学手法の適用
5.5 ドメイン固有言語
5.6 DEMRAL:ジェネレーティブプログラミングのためのドメイン工学手法の例
5.7 DEMRALの概要
5.8 ドメイン分析
5.9 ドメイン設計
5.10 ドメイン実装

第2部 実装技術

第6章 ジェネリックプログラミング
6.1 この章を読むべき理由
6.2 ジェネリックプログラミングとは何か?
6.3 ジェネリックプログラミングとジェネレーティブプログラミング
6.4 ジェネリックパラメータ
6.5 パラメータによる多態と継承による多態
6.6 閉じた多態と閉じていない多態
6.7 いまどきの多態
6.8 パラメータ化されたコンポーネント
6.9 パラメータ化プログラミング
6.10 C++標準テンプレートライブラリ
6.11 ジェネリック方法論
6.12 歴史的な背景

第7章 テンプレートによるコンポーネント指向のC++プログラミングテクニック
7.1 この章を読むべき理由
7.2 システム構成の種類
7.3 C++による動的な構成のサポート
7.4 C++による静的な構成のサポート
7.5 特定のテンプレートのインスタンス化を禁止
7.6 静的なパラメータ化と動的なパラメータ化
7.7 パラメータ化した継承によるラッパ
7.8 パラメータ化した継承によるテンプレートメソッド
7.9 バインディングモードのパラメータ化
7.10 多数のコンポーネントを一律にパラメータ化
7.11 コンポーネント間の静的な相互利用

第8章 アスペクト指向プログラミング
8.1 この章を読むべき理由
8.2 アスペクト指向プログラミングとは何か?
8.3 アスペクト指向的なデコンポジションヘのアプローチ
8.4 アスペクトの現れ方
8.5 コンポジションのメカニズム
8.6 プログラミング言語におけるアスペクトの表現方法
8.7 アスペクト指向プログラミングの実装技術
8.8 最後に

第9章 ジェネレータ
9.1 この章を読むべき理由
9.2 ジェネレータとは何か?
9.3 ソフトウェア開発の変形モデル
9.4 ジェネレータを開発する技術
9.5 組み立てジェネレータと変形ジェネレータ
9.6 変形の種類
9.7 変形システム
9.8 生成のために選択されたアプローチ

第10章 C++による静的なメタプログラミング
10.1 この章を読むべき理由
10.2 メタプログラミングとは何か?
10.3 メタプログラミングへの誘い
10.4 静的なメタプログラミング
10.5 2つのレベルを持つ言語としてのC++
10.6 静的なレベルの機能的な持ち味
10.7 テンプレートメタプログラミング
10.8 テンプレートメタ関数
10.9 他のメタ関数への引数と返り値としてのメタ関数
10.10 メタ情報の表現
10.11 コンパイル時の制御構造
10.12 コード生成
10.13 例:静的な繰り返し処理によるメタ関数のテスト
10.14 C++における部分評価
10.15 部分的な特殊化の回避方法
10.16 テンプレートメタプログラミングの問題
10.17 歴史的な背景

第11章 インテンショナルプログラミング
11.1 この章を読むべき理由
11.2 インテンショナルプログラミングとは何か?
11.3 IPの背景にある技術
11.4 IPプログラミング環境での作業
11.5 高度な話題
11.6 IPの背後にある哲学
11.7 まとめ

第3部 応用事例

第12章 リストコンテナ
12.1 この章を読むべき理由
12.2 概要
12.3 ドメイン分析
12.4 ドメイン設計
12.5 実装コンポーネント
12.6 人手による組み立て
12.7 リストの指定
12.8 ジェネレータ
12.9 拡張

第13章 銀行口座
13.1 この章を読むべき理由
13.2 幸運なプログラミングの現場
13.3 デザインパターン、フレームワーク、コンポーネント
13.4 ドメイン工学とジェネレーティブプログラミング
13.5 フィーチャモデリング
13.6 アーキテクチャ設計
13.7 実装コンポーネント
13.8 コンフィギュレーション可能なクラスの階層
13.9 ドメイン固有言語の設計
13.10 銀行口座ジェネレータ
13.11 ジェネレータとその生成物のテスト

第14章 ジェネレーティブ行列計算ライブラリ(GMCL)
14.1 この章を読むべき理由
14.2 なぜ行列計算を取り上げるのか?
14.3 ドメイン分析
14.4 ドメイン設計と実装

付録

付録 A 概念モデリング
A.1 概念とは何か?
A.2 概念に関する理論
A.3 概念に関する重要な話題
A.4 概念モデリング、オブジェクト指向、そしてソフトウェア再利用

付録 B Smalltalkのインスタンス個別拡張プロトコル

付録 C Smalltalkにおいてリスナオブジェクトを割り当てるプロトコル

付録 D 行列計算の用語集

付録 E 依存表評価のためのメタ関数

ジェネレーティブプログラミング用語集
参考文献

本書は付属データの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2008年08月04日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷
日本語版推薦の辞 右ページ下から6行目
Dank-u sehr!
Danke sehr!
2008.04.21
1刷
著者紹介 右ページ6行目
Xeroxパロアルト研究所とワシントン州レイモンドのマイクロソフトリサーチ
Xeroxパロアルト研究所とワシントン州レッドモンドのマイクロソフトリサーチ

*カバー折り返しの著者プロフィールもレッドモンドとなります。*
2008.04.21
1刷 007
3行目
再利用を使う開発は、単一システムではなくシステムファミリを視野に入れて行われます。
再利用のための開発は、単一システムではなくシステムファミリを視野に入れて行われます。
2008.05.08
1刷 232
図7-32 ソースコード
下記のソースコードに差し替えます。
template <int r, int c> struct Configuration { typedef SelectSquareIfTrue<r==c>::Base Base;  //... };
2008.08.04
1刷 495
図11-22
図11-21と同じ画面が入っています。
2008.04.21