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

クミコミソフトウェアカイハツノタメノコウゾウカプログラミング

組込みソフトウェア開発のための構造化プログラミングの表紙
プログラミング
著者:
SESSAME WG2(セサミワーキンググループツー)
出版社:
翔泳社
出版日:
2016年09月05日頃
ISBN:
9784798147611
シリーズ:
組込みエンジニア教科書
在庫:
在庫あり
0
初級者向け
組込みシステム構造化プログラミングC 言語自動走行ロボットレゴマインドストームリアルタイム制御設計図とプログラミングの統合学習レゴマインドストームによる実装汎用的なプログラミングスキル初心者向けプログラミング教育

なぜ注目されているか

言及数
522位
総合794位 ↓ 1 ランクダウン 言及 5 件
01220222023202420252026

書籍紹介

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

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

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

【本書の特徴】

・プログラミングと設計の基本を同時に学べる
・親しみやすく汎用的な例題

・業界 / 時代を問わず役に立つ知識が得られる

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. 配列とポインタの文法

技書の森解説

『組込みソフトウェア開発のための構造化プログラミング』 (SESSAME WG2 著、翔泳社、2016 年 9 月刊) は、翔泳社の「組込みエンジニア教科書」シリーズの一冊で、組込みシステム開発の下流工程に注目して構造化設計を学ぶ本です。国立国会図書館の書誌では、著者の団体を組込みソフトウェア管理者技術者育成研究会と記録しています。題材は、レゴ マインドストームで組み立てた自動走行ロボットです。2 つのタイヤで倒立してバランスを保ち、床に描かれたラインをセンサーでたどって走る制御のソースコードと設計図を見比べながら、プログラミングと設計を同時に身に付けることを目指しています。

全 8 章と付録 4 本、良いソースコードの条件から設計中心開発まで

目次は 8 つの章と 4 本の付録で構成されています。第 1 章「良いソースコードとは」で出発点を定め、第 2 章「良いコードを見る」と第 3 章「良い設計図を見る」で手本を読み、第 4 章「ソフトウェア設計の基本」を挟んで、第 5 章「コードと設計図を同期させる」でコードと図の対応づけへ進みます。後半は第 6 章「7 つの設計指針」、第 7 章「設計品質の指標」と続き、最後の第 8 章「設計中心開発」で開発の進め方へ広げます。付録は、Appendix A「ソフトウェア疲労 (良くない例)」、Appendix B「ソフトウェア設計の定石」、Appendix C「構造化モデリングの実施例」、Appendix D「配列とポインタの文法」の 4 本です。版元は本書の特徴として、プログラミングと設計の基本を同時に学べること、親しみやすく汎用的な例題、業界や時代を問わず役に立つ知識の 3 点を挙げています。

組込みの制約と構造化設計が噛み合う背景

組込みソフトウェアは、使えるメモリや処理能力が限られたうえに、止まらないことや決められた時間内に応答することを求められます。版元の紹介文も、リソースの制限の厳しさと、堅牢性やリアルタイム性といった高い完成度への要求を出発点にしています。こうした現場で広く使われてきた C 言語 は、ハードウェアに近い操作を短く書ける反面、関数の切り分けやデータの受け渡しを書き手の規律に任せる部分が大きく、設計の意図が残っていないと、後から読む人には動作の理由が見えなくなります。構造化設計は、処理を役割ごとのモジュールに分け、その分け方の良し悪しを、モジュールの内側のまとまりを表す 凝集度 や、モジュール同士の依存の強さを表す結合度といった物差しで確かめていく考え方です。設計図とコードが対応していれば、仕様を変えるときにどこを直せばよいかを図の上で先に見積もれるため、機器の制御のように変更の影響を読み違えると動作に響くソフトウェアほど効き目が大きくなります。

設計の入り口に立つ組込みの技術者に向く理由

版元の紹介文は、要件定義や分析、設計といった上流工程の方法論が数多く提唱されてきた一方で、それらがやや難解で初心者には敷居が高かったことを挙げ、本書は下流工程から入る道を選んでいます。手元にある動くコードを入り口にして設計図との対応を学ぶ順序なので、設計書をどう書けば役に立つのかがまだつかめていない段階の人に合う作りです。逆に、モデル駆動開発やオブジェクト指向による分析の方法論を主題として学びたい場合は、目的が異なります。設計を扱う技術書の中で次の段を探したいときは、設計の技術書の選び方 が見通しを付ける助けになります。

自分の書いた制御コードを他の人に引き継ぐ場面が見えている人、あるいはコードは動くのに設計の説明を求められると手が止まる組込みの技術者にとって、1 台のロボットのコードと設計図を対応させながら読み進める本書は、設計を自分の言葉で語れるようになるための確かな足場になります。

言及した記事 (5 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: