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

組込みソフトウェア開発のための構造化プログラミング


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

組込みソフトウェアは開発は、リソースの制限が厳しい上に、堅牢性、リアルタイム性など、より高い完成度が要求されます。これらを克服するために、要件定義、分析、設計などの上流工程、およびプログラミングの方法論が数多く提唱されてきました。しかし、こららはやや難解で初心者には敷居が高いという一面がありました。

本書は、組込みシステム開発の下流工程に注目して構造化設計を学びます。題材は、レゴマインドストームを使って組み立てた自動走行ロボットです。筐体を2つのタイヤで倒立させてバランスを保ち、床面に描かれたラインをセンサーでたどって走行します。この制御をプログラムで行います。一見難しそうですが、実はとてもシンプルなプログラムで実現しています。このソースコードと設計図を見比べていくことで、プログラミングと設計を同時に習得することを目指します。

本書で学ぶ構造化設計とC言語によるプログラミンは、普遍的かつ汎用的なので、業界や時代を問わず活用することができます。

【本書の特徴】

・プログラミングと設計の基本を同時に学べる
・親しみやすく汎用的な例題
・業界/時代を問わず役に立つ知識が得られる
画像01
Chapter 1. 良いソースコードとは
Chapter 2. 良いコードを見る
Chapter 3. 良い設計図を見る
Chapter 4. ソフトウェア設計の基本
Chapter 5. コードと設計図を同期させる
Chapter 6. 7つの設計指針
Chapter 7. 設計品質の指標
Chapter 8. 設計中心開発
Appendix A. ソフトウェア疲労(良くない例)
Appendix B. ソフトウェア設計の定石
Appendix C. 構造化モデリングの実施例
Appendix D. 配列とポインタの文法
本書は付属データの提供はございません。

お問い合わせ

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

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

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

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

追加情報はありません。

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

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

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

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

書籍の種類:

書籍の刷数:

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

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

最終更新日:2024年03月18日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 023
図2.3囲み内「進行方向」
2刷
走行方向
左右方向
2016.11.24
1刷 026
コード例2のextern関数宣言
2刷
unsigned int ss_getLightValue(void);
extern unsigned int ss_getLightValue(void);
2016.11.24
1刷 032
コード例6
2刷
コード例6にある「extern void tr_runnable(void);」を削除
2016.09.28
1刷 059
図3.3「cs_detectDifference関数」から下に向かう矢印の左側
2刷
roadcolor_t
roadColor_t

「c」を大文字にします。
61ページの図3.4内も同様に修正します。
2021.07.02
1刷 071
コラム1行目
2刷
SESSAME WG2のメンバ
設計学の研究メンバー
2016.09.28
1刷 082
4つ目の網掛け部分
2刷
0[お店番号]2
0{お店番号}2

カッコの種類を変更します。
2021.07.02
1刷 084
図4.6の下の説明、図4.7の③と④
2刷
図4.6の下の説明 ④実装ファイルで、内部で使う変数をstatic宣言する 図4.7③ 外部へ公開するものはヘッダファイルに 図4.7④ static宣言により、データをカプセル化
図4.6の下の説明 ④実装ファイルで、内部で使う関数と変数をstatic宣言する 図4.7③ 外部へ公開する関数はヘッダファイルに 図4.7④ static宣言により、データをカプセル化、内部関数を隠蔽
2021.07.02
1刷 085
「4.5.2 クラス図」2~5行目、10~11行目、下から1~3行目
2刷
2~5行目 クラスは四角形を三段に分けて、上部にクラス名、中央部に属性、下部にメソッドを表記します。C言語の場合は、上部にファイル名、中央部に変数、下部に関数をそれぞれ記入すれば、クラスと同じ形式になります。 10~11行目 通常、変数は非公開、関数の一部が公開することになります。 下から1~3行目 クラス間の関係は、ヘッダファイルのインクルード関係を調べることで記 載できます。すなわち、自ヘッダ以外のヘッダファイルをインクルードして いる場合は、そのクラスへ破線の依存線を記載します。
2~5行目 クラスの表記では、四角形を三段に分けて、上部にクラス名、中央部に属性、下部にメソッドを記入します。同様に、C言語によるソフトウェア部品の表記では、上部にファイル名、中央部に変数、下部に関数を記入します。 なお、モジュールの種類を示したい場合には、ファイル名の上部にステレオタイプを記述します。ステレオタイプは、機能とは異なる切り口でモジュールの特徴や位置づけを示すのに使われます。 10~11行目 通常、変数を非公開とし、関数の一部を公開します。 下から1~3行目 86ページの冒頭に移動します。
2021.07.02
1刷 086
「4.5.3 コミュニケーション図」最終行
2刷
ます。
ます。コミュニケーション図は、図4.10の左側(静的構造)の図です。
2021.07.02
1刷 087
最終行
2刷
ていることが多いようです。
ていることが多いようです。コンポーネント構造図は、図4.14のように、コンポーネントをポート(小さい四角形)でつないだ図となります。
2021.07.02
1刷 089
本文2行目
2刷
資料インタフェース
要求インタフェース
2016.11.24
1刷 106
表5.1の下の文章2~3行目
2刷
「買物中」に、「買物完了」を受け取ることで、次状態が「ドライブ中」になり、アクションとして「走行指示」を出す。
上記の決定表とは別に、BOSSモジュールでは、「買物中」に「買物完了」を受け取った場合、次状態を「ドライブ中」とし、アクションとして「走行指示」を出す処理を行う。
2016.11.24
1刷 111
図5.11
2刷

(画像クリックで拡大)

(画像クリックで拡大)
2021.07.02
1刷 127
「コラム」下から4行目
2刷
類似語時点
類似語辞典
2017.03.07
1刷 145
ページ下部
2刷
以下の「コラム」を追加します。
TBD箇所こそ包括的サマリーを作れ 114ページのコード例8で、「TBDコメントで処理の構想を描いたDrivingRobot.cの骨格」の例を紹介しました。この例の中のTBDの箇所は、すべて「停止を指示する」「買い物を開始する」「買い物が終了したかを問い合わせる」「動作を完了する」のように、「~を~する」形式で、そこに何を入れたいかの包括的サマリーを作ってあります。これが大事です。具体的に決まっていないTBD箇所こそ、そこに何を入れたいかを決めて、それをひとことで表す包括的サマリーを作っておくことが重要なのです(4ページのコラム「コメントも包括的サマリーで」、71ページのコラム「機能の表現方法をうまく使い分けよう」も参照ください)。
2021.07.02
1刷 146
本文1行目
2刷
ここでまた、フォルダを
ここまでで、DrivingRobotとTraceの新たなフォルダ位置が決まりました。これを元に、フォルダを
2021.07.02
1刷 147
ページ全体
2刷
p147_変更前
p147_変更後

2021年7月2日に更新しました。
2016.11.24
1刷 148
「図5.15」図、本文1行目、図5.16
2刷
図5.15の図
(画像クリックで拡大) 本文1行目 続いて、買物処理部もDrivingRobotから切り離します。 図5.16
(画像クリックで拡大)
図5.15の図
(画像クリックで拡大) 本文1行目 また、買物処理部もDrivingRobotからは切り離しています。 図5.16
(画像クリックで拡大)
2021.07.02
1刷 154
図6.3
2刷

(画像クリックで拡大)

(画像クリックで拡大)
2021.07.02
1刷 155
図6.4「良い実装」
2刷
・入口1つ出口2つ
・入口1つ出口1つ
2021.07.02
1刷 159
図6.7
2刷

(画像クリックで拡大)

(画像クリックで拡大)
2016.11.24
1刷 174
図6.21
2刷

(画像クリックで拡大)

(画像クリックで拡大)
2021.07.02
1刷 178
本文6行目、下から1~3行目
2刷
6行目 作ることも有効です。 下から1~3行目 オープンが1箇所なのに、クローズが3箇所あるような実装はNGです。オープンがここにあるから、クローズはここにあるはずだ、という推測ができるような設計が理想です。
6行目 作ることも有効です(図6.27)。 下から1~3行目 初期化が1箇所なのに、終了が2箇所あるような実装はNGです(図6.28)。初期化がここにあるから、終了はここにあるはずだ、というように、対となる相手の場所を推測できる設計が理想です。
2021.07.02
1刷 186
図7.2③
2刷
2021.07.02
1刷 194
「(3)バンドリング結合」3行目
2刷
テータ群
データ群
2016.11.24
1刷 197
図7.8
2刷
③ハンドリング
③バンドリング
2016.11.24
1刷 203
図7-10
3刷

(画像クリックで拡大)

(画像クリックで拡大)
2024.03.18
1刷 203
図7-10のキャプションの最終行
3刷
●機能は、静的構造からも動的構造からも確認
※削除
2024.03.18
1刷 215
表A.1「2」の「現象」2行目
2刷
最も便利かな開発ツール
最も便利な開発ツール
2016.11.24
1刷 227
下から1行目
2刷
shopping_list[3]にゼロが代入されてしまうかもしれません。
shopping_list[3]にゼロが代入されてしまいます。
2016.09.28
1刷 250
【た行】の「動的構造」
2刷
並行動作する設計要素。 タスクや割込みなどの実行の単位。
タスクや割込みなどの実行の単位(処理単位)の時間的前後関係や並行動作の構造。
2021.07.02
1刷 252
『システムの科学』の説明文2行目
2刷
14ページのコラム
17ページのコラム
2016.09.28
1刷 253
下から4行目
3刷
ソフトウェア工学関連の用語集。自己説明性、クリティカルピースファーストなど、日常のソフトウェア開発における会話で役立つ表現が多数掲載されている。
ソフトウェア工学関連の用語集。自己説明性、クリティカルピースファーストなど、日常のソフトウェア開発における会話で役立つ表現が多数掲載されている。現在は後継のISO/IEC/IEEE 24765:2017に引き継がれ、Publicly Available Standardsとして無料でダウンロードできる。 https://standards.iso.org/ittf/PubliclyAvailableStandards/

※「IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology」についての追記
2024.03.18

感想・レビュー

ひろゆき さん

2017-08-04

☆☆☆・・ 組み込み系プログラミングに携わっている方は一度読む価値はある。 具体例が少々多過ぎる気がするが、考え方は共感できる。