Code Quality

もともとは Code Reading という一冊の本として出る予定だったが、分量と締め切りの関係で分けられることになった本。

プログラムの信頼性、効率性、保守性などの非機能特性を NetBSD などのソ−スを用いて説明している。

特に保守性の解析性に関する内容が参考になる。

例えばよく話に聞く「コードは1画面に収めるべし」という話に対してソースコードの集計結果などから理由を示している。


目次

序文
日本語版に寄せて
はじめに
まえがき

第1章 序論
1.1 ソフトウェアの品質
1.2 本書の読み方

第2章 信頼性
2.1 入力の問題
2.2 出力の問題
2.3 ロジックの問題
2.4 算法の問題
2.5 並列性とタイミングの問題
2.6 インターフェイスの問題
2.7 データ操作の問題
2.8 障害許容性

第3章 セキュリティ
3.1 脆弱なコード
3.2 バッファオーバーフロー
3.3 競合状態
3.4 問題のあるAPI
3.5 信頼できない入力
3.6 結果の検証
3.7 データと権限の漏洩
3.8 トロイの木馬
3.9 ツール

第4章 タイムパフォーマンス
4.1 測定手法
4.2 アルゴリズムの複雑さ
4.3 スタンドアロンコード
4.4 オペレーティングシステムとのインタラクション
4.5 周辺機器とのインタラクション
4.6 不本意なインタラクション
4.7 キャッシュ

第5章 空間パフォーマンス
5.1 データ
5.2 メモリ構成
5.3 メモリの階層構造
5.4 プロセスとオペレーティングシステムインターフェイス
5.5 ヒープメモリの管理
5.6 スタックメモリの管理
5.7 コード

第6章 移植性
6.1 オペレーティングシステム
6.2 ハードウェアおよびプロセッサアーキテクチャ
6.3 コンパイラと言語のエクステンション
6.4 グラフィカルユーザーインターフェイス
6.5 国際化と地域化

第7章 保守性
7.1 保守性の定量
7.2 解析性
7.3 変更性
7.4 安定性
7.5 試験性
7.6 開発環境のもたらす影響

第8章 浮動小数点演算
8.1 浮動小数点表現
8.2 丸め
8.3 オーバーフロー
8.4 アンダーフロー
8.5 桁落ち
8.6 吸収
8.7 無効な演算

付録A ソースコードの著作者

参考文献
索引
題辞
あとがき
著者紹介/監訳者紹介