ET&IoT2021 講演 - 米国修士課程ベストセラーに学ぶ体系的ソフトウェアエンジニアリングの必要性

この文章は 実践ソフトウェアエンジニアリング第9版アドベントカレンダー の3日目です。 2日目は読書感想文 でした。 今回は ET&IoT2021 という場で本書について講演してきた話を書きます。

ET&IoT とは

ET&IoT とは、主に製造業を中心とした業界関係者向けの展示会です。代表的なコンテンツは、電気や機構の部品、通信や画像処理などの要素技術、技術書、教育サービスといったものです。 そうしたコンテンツを提供する各社が広い会場にブースを設け、来場者が巡る形式です。 展示会と一緒に、技術のカンファレンスも併設されており、そちらで講演しました。 ET とは Embedded Technology, つまり組込み技術を指します。 この展示会と講演では組込みソフトウェアに関するコンテンツが多くあり、本講演もその1つです。

ET&IoTは、晩秋に横浜で、夏に大阪で開催されることが恒例となっています。 COVID-19 のため、2020年は全面オンラインの開催でしたが、2021年は物理的な開催に戻りました。

講演内容

www.slideshare.net

資料には多くのリンクが含まれています。以前の SlideShare ではリンクが有効だったのですが、現在は無効になっていますので、Google Slides でも公開しています。

講演の趣旨は、組込みソフトウェアに携わる人々(業界全体)に対し、ソフトウェアエンジニアリングを体系的に学ぶ必要性を伝えるというものです。 以下の4部分に分かれた構成としています。

  • I. 日本の組込みソフトウェア教育ではソフトウェアエンジニアリング体系が参照されていない疑惑
  • II. 実務/学術、モダン/温故知新のバランスに優れた体系 (本書の紹介)
  • III. 体系は更新される財産
  • IV. 体系の外側 ~いつかきた道ではない新たな道~

この講演は本書の出版を契機にしたものですが、内容紹介以外の方が多くを占めています。 というのも、本書を組込みソフトウェアに携わる方々向けに紹介するにあたり、その動機と価値を伝える方が大事だとみなしたからです。 なので、組込み業界ならではの背景を I で語り、本書の内容紹介を概ね II にまとめ、そもそも体系を参照する価値を III で伝え、 最後に、体系を学ぶだけでなく新しい体系を作り上げてほしいという前向きな話を IV として終わる、という構成にしました。

この資料では、経済産業省, IPA, JEITA, JASA といった公的機関発行の文献、2000年代からの組込み技術書、論文など、100件近い文献を参照しています。 特に I を書く際に多くの文献を参照しました。日本における組込みソフトウェア教育のサーベイ資料としても使えるのではないかと思います。

主に業界歴10年~の方向け、特に技術組織を牽引する層に刺さる内容になったのではないかと思います。 逆に言えば、ジュニアクラスの技術者には別の伝え方の方が良かったかもしれません。

本講演は、本書の監訳者である水野と共訳者である池田の2名で行う予定であり、そこへ私も加わることになりました。 結果的に一番多くを担当することになり、苦労しましたが勉強にもなり、とても満足しています。

核心を突く質問

講演の最中に SliDo で質問を募集しました。その中に本講演の趣旨に対する核心を突く質問がありました。 それは、一般的なソフトウェアエンジニアリングと組込み向けのソフトウェアエンジニアリングに共通要素があるか(少ないのではないか)? というものです。 なぜこれが核心を突いているかというと、講演者3名は、その共通要素が多いからこそ体系を学んでほしいと考えて講演したからです。 共通要素が少ないと想定すると、その前提が崩れます。

講演資料では、一般的なソフトウェアエンジニアリングの知識領域を SE、組込み向けのソフトウェアエンジニアリングの知識領域を EmbSE としたベン図を描き、組込みに応用できる領域と組込みならではの領域を示しました。講演者はこの重なる領域の大きさを広く見ており、質問者は狭く見ているということです。

f:id:masskaneko:20211202222640p:plain
講演資料より

この感覚的な見積もりによって、知識体系から自身の境遇に応用できるものがどれだけあるか、応用できるとして多少の応用で済むのか大幅な応用が必要なのかが判断されます。 仮に同じ課題に対して同じ応用方法に辿り着いた人々がいたとしても、基礎として採用できることを重視する人は「基礎は一緒」と言い、応用が必要なことを重視する人は「うちの製品、うちの業界ならではのことが重要」と言い、意見が分かれる可能性があります。これは組込みに限った話ではありません。

私は、応用可能と構えている方が応用の機会を逃しにくい と考えています。 組込みに関して言えば、業界規格準拠を謳うツールベンダーに高値を掴まされずに済むとも考えています。

もちろん、抽象化された知識を自身の境遇に応用することは重要です。組込みならば以下の要素を考慮する必要があるでしょう。

  • 製品ライフサイクル(1年?20年?)
  • 製品ラインナップ(A社向け、B社向け、ハイエンド、ローエンド…)
  • 製品と部品の価格
  • ユーザーの特徴(一般消費者、医者、建設業者…)
  • 求められる品質特性(セーフティ、ハードリアルタイム、プレイアビリティ…)
  • アップデートの市場需要(日々便利に、1年は変えないで…)
  • アップデートの技術的可能性(オンラインアップデート可否)
  • ハードウェア開発プロセスと組織
  • 試作機の配備容易性(1人1台、30人1台…)
  • 製品の計算機資源
  • GUIの有無
  • 業界標準・慣習(Automotive SPICE, FDA査察…)

それを多少の応用とみなすか、大幅な応用とみなすかは主観が分かれるのでしょう。 私は、7割くらいは多少の応用で済む領域だと構えています。

繰り返しますが、これは組込みに限った話題ではありません。 「うちの製品は、うちの業界は特殊だ」と思わずに、使えるものは使う姿勢が幸を呼ぶでしょう。

続く活動

とまぁ、資料作成に苦労し、核心的な質問もあり、勉強になった講演でした。

12月中に、別の業界向けに似た趣旨のお話をする機会があります。 ただ、伝え方は本講演とは全く別の方法になります。

本講演では、2005年から本格化した国策としての組込みソフトウェア教育を扱い、IPA, JEITA, JASA の取り組みを引用し、批判的な主張をしました。 願わくば、本講演資料が、当該取り組みの当事者や関連部門に届き、現在も続いているであろう組込みソフトウェア教育へのフィードバックとなることを望みます。 もし私への連絡がございましたら Twitter または LinkedIn からどうぞ。

ET&IoTには大阪で夏に開催される回があります。続くお話を2022年にできればと考えています。

あと、本講演のためのサーベイで勉強になったのは良いですが、動くものを作る時間が最近めっきり減ってしまったので、意識的に作る時間を確保しようと思います。