組込みシステムの入門書でおすすめ「組込みシステム開発入門」ETSSをベースに解説した本

よくわかる組込みシステム開発入門表紙

こんにちは、組み込みエンジニア歴20年のHARUYAです。

組込みシステムのエンジンになったばかりの人

あるいは、

これから組込みシステムエンジニアになりたいな

と思っている方は、こちらの本も必読書です。

「よくわかる組込みシステム開発入門 要素技術から開発プロセスまで」

本書は、組込みシステムに特化したスキルを確認する試験である

組込みスキル標準ETSS(情報処理推進機構 IPA が制定)のレベル1、レベル2の内容をカバーした内容になっています。

レベル1は初心者レベル。

レベル2は、担当業務に限って独り立ちしつつある中堅レベル。

スポンサーリンク

書籍「よくわかる組込みシステム開発入門」は広く浅く組み込みソフト開発に必要な用語を勉強できる

本書の前書きには、

ある程度C言語ができないと厳しいかもしれません

って書いてあります。

が、とはいっても、

組み込みシステムのエンジニアになろうとしたら、C言語は、絶対、絶対必要です。

なので、C言語を習得してから、組み込みエンジニアになるための勉強をしよう

とか、悠長なことをいわず、C言語はすぐに覚える。

そして、本書のような組み込みシステムの専門書を読んで勉強していくことが大事でしょう。

本書は、組込みスキル標準の記述に沿った内容意識されていて、

広く浅くの用語解説が多いです。

この広く浅くって、意外と大事です。

細かく正確に用語の意味が分からなくても、

「なんとなくこんな用語が出てきたなあ」

っていうことだけでも、頭にインプットしておくことで、

自分がいざ、その知識や技術が必要となったときに、拒否反応が出にくくなるからです。

では本書から、

「ここは勉強になる!」

という箇所をピックアップしておきます。

書籍「よくわかる組込みシステム開発入門」から、ポイントをピックアップ

本書の前半は、

市販で販売されているArduino unoを使用しながら

組み込みシステムの基礎を勉強するという内容が書いてあります。

もちろん、実際にArduino unoを購入して、

PCに開発環境をインストールして実動作を試してみる

というのをやった方がいいとは思います。

でも、そこまで環境を準備すると、なかなか次に進まないっていう話も分かります。

なので、実際のボード購入は後回しとして、本書をどんどん進み進めるというのもありだと思います。

私は本書を全て読みましたが、結局Arduino unoは買ってません。

学生さんや、これからエンジニアとして就職しようと思っている方は、買ってみて実際に動かすと非常に勉強になると思います。

一方、すでに組み込みエンジニアとして仕事していれば、

嫌でも毎日開発品の基板を触りながら業務をしているはず。

だから、まあ、自宅で改めてボードを買うまでもないかなって感じ。好きならいいけど、もう業務だけでお腹いっぱいって感じ。

中盤は組み込みシステムで出てくる用語がたくさん

本書「よくわかる組込みシステム開発入門」の中盤に入ってくると、

組込みシステムで実際にどんな知識が必要か?

という内容に入ってきます。

例えば、マイコンの基礎知識。

46ページには、電源が入ってからマイコンが動作開始するまでのスタートアップルーチンの動きについての解説があったり。

そして、ひとつひとつマイコンの周辺機能について、結構やさしく説明が書いてあります。

SPI、I2Cとか、代表的な通信や、割り込み処理の仕組みとか。

本書を読んで、細い中身は分からなくても、

「この機能はこういう動きをするんだ」

というざっくりとした知識を放り込むのに役に立ちます。

組み込み系のプログラミングの注意事項

第7章に入ると、組込みプログラミングでの注意事項が書いてあります。

ここは結構、経験者にとっても復習として意味があります。

例えば95ページ。

alignment(アラインメント)の話。

プログラムやデータが格納されるアドレスはワード単位で配置される。

通常は、コンパイラ、リンカが自動的に配置、アライメントするという話。

例えば32 bit CPU の場合、メモリは4バイトごとにアドレスが配置される。

コンパイラがワード単位でアクセスできるように無駄な領域をわざと追加するパディング。

てな話。

組込みシステムエンジニア入門者としては、そこまで意識が回らないかもしないし、

普通はそこまで意識する必要はないでしょう。

でも、何か原因不明のバグ動作で、プログラムの動きがおかしい

と言った時に、

意外と、

「予期せぬ動きでメモリを上書きしていた」

「メモリを食っていた」

というのが原因となることもあります。

そのため、コンパイル後のメモリ配置についても理解しておいた方がよいので、

本書の7章の知識は役に立ちます。

8章は、通信、ネットワーク技術。

この辺は、情報処理技術者試験、基本情報処理や応用情報の試験でも出てくるような用語が出てきます。

例えば OSI 参照モデルの第7層から第1層。

OSI 参照モデルの丸暗記の仕方については、こちらの記事に書いておきました↓

OSI基本参照モデルの覚え方!階層と装置を情報処理技術者試験試験対策向けに無理やり

私も勉強したのでその時の記録を書いておきますこちらの記事です

組み込みソフト開発って、業務用とか Web 系のソフトウェアとは比べ物にならないほど難しい

と言ったことも9章に書いてあります。

130ページあたりですね。

ソフトだけやってりゃいいってわけでなく、ハードウェアの動きも理解しないと。

また、9章にはソフトウェアのテストについても書いてあります。

例えば135ページ。

ソフトウェアの結合テストでは、ただ単に正しく仕様通りに動けばいいというわけではなく、

性能面やメモリ使用量が想定範囲内に収まっているかという確認も必要。

ここ重要ですね。

PC上で動くソフトであれば、

使用するメモリの大きさをそんなに気にする必要ないし、

少々アプリケーションのスピードが遅くても許されます。

一方、組み込みシステムはそういうわけにはいきません。

資源に制限があるし、実行するまでの時間にも制約があります。

スポンサーリンク

組み込みソフトの設計で必ず必要な状態遷移や、テストの話も

それから10章。

ここでは、システムの設計をする上で必要になってくる状態遷移図、状態遷移表、シーケンス図についての説明が書いてあります。

この3つの説明図を見られるだけでも、本書を手に取る価値は十分にあるくらい、

分かりやすく状態遷移の設計について簡潔に書いてあります。

141ページから143ページ

よくわかる組込みシステム開発入門1

よくわかる組込みシステム開発入門2

あと重要な箇所として、テストをする時に非常に重要となってくる境界値分析。

全ての条件をテストするってのはもちろん無理な話。

ではどういうポイントでやるのか?

バグを出す経験としてよくあるのが、入力データの境界値のところ。

境界値の判定を1つ分間違っているだけで、仕様とは違う動き方をして、

大きな欠陥となる可能性があります。

境界値のテストの考え方の2つは実務に直結の話。

よくわかる組込みシステム開発入門3

スポンサーリンク

まとめ

本書「よくわかる組込みシステム開発入門」の最後に、技術というより、組み込みエンジニアとしての意識の持ち方が書いてありました。

大規模なシステムであっても、それは一つの小さなサブシステムが組み合わさったもので成り立っている。

自分は、システムのほんの小さな部分を担当していたとしても、

担当するその小さなモジュールを品質の良いものに開発することを忘れてはいけない。

てなことが書いてあります。

本書を書かれた編集委員会の方々は、実際に企業で活躍されています。なので、

本書は、机上のお勉強ではなく、実践に役立つ内容がつまっていました。

--------------
ソフトができて、ハードもそこそこ分かるっていう人になれば、

仕事の幅が広がります。言い方を変えると、今の職場環境を変えたいなと思っても、

比較的転職しやすくなります。

では、組み込み系、電子、電気系のエンジニアの求人は、具体的にどんな人材が求められているのか?

そこから情報収集するなら、製造業に特化したエンジニア向けのメイテックネクストが情報が豊富で助かります。

カンタンに無料会員登録できるので、登録しない理由なしです↓

スポンサーリンク



スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする