IoTの普及やモビリティの進化といった時代の潮流とともに、組込みエンジニアの需要が高まっています。ものづくりの領域において、将来性のある職種でのキャリア構築を目指す方には、組込みエンジニアはお勧めの職種だといえます。ただ、組込みエンジニアの業務領域については一般的な認知度が低く、仕事内容や求められるスキルなどについてご存じない方もいるのではないでしょうか。この記事では、組込みエンジニアの具体的な仕事内容や必要なスキル、役立つ資格などについて解説します。
組込みエンジニアは、電子機器や家電を設計どおりに動かすためのエンジニア
組込みエンジニアは、電子機器や家電、自動車などに搭載されるハードウェア・ソフトウェアを設計・開発するエンジニアです。自動車や家電、デジタル複合機をはじめとしたオフィス機器、医療機器、産業機器などの独立型のハードウェアは、必要な動作を単体で行うことが不可能です。例えば、多くの家庭に普及したロボット掃除機は、正面についたバンパーの中にある接触センサーや本体裏側のセンサーが障害物を感知し、方向を変えたり、階段からの落下を未然に防いだり します。こうした動作を可能にしているのが、機器の中に埋め込まれたコンピューター(マイコン)です。組込みエンジニアは、このマイコンを制御するシステムを設計・開発します。また、案件によってはハードウェアの設計を担うこともあります。
組込みエンジニアが活躍する領域
組込みエンジニアが活躍する領域は、プログラムを組み込んで動作させるハードウェアのすべてです。最近では、IoTの普及に伴ってインターネット接続が可能になった家電業界や自動車業界のほか、人手不足の解消・へき地医療の充実に向けて遠隔診療の充実が進む医療機器業界などの領域で多くの需要があります。
家電業界
家電業界では、先ほど挙げたロボット掃除機をはじめ、スマートフォンを使って外出先から家電の電源をオン・オフできる機能、音声だけで家電の操作が可能なスマートスピーカーの制御などが代表的です。
自動車業界
自動車業界では、現在開発されている自動車に、ECU(Electronic Control Unit)と呼ばれる電子制御コンピューターがいくつも搭載され、車間距離を一定に保ったり、障害物を感知して自動ブレーキをかけたりといった制御を可能にしています。近年、注目度の高い自動運転技術においても、組込みエンジニアが開発したECUが重要な役割を果たしています。
医療機器業界
医療機器業界では、コロナ禍で一気に普及した遠隔診療技術において、へき地や過疎地など医療の手が届きにくい場所の対面診療を補完する役割としても期待されています。医師の働き方改革に先立ち、人的リソースの負担を軽減するためにも欠かせない技術だといえます。離れた場所からでもインターネット経由で、脈拍や心拍などのデータを取得できる医療機器の開発には、組込みエンジニアの力が欠かせません。なお、つけているだけで健康状態のデータが取れるウェアラブルデバイスにも、組込みエンジニアが関わったシステムが使われています。
組込みエンジニアの仕事内容
ここからは、組込みエンジニアの具体的な仕事内容について見ていきます。「製品の企画」「システム設計」「ハードウェア・ソフトウェアの設計」は上流工程にあたり、知識と経験が問われるプロセスのため、主に経験豊富な組込みエンジニアが担います。一方、「実装(プログラミング)」「テスト」「運用・保守」は下流工程で、基本的なスキルを身につけながら仕事の全体像を理解するのに適しているため、組込みエンジニアとして仕事をスタートした段階で任されることが多いです。それぞれのプロセスでどのような仕事をするのか、順を追って詳しく解説していきます。
1. 製品の企画
製品の企画では、家電や産業機器などに組み込まれ、特定の機能を実現するためのコンピューターシステムである組込みシステムを利用する製品について、目的に沿って開発要件を明確にします。依頼主の要望をヒアリングするとともに、専門的な観点から必要なアドバイスを行い、設計書やプログラム仕様書などのドキュメントに落とし込んでいきます。開発要件に必要とされる主な情報は以下のとおりです。
開発要件に必要な主な情報
- システムの目的
- 必要な機能
- 搭載した方が良い機能
- 開発スケジュール
- 開発の要素技術
- プロジェクトに必要な人員
なお、組込みシステムは、リリース後の機能追加が難しいことが多いため、要件定義には時間をかけて検討することが大切です。
2. システムの設計
続いて、システムの動かし方を具体的に設計します。例えば、使用したい機能が「障害物を避ける」なら、どのような動作で避けるか、その動作を行うためにはどのようにシステムを組めば良いかといったことを検討するフェーズです。システムの表に出る動きをつかさどる重要なプロセスのため、クライアントの理想にできるだけ沿えるよう、話し合いを重ねながら設計を進めていきます。
3. ハードウェア・ソフトウェアの設計
次に、ハードウェア・ソフトウェアそれぞれの設計をします。ポイントは、ハードウェアの設計で決められた仕様に沿ってソフトウェアを設計していくことです。ハードウェアで行える機能を超えたプログラムを書くと、ハードウェアに合わせてプログラムをやり直す可能性が高く、エンジニアの負担が増してしまいます。そのため、まずは、ハードウェアのスペックやメモリ容量などを基に、必要な部品や回路を選定して回路図や基板の設計を行います。ソフトウェアは、システム設計で具体化した仕様に沿ってシステムやアプリケーションの要件を定義し、アルゴリズムと制御システムを設計することが重要です。基本設計が済んだら、実際にシステムの実装をするエンジニアとプログラマーがプログラミングできるよう、システムの内部構造などを細かく決める詳細設計を行います。
4. 実装(プログラミング)
プログラミング言語を用いて、機器に内蔵される電子部品のマイコンや、外部メモリに組み込まれるソフトウェアの実装を進めます。開発するシステムに応じて、比較的簡単なハードウェアの制御から難度の高い処理まで、幅広いレベルのプログラミング技術が求められます。開発言語は企業や製品によってさまざまですが、よく使われるC言語やアセンブリ言語、C++のほか、Java、Python、MicroPythonの知識もあると安心です。
5. テスト
実装したソフトウェアが想定どおりに稼働することを確認するため、テストを行います。設計やプログラミングで何らかの問題が生じている場合、その箇所と原因を特定するためにもテストは重要です。組込みエンジニアが行うテストには、単体テストや結合テスト、システムテスト、受け入れテストなどがあります。
単体テスト
単体テストは、システムを構成する最小単位のコンポーネントやモジュールの動作を確認するテストです。システムを動作させる工程での不具合などを洗い出す目的で行います。
結合テスト
結合テストは、単体テストを終えたコンポーネントやモジュールが連携したとき、正常に動作することを確認するテストです。基本設計どおりの挙動が行えているかを確認します。
システムテスト
システムテストは、ソフトウェアやハードウェアを含め、システム全体が設計どおりに正しく動作することを確認するテストです。耐久性や安全性が確保されているかどうかも重要なチェック項目です。
受け入れテスト
受け入れテストは、実際の使用環境において動作を検証するテストです。テスト結果に問題がある場合、速やかに修正して再度テストを行います。
6. 運用・保守
運用・保守は、製品が安全かつトラブルなく動くように管理するフェーズです。不具合が発生した報告があった場合の対応やリリース後にバグが見つかった場合の修正、メンテナンス、バーションアップ、ファームウェアのアップデートなども行います。ほかの職種からのキャリアチェンジなどで組込みエンジニアになった場合、最初は運用・保守から仕事を覚えていくのが一般的です。
組込みエンジニアに求められるスキル
組込みエンジニアとして活躍するには、どのようなスキルがあると良いのでしょうか。ここからは、組込みエンジニアに求められるスキルを紹介します。
プログラミングスキル
プログラミングスキルは、組込みエンジニアには必須のスキルです。開発現場でよく使われるプログラミング言語のC言語やC++、アセンブリ言語の知識は身につけておく必要 があります。すべての言語に精通する必要はありませんが、JavaやPython、MicroPythonについてもひととおり理解しておくと即戦力として活躍できる範囲が広がります。
C言語
特に汎用性が高いC言語は、UNIX・Linux系システムで活用され、コストを抑えた開発に向いていることもあり、多くの開発現場で使われています。難度は高めですが、覚えておけば対応できることが増えます。
C++
C++は、C言語の上位互換ともいえる言語で、オブジェクト指向をはじめとした多様な機能が付与されています。複雑ではありますが、高度な処理も行える言語であり、組込みエンジニアとしては習得しておきたい言語の一つです。
アセンブリ言語
アセンブリ言語は、低級言語とも呼ばれCPUを動かすための機械語に近い言語です。アセンブリ言語を習得すると、CPUやメモリの知識、バグなどを発見する力が身につき、組込みエンジニアとしてレベルアップが期待できます。
ハードウェアに関するスキル
独立型のハードウェアを動作させるためのコンピューターを開発する組込みエンジニアは、ハードウェアに関するスキルも求められます。そのため、回路図面から仕様を理解できるレベルを目安として、一定の知識を身につけておくことが必要です。上流工程から関わる場合、クライアントの製品の特徴を理解して要件定義する必要があるため、需要が高い電子機器や家電、医療機器、産業用ロボットなどについては、ひととおりの特徴を理解しておきたいところです。なお、下流工程から関わる場合にも、要件の内容からクライアントの要望をくみ取れる程度の知識は必要になります。
電子回路や電子基板に関するスキル
ハードウェアを構成している電気回路や電子基板に関するスキルは、組込みエンジニアの業務領域を広げるのに役立ちます。本来は電子回路設計エンジニアが担当する領域ですが、プロジェクトのリソース状況によっては組込みエンジニアが担当することも珍しくありません。周辺機能である電気や電圧、制御に関する工学的な知識があるとより活躍できる範囲が広がります。
コミュニケーションスキル
組込みエンジニアは、1つの開発についてほかの職種の方とプロジェクトを組み、チームで仕事を進めていくことが一般的です。メンバーと状況についてすり合わせ、チーム全体の動きを踏まえて自分の作業を進めていく上で、コミュニケーションスキルは欠かせません。1人で黙々と作業をするのが好きな方も、作業をするタイミングと対話をするタイミングを見極め、円滑な関係を築いていく努力が必要です。また、開発プロジェクトにおけるコミュニケーションスキルとは、ただ楽しくおしゃべりをしたり、場を盛り上げたりする能力を指すのではありません。トラブルが起きた場合や、メンバーに確認したいことがある場合などに、状況をわかりやすく言語化して正しく伝えられる力が求められます。
英語力
意外と見落とされがちですが、組込みエンジニアとしてキャリアアップしたい方は英語力も磨いておくことをお勧めします。情報通信技術に関する最新情報は、英語のドキュメントで海外から発信されることが多く、知識をアップデートするために英語力があると便利です。翻訳を待たずにドキュメントを読むことができれば、最先端の知識を社内でいち早く業務に生かし、評価につなげることも可能です。さらに、ITシステムを構築する際に使用する部品の多くは海外製で、英語の技術書や仕様書を読み解くシーンも少なくありません。ITシステムにまつわる単語やよく使われるフレーズなどは、最低限覚えておくようにすると安心です。
組込みエンジニアとして活躍するために役立つ資格
組込みエンジニアになるために必須の資格はありません。しかし、ここまで解説したとおり、組込みエンジニアは非常に専門性が高い職種です。求められるスキルも幅広く、かつ高度であるため、客観的な技術力の証明になる資格を取得しておくと、転職やキャリアアップの際に評価されやすくなります。ここでは、組込みエンジニアとして活躍する上で役立つ資格を、3つご紹介します。
ETEC
ETEC(Embedded Technology Engineer Certification)は、一般社団法人組込みシステム技術協会(JASA)が主催する組込み技術者試験制度です。試験には、エントリーレベルの組込みエンジニア向けの「組込みソフトウェア技術者試験クラス2」と、ミドルレベル向けの「組込みソフトウェア技術者試験クラス1」があります。
組込みソフトウェア技術者試験クラス2
組込みソフトウェア技術者試験クラス2は、組込みソフトウェア開発に関する基礎知識と、上級者の支援の下でプログラミング作業を行うために必要な知識のレベルを確認することが目的です。合否判定はなく、800点満点のスコアで、結果によってグレードA、B、Cのレベルで評価されます。
組込みソフトウェア技術者試験クラス1
組込みソフトウェア技術者試験クラス1は、組込みソフトウェア技術者試験クラス2を受験し、500点以上のスコアを取得した方のみが受験対象の試験です。中級技術者に必須となる「要求、設計工程、およびテスト工程における知識から分析能力までの総合力」「現場リーダをする上で不可欠な、実装、QCD等の知識・能力」「実装の実務能力」といった3つのスキルが問われます。クラス2と同じように合否判定はなく、正答率から理解度、活用・運用能力を判断し、一定以上の能力があると判断された場合に、グレードA、B、Cの評価が受けられます。
エンベデッドシステムスペシャリスト試験
エンベデッドシステムスペシャリスト試験は情報処理技術者試験の一つで、高度情報処理技術者試験に位置づけられるハイレベルな国家試験です。「ハードウェアとソフトウェアを適切に組み合わせたシステムの企画・開発を推進し、必要な機能・性能・品質・セキュリティなどを確保する、組込み・IoT系のフルスタックエンジニアを目指す方」を想定しています。組込みシステムの開発に必要なハードウェアやソフトウェアの体系的な知識が問われ、 難度は非常に高い試験です。そのため、合格すると市場価値が確実に高まるため、挑戦する価値はあります。
参考:独立行政法人情報処理推進機構 エンベデッドシステムスペシャリスト試験
OCRES
OCRES(OMG-Certified Real-time and Embedded Specialist Program)は、ソフトウェア標準化コンソーシアムである一般社団法人日本OMGが実施するOMG認定組込み技術者資格試験のことです。試験の種類には、初級の「OCRES Fundamental」、中級の「OCRES Intermediate」、上級の「OCRES Advanced」があります。組込みシステムの設計から実装、開発までの一連のプロセスにおいて、高度な技術を持っていることを証明できます。そのため、取得するとキャリアアップに役立てることが可能です。なお、国際基準に準拠しており、世界で活躍したい方にもお勧めです。
組込みエンジニアの将来性
これから組込みエンジニアを目指す方にとって、気になるのは将来性ではないでしょうか。結論からいうと、組込みエンジニアの将来性は高く、今以上に活躍の幅が広がることが見込まれます。IoTの発展により、現代の暮らしに欠かせない家電や通信機器、産業機械の多くには、インターネットにつながるためのコンピューターが内蔵されるようになりました。組込みエンジニアは、こうしたハードウェアを正確に動かすために欠かせない役割を担い、スキルの高い組込みエンジニアであれば引く手あまたです。また、IoTはモビリティをはじめとしたさまざまな領域に拡大しており、今後はますます組込みシステムを必要とする分野が増えると考えられます。
AI(人工知能)技術がさらに発展し、組込みシステムにAI技術を活用するケースが増えれば、新たにAIが組み込まれる機器にも組込みエンジニアの活躍の場が広がります。AIやモビリティなど、新たに組込みシステムが搭載される可能性がある分野を学んでおくことで、より将来性を高めることができるはずです。
組込みエンジニアとしてキャリアアップを目指すならSky株式会社
組込みエンジニアは、AIやIoTの普及とともに、需要が高まることが予想される注目の職種です。ぜひ、今のうちから組込みエンジニアにチャレンジし、技術と知見を深めておくことをお勧めします。Sky株式会社は、創業から長く組込み / 制御システム開発を強みとしている会社です。組込みエンジニアとしてキャリアアップを目指す方は、Sky株式会社への応募をぜひご検討ください。
応募資格やそのほかの条件、応募方法などは、こちらのWebサイトでご紹介していますので、組込みエンジニアとしての転職をお考えの方は、ぜひご覧ください。
【募集職種】組込みソフトウェアエンジニア