組込みソフトウェア開発のための構造化モデリング(SESSAME WG2)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 組込みソフトウェア開発のための構造化モデリング

組込みソフトウェア開発のための構造化モデリング


形式:
書籍
発売日:
ISBN:
9784798110479
定価:
2,420(本体2,200円+税10%)
仕様:
A5・224ページ
カテゴリ:
ハードウェア・自作
キーワード:
#OS・アプリケーション,#開発環境,#ネットワーク・サーバ・セキュリティ,#システム運用
シリーズ:
組込みエンジニア教科書

上流工程の基礎を学んで組込みソフトウェア開発の明日を担うスキルを得る!

まったくあたらしい、組込み技術者のための教科書が誕生しました。組込みエンジニア教科書は、エンジニアの手によって著されたエンジニアのための教科書です。
本書は、要件定義 / 分析 / 設計からソースコード生成に至るまでの工程で、構造化手法に基く組込みソフトウェア開発について解説します。ソフトウェア開発の基本である構造化手法を、モデリングの行うことで今日的なソフトウェア開発手法として身に着けることができます。
初級エンジニア向けに書かれていますので、これから本格的に技術者としてのスキルを積み上げていきたい方はもちろん、今までのやり方に疑問を持つ中級者の方、カイゼンを行いたい管理者の方にもお勧めです。

Chapter 1 はじめに

1-1 本書について
  1-1-1 本書の適用範囲
  1-1-2 構造化手法で基本を学ぶ
  1-1-3 モデリング中心
  1-1-4 具体的な事例
1-2 本書の活用方法
  1-2-1 本書の読み進め方
1-3 モデリングツールの活用
  1-3-1 イベントリスト
  1-3-2 データディレクトリ
  1-3-3 データフローダイアグラム
  1-3-4 構造図
  1-3-5 ディシジョンテーブル
  1-3-6 状態遷移図
  1-3-7 状態遷移表
1-4 組込みソフトウェアの開発
  1-4-1 組込みソフトウェアとは
  1-4-2 組込みソフトウェアの主要分野
  1-4-3 組込みソフトウェアの特徴
  1-4-4 システム開発の要件
  1-4-5 組込みソフトウェアの特性と開発工程
  1-4-6 日本の組込みソフトウェア開発
  1-4-7 どんな技術が必要か
  1-4-8 ソフトウェア開発工程とモデリング
  1-4-9 モデリングの効用

Chapter 2 課題説明

2-1 話題沸騰ポット(GOMA-1015)

Chapter 3 失敗事例

3-1 失敗事例 1:基本動作から積み上げていった例
  3-1-1 ソースコードの概要
  3-1-2 解説
3-2 失敗事例 2:ハードウェアを動かしながら作り上げていった例
  3-2-1 ソースコードの概要
  3-2-2 解説
3-3 失敗事例 3:要求仕様の曖昧さに気付いていない例
3-4 まとめ
  3-4-1 6つの失敗パターン

Chapter 4 要求モデリング

4-1 なぜ要求モデルが必要なのか
  4-1-1 仕様書はもらったけれど
  4-1-2 仕様書を作る立場から
  4-1-3 仕様書を読む立場から
4-2 要求モデリングで何をするのか
  4-2-1 要求モデリングとは
  4-2-2 要求モデリングのプロセスとアウトプット
4-3 要求モデリングを体験する
  4-3-1 イベントリストを作成する
  4-3-2 イベントリストの表記法
  4-3-3 イベントリストの作成過程
  4-3-4 非機能要件リストを作成する
  4-3-5 タイミング仕様書を作成する
  4-3-6 データディクショナリを作成する
4-4 ポットの要求モデル事例
4-5 まとめ
4-6 復習

Chapter 5 分析モデリング

5-1 なぜ分析モデルが必要なのか
  5-1-1 仕様書からいきなり設計していると
  5-1-2 設計する立場から
  5-1-3 プロジェクト管理者の立場から
5-2 分析モデリングで何をするのか
  5-2-1 分析モデリングとは
  5-2-2 分析モデリングのプロセスとアウトプット
5-3 分析モデリングを体験する
  5-3-1 コンテキストダイアグラムを作成する
  5-3-2 データフローダイアグラム(DFD)を作成する
  5-3-3 DFDの表記法
  5-3-4 コンテキストダイアグラムとDFDの作成過程
  5-3-5 データディクショナリを更新する
  5-3-6 制御フローダイアグラムを作成する
  5-3-7 制御仕様書を作成する
  5-3-8 プロセス仕様書を作成する
  5-3-9 分析モデリング成功の要所
5-4 ポットの分析モデル事例
5-5 まとめ
5-6 復習

Chapter 6 設計モデリング

6-1 なぜ設計モデルが必要なのか
  6-1-1 設計モデルがなかったあの頃
  6-1-2 設計モデルを作成する立場から
  6-1-3 設計モデルを作成する立場から
  6-1-4 ソフトウェア統合の視点から
6-2 設計モデリングで何をするのか
  6-2-1 設計モデリングとは
  6-2-2 設計モデリングのプロセスとアウトプット
  6-2-3 構造設計以後のコード中心プロセスの例
6-3 設計モデリングを体験する
  6-3-1 構造図を作成する
  6-3-2 構造図の表記法
  6-3-3 構造図の作成過程(DFDからSCへの移行)
  6-3-4 モジュール仕様を作成する
6-4 ポットの設計モデル事例
  6-4-1 DFDからSCへの移行
  6-4-2 DFD全貌と最大抽象点
  6-4-3 できあがった構造図
  6-4-4 タイミング要求への対応
  6-4-5 モジュール仕様一覧
  6-4-6 モジュール仕様書
6-5 まとめ
6-6 復習

Chapter 7 プログラミング

7-1 失敗事例
  7-1-1 いきなりプログラミングを始めたら
  7-1-2 保温モードの変更処理を追加
  7-1-3 処理ループをサブルーチン化
7-2 構造図からソースコードへ
  7-2-1 プログラミングの手順
7-3 状態遷移のプログラミング
  7-3-1 状態遷移のプログラム例(switch-case)
  7-3-2 状態遷移のプログラム例(関数ポインタ)
  7-3-3 設計モデルと実装を同期させる
7-4 ポットのプログラム事例
7-5 プログラム実行の流れ
  7-5-1 main関数はどこにある
  7-5-2 システムの初期化
  7-5-3 初期化から定常状態へ
7-6 まとめ
7-7 復習

Chapter 8 設計品質

8-1 複雑さへの対処
  8-1-1 分割と階層
  8-1-2 抽象化
  8-1-3 俯瞰
  8-1-4 図解
  8-1-5 対話
8-2 設計の品質
  8-2-1 モジュール分割
  8-2-2 凝集度
  8-2-3 結合度
  8-2-4 システム形状
8-3 失敗事例の検証
  8-3-1 肥大化
  8-3-2 なんでも屋
  8-3-3 スパゲッティ
  8-3-4 無秩序な構造
  8-3-5 物理駆動
  8-3-6 老舗温泉旅館(余計な関係)
8-4 まとめ

Chapter 9 レビュー

9-1 レビューとテスト
  9-1-1 レビューとテストの違い
9-2 レビューとは
  9-2-1 レビューの対象物
  9-2-2 なぜレビューするのか
9-3 レビュー技法
9-4 インスベクション
  9-4-1 インスペクションの概要
  9-4-2 インスペクションの入力
  9-4-3 インスペクションの処理
  9-4-4 インスペクションの出力
9-5 インスペクションの実際
  9-5-1 対象物
  9-5-2 タイミング
  9-5-3 観点
9-6 インスペクション実施ツール
  9-6-1 課題ログ
  9-6-2 実施報告書
  9-6-3 チェックリストの事例
9-7 まとめ

Appendix A 定石・格言一覧

A-1 定石
A-2 格言

Appendix B 用語辞書

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

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

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

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

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

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

書籍の種類:

書籍の刷数:

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

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

最終更新日:2022年04月25日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 069
表4.3 最終行の下に追加
6刷
*コメント* | コメントは*ではさむ
2011.07.06
1刷 070
図4.11 下から1~5行目
6刷
“ ”
* *

コメントをはさんでいる「“ ”」を「* *」に変更します。
2011.07.06
1刷 072
下から4行目
7刷
高温モード=*熱いコーヒーを飲むため保温モード*
高温モード=*熱いコーヒーを飲むため保温モード*
2012.10.18
1刷 072
図4.15
6刷
■利用者に関係するデータ  給湯準備 = 給湯口をロック解除する
 給湯禁止 = 給湯口をロックする
 給湯開始 = 給湯を始める
 給湯停止 = 給湯を止める
 沸騰開始 = 沸騰させる
 沸騰停止 = 沸騰を停止する
 時間計測開始 = タイマ開始する
 タイマ時間追加 = タイマ設定時間を追加する
 水の補充 = [ ふた開ふた閉 ]  保温モード設定= 保温モードを切り替える
■装置に関係するデータ  動作状態 = [ 沸騰保温 ]  水温= 整数、単位:℃  水位= 整数 下限:0 上限:4 単位:なし  水量= 整数 下限:0 上限:4 単位:なし  満水= 満水状態を表す
 ロック状態= [ ロックロック解除 ]  タイマ残り時間 = 整数、単位:分、下限:0  警告情報= 温度・水位の異常
 ヒータオン= ヒータをオンする制御
 ヒータオフ= ヒータをオフする制御
 ポンプ作動= ポンプを動作開始する制御
 ポンプ停止= ポンプを停止する制御
■温度制御に関係するデータ  保温モード= [ 高温モード|節約モード|ミルクモード ]  高温モード= 熱いコーヒーを飲むためる保温モード
 節約モード= 消費電力を節約するための保温モード
 ミルクモード= 乳児の粉ミルク調乳用として使うためのモード
 表示水温= 整数、単位:℃
■利用者に関係するデータ  給湯準備 = *給湯口をロック解除する*
 給湯禁止 = *給湯口をロックする*
 給湯開始 = *給湯を始める*
 給湯停止 = *給湯を止める*
 沸騰開始 = *沸騰させる*
 沸騰停止 = *沸騰を停止する*
 時間計測開始 = *タイマ開始する*
 タイマ時間追加 = *タイマ設定時間を追加する*
 水の補充 = [ ふた開|ふた閉 ]  保温モード設定= *保温モードを切り替える*
■装置に関係するデータ  動作状態 = [ 沸騰|保温 ]  水温= 整数、単位:℃  水位= 整数 下限:0 上限:4 単位:なし  水量= 整数 下限:0 上限:4 単位:なし  満水= *満水状態を表す*
 ロック状態= [ ロック|ロック解除]  タイマ残り時間 = 整数、単位:分、下限:0  警告情報= *温度・水位の異常*
 ヒータオン= *ヒータをオンする制御*
 ヒータオフ= *ヒータをオフする制御*
 ポンプ作動= *ポンプを動作開始する制御*
 ポンプ停止= *ポンプを停止する制御*
■温度制御に関係するデータ  保温モード= [ 高温モード|節約モード|ミルクモード]  高温モード= *熱いコーヒーを飲むためる保温モード*
 節約モード= *消費電力を節約するための保温モード*
 ミルクモード= *乳児の粉ミルク調乳用として使うためのモード*
 表示水温= 整数、単位:℃

「“ ”」を、a=[ x | y | z ]のような形式の場合、削除します。それ以外の場合、「* *」に変更します。
2012.10.18
1刷 090
上から5行目
3刷
基本ルール2―プロセスの精度
基本ルール2―プロセスの粒度
2007.10.11
1刷 096
図5.12 [利用者]から[お湯を注ぐ]への矢印線の説明
7刷
給湯準備 沸騰開始 給湯停止 沸騰禁止
給湯準備 給湯開始 給湯停止 給湯禁止
2012.10.18
1刷 105
下から5行目
3刷
「-」をセル内に記載します。
「/」をセル内に記載します。
2007.10.11
1刷 106
図5.19
3刷
(7箇所)
/ (7箇所)
2007.10.11
1刷 110
図5.22の中央
給湯要求 給湯終了
給湯開始 給湯停止
2022.04.25
1刷 112
図5.25 ポットSTT
3刷
- (6箇所)
/ (6箇所)
2007.10.11
1刷 113
図5.27
沸騰させる 2.3-(破線の矢印)→加熱を制御する 2.6 温度異常を検知する 2.7-(実線の矢印)→加熱を制御する 2.6
沸騰させる 2.3-(実線の矢印)→加熱を制御する 2.6 温度異常を検知する 2.7-(破線の矢印)→加熱を制御する 2.6
2022.04.25
1刷 114
図5.29
利用者-(実線の矢印)→給湯口をロックする 3.2 利用者-(実線の矢印)→給湯口をロック 解除する 3.1 利用者-(実線の矢印)→給湯を開始する 3.3 利用者-(実線の矢印)→給湯を終了する 3.4
利用者-(破線の矢印)→給湯口をロックする 3.2 利用者-(破線の矢印)→給湯口をロック 解除する 3.1 利用者-(破線の矢印)→給湯を開始する 3.3 利用者-(破線の矢印)→給湯を終了する 3.4
2022.04.25
1刷 114
図5.28 温度制御STT
3刷
- (10箇所)
/ (10箇所)
2007.10.11
1刷 117~118
図5.34
6刷
(略)
■利用者に関係するデータ  ユーザ要求 = [ 沸騰開始|給湯準備|給湯開始|給湯停止|時間計測開始|タイマ時間追加 ]  ユーザ保守 = [ 水の補充|給湯禁止|保温モード設定 ]  給湯準備 = * 給湯口をロック解除する *
 給湯禁止 = * 給湯口をロックする *
 給湯開始 = * 給湯を始める *
 給湯停止 = * 給湯を止める *
 沸騰開始 = * 沸騰させる *
 沸騰停止 = * 沸騰を中断する *
 時間計測開始 = * タイマ開始する *
 タイマ時間追加 = * タイマ設定時間を追加する *
 水の補充 = [ ふた開|ふた閉 ]  保温モード設定= * 保温モードを切り替える *
■装置に関係するデータ  現在状態 = [ 動作状態|保温モード|水温|水量|ロック状態|タイマ残り時間 ]  警告情報 = [ 温度異常|水位異常 ]  動作状態 = [ 沸騰|保温 ]  水温=整数、単位:℃  水位=整数 下限:0 上限:4 単位:なし  水量=整数 下限:0 上限:4 単位:なし  満水= * 満水状態を表す *
 水なし= * 水なし状態を表す *
 ロック状態= [ ロック|ロック解除]  タイマ残り時間 =整数、単位:分、下限:0  温度異常=[ 高温異常|温度上がらず異常]  水位異常= * 水位の異常を表す *
 ヒータ動作指令= [ ヒータオン|ヒータオフ ]  ヒータオン= * ヒータをオンする制御 *
 ヒータオフ= * ヒータをオフする制御 *
 ポンプ動作指令= [ ポンプ作動|ポンプ停止 ]  ポンプ作動= * ポンプを動作開始する制御 *
 ポンプ停止= * ポンプを停止する制御 *
 給湯の状態 =[給湯中|停止中]  ふた開閉状態=[ふた開|ふた閉] ■温度制御に関係するデータ  目標温度設定= [ 高温|節約|ミルク]  目標保温温度= [ 98 | 90 | 60 ]、単位:℃  温度制御方式= [ PID 制御方式|温度制御テーブル方式|目標温度ON/OFF 制御方式]  加熱量= 整数 下限:0 上限:100、 単位:%  加熱時間=整数 下限:0、 単位:分  加熱停止= * 加熱を停止させる *
 保温モード= [ 高温モード|節約モード|ミルクモード]  高温モード= * 熱いコーヒーを飲むための保温モード *
 節約モード= * 消費電力を節約するための保温モード *
 ミルクモード= * 乳児の粉ミルク調乳用として使うためのモード *
■内部の制御データ  沸点到達= * 水温が100℃到達を通知する *
 カルキ抜き完了= * カルキ抜きの完了を通知する *
 エラー検知= * エラー発生を通知する *

72ページの図4.15と同様に、「“ ”」を、a=[ x | y | z ]のような形式の場合、削除します。それ以外の場合、「* *」に変更します。
2012.10.18
1刷 129
3行目
11刷
構造図(SC:Structur Chart)
構造図(SC:Structure Chart)
2019.05.23
1刷 136
図6.9 左側
保存モードを設定する
保温モードを設定する
2022.04.25
1刷 137
図6.10 左側
保温モード設定 保存モードを設定する
目標温度設定 保温モードを設定する
2022.04.25
1刷 138
図6.11
9刷
訂正前
2015.07.13
1刷 150
図7.6
3刷
retaining
retaining( )
2007.10.11
1刷 157
図7.12 1行目
11刷
void Temp_control(twaterTemp(tHeatCtl iHeatCtl)
void Temp_control(twaterTemp iHeatCtl)

「正」の内容を以下のように再修正します。
void Temp_control(twaterTemp iHeatCtl)
 ↓
void Temp_control(tHeatCtl iHeatCtl)
2018.09.26
1刷 157
図7.12 1行目
void Temp_control(twaterTemp iHeatCtl)
void Temp_control(tHeatCtl iHeatCtl)
2022.04.25
1刷 166
4行目
11刷
同時に完備いう視点を
同時に完備という視点を
2018.07.12
1刷 166
7~8行目、10~11行目(2か所)
11刷
クローンニング
クローニング
2018.07.12
1刷 179
「832 なんでも屋」2行目
8刷
ファイン数が多くなっています。
ファイン数が多くなっています。
2013.12.25
1刷 184
表8.1の最下行
11刷
7. バランスのとれたシステム形状であること
7. バランスのとれたシステム形状であること
2019.05.23
1刷 208
掲載章 最終行
3刷
格言20、格言21、格言22  第9章レビュー
格言20、格言21、格言22、格言23、格言24  第9章レビュー
2007.10.11
1刷 210
用語辞書
3刷
構造図( Structur Chart:SC )
構造図( Structure Chart:SC )
2007.10.11

感想・レビュー

MATSUDA, Shougo さん

2020-11-18

古本屋で購入。組み込みソフトウェア開発にあたってのモデリングからレビューまでをしっかり解説してくれています。

たいそ さん

2019-08-18

2006年。ついつい「モジュールの仕様はソースコードを見てください」に流れがちなので「設計と実装を同期させよう」を心掛けたい。NTCR条件、請願されないイベント、7±2の理論、最大抽象点、凝集度(コヒージョン)、結合度(カップリング)、ファンイン/アウトという用語を知ることができた。モデリングツールである「イベントリスト」「DFD」「構造図」を実践で使えるようにしたい。「設計とはシステムとして何を提供するのかであって、どのように動かすかではない。」

Kazuyuki Koishikawa さん

2016-01-17

セサミってこれか