Last Update 2019/06/21
インターフェース増刊(Interface 2012年5月号増刊)

アーキテクチャ分析やモデリングの基礎からリアルタイム・システムの考え方まで
組み込みシステム開発に役立つ理論と手法

藤倉 俊幸 著
B5判 232ページ
定価2,420円(税込)
2012年5月1日発行
[絶版2016.10.31] 組み込みシステム開発に役立つ理論と手法
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 組み込み製品開発の現場では,常に新しい技術やツールが登場し,それらを理解しながら使いこなしていくことが必要になります.しかし,使用するツールなどが高機能になるにつれて,現場の技術者は基本的なことがわからなくなったり,なおざりにされたりする傾向にあります.そのような状況において,組み込み開発を担当する技術者が必要とする基礎知識を整理した本書が役に立ちます.
※本書は,2003年に出版された「リアルタイム/マルチタスクシステムの徹底研究」を改訂したものです.

目次

第1章 なぜ組み込みシステムにアーキテクチャが必要か
 1.1 ハードウェア・アーキテクチャとソフトウェア・アーキテクチャ
 1.2 設計とアーキテクチャ
 1.3 アーキテクチャの表現
 1.4 アーキテクチャ前駆体
 1.5 アーキテクチャとUML
 1.6 ソフトウェア構造の種類
 1.7 アーキテクチャ・スタイル選択の重要性
 1.8 汎用アーキテクチャ・カタログの例
 1.9 専用アーキテクチャ・カタログの例
 1.10 その他の専用アーキテクチャ

第2章 上流開発工程が性能と品質を決める
 2.1 ビジネス・モデリングと要求定義
 2.2 ビジネス・モデルとドメイン・モデル
 2.3 問題フレーム
 2.4 人の扱いをどうするか
 2.5 数理モデル
 2.6 要求項目の抽出

第3章 状態マシンで動作が記述できる
 3.1 状態マシンの役割
 3.2 状態マシンの種類
 3.3 UML の状態図
 3.4 状態マシンの設計
 3.5 時間オートマタ

第4章 モデリングが設計に役立つ
 4.1 モデリングとUML
 4.2 アクティブ・オブジェクトとは
 4.3 アクティブ・オブジェクト・モデリング
 4.4 構造化クラス

第5章 オブジェクト指向を導入する手始め
 5.1 C による抽象化プログラミング
 5.2 抽象データ型とは
 5.3 相互運用性および開放性のサンプル
 5.4 抽象化プログラミングの特徴と限界

第6章 マルチタスク・システムとは何か
 6.1 CPU 効率の追求からソフト開発効率の追求へ
 6.2 リエントラント
 6.3 機能分割と時間分割
 6.4 goto 文との類似性
 6.5 並行化の粒度
 6.6 アトミック・アクション
 6.7 リアルタイムOS の種類
 6.8 オブジェクト指向のアプローチ
 6.9 同期と非同期
 6.10 反復型開発

第7章 マルチタスク・プログラミングを実装する方法
 7.1 ロードと起動の違い
 7.2 タスクの構造
 7.3 Java のマルチスレッド・プログラミング
 7.4 並列構造におけるタスクの待ちの形態
 7.5 タスクが待たない並列構造

第8章 リアルタイムOS の役割とタスクの詳細
 8.1 main( )の前,printf の向こう側
 8.2 リアルタイムOS は何をするか
 8.3 タスクとは何か
 8.4 タスクの実体
 8.5 TCB(タスク・コントロール・ブロック)
 8.6 周期タスクと非周期タスク
 8.7 ドライバと割り込み処理

第9章 リアルタイム処理とは時間的制約を守ること
 9.1 時間領域の仕様
 9.2 期限付きの時間的制約
 9.3 冗長性に関する時間的制約
 9.4 物理系からの時間的制約
 9.5 データとしての時間とコントロールとしての時間
 9.6 周期のばらつき制御
 9.7 時刻の修正
 9.8 因果関係の推測――物理時間とコンピュータが扱う時間
 9.9 実現不可能な時間的要求
 9.10 ビジネス系アプリケーションとの違い

第10章 リアルタイムOS に要求される機能
 10.1 最悪実行時間(WCET)
 10.2 スケーラビリティ
 10.3 もっとも簡単なタスク・モデル
 10.4 RTOS を使ったタスク・モデル
 10.5 割り込みとスラッシング
 10.6 待ち状態がある場合のタスク・モデル
 10.7 リアルタイム同期のしくみ
 10.8 時間の扱い
 10.9 エラー検出はRTOS の役割
 10.10 市販RTOS について

第11章 優先順位逆転を防ぐ方法
 11.1 クリティカル・セクションとは
 11.2 リアルタイム同期

第12章 さまざまなリアルタイム・スケジューリングの手法
 12.1 NP 完全問題
 12.2 タスクの時間的属性
 12.3 スケジューリング方式の分類
 12.4 EDF 法(Earliest Deadline First)
 12.5 Bratley のアルゴリズム
 12.6 LDF 法(Latest Deadline First)
 12.7 実行順序付きEDF 法
 12.8 RM 法(Rate Monotonic)
 12.9 LLF 法とESF 法
 12.10 DM 法(Deadline Monotonic)
 12.11 オーバヘッド時間
 12.12 タスク間依存関係がある場合

第13章 スケジュール可能性を判定する方法
 13.1 スケジュール可能性とCPU 使用率
 13.2 スケジュール可能の必要条件と十分条件
 13.3 RM 法とDM 法のスケジュール可能性判定
 13.4 EDF 法のスケジュール可能性判定
 13.5 クリティカル・セクションがある場合のスケジュール判定
 13.6 タスク・ブロック時間の計算
 13.7 オーバロードへの対応方法
 13.8 RED 法(Robust Earliest Deadline)
 13.9 プライオリティ・レベル

第14章 ソフトウェア・テストの基礎知識
 14.1 error とfault とfailure
 14.2 テストから見た組み込みシステムの特徴
 14.3 テストの種類
 14.4 バグの出方