検索
連載

インテグレーション地獄からの脱却:構造問題と「インテグレーター人権宣言」AUTOSARを使いこなす(41)(2/4 ページ)

車載ソフトウェアを扱う上で既に必要不可欠なものとなっているAUTOSAR。このAUTOSARを「使いこなす」にはどうすればいいのだろうか。連載第41回は、AUTOSARにとどまらず「インテグレーション地獄」が繰り返される構造問題を分析するとともに、筆者が訴える「インテグレーター人権宣言」を通してインテグレーターの位置付けについて考察する。

Share
Tweet
LINE
Hatena

建前の上での「インテグレーション」

 自動車業界ではおなじみのAutomotive SPICEにも「インテグレーション」という言葉は登場します。

 Automotive SPICEのVer. 4.0では、以下の2つのプロセスとして登場します。

  • SYS.4 システムインテグレーションおよびインテグレーション検証(System Integration and Integration Verification)
  • SWE.5 ソフトウェアコンポーネント検証およびインテグレーション検証(Software Component Verification and Integration Verification)

 そこで示されている基本プラクティス(Base Practice)の内容を見てみましょう。

  • インテグレーションの検証手段の仕様化(SYS.4.BP1/SWE.5.BP1+SWE.5.BP2)
  • 検証手段の選定(SYS.4.BP2/SWE.5.BP3)
  • インテグレーション対象の要素のインテグレーションおよびインテグレーション検証の実施(SYS.4.BP3/SWE.5.BP4+SWE.5.BP5)
  • 一貫性の確保および双方向トレーサビリティーの確立(SYS.4.BP4/SWE.5.BP6)
  • 結果の要約および伝達(SYS.4.BP5/SWE.5.BP7)

 中心になるのは、「インテグレーション対象の要素のインテグレーションおよびインテグレーション検証の実施」であり、その部分の記述は以下の通りです。

  • 仕様化されたインテグレーション対象の要素間のインタフェースおよび相互作用に従い、かつ定義された順序および前提条件に従って、インテグレーション対象全体が完全にインテグレーションされるまで要素をインテグレーションする。選定されたインテグレーションの検証手段を実施する。合否ステータスを含む検証結果および対応する検証測定データを記録する

 さて、インテグレーションに関わっておいでの皆さん、「あれ? こんなことしかやらないの?」と思いませんか。

 そして、その「あれ?」という感覚を言語化すると、以下のような内容ではないでしょうか。

  • 1)一般的なプロジェクトでの「インテグレーション段階の活動/作業」に含まれる、以下のような作業はどこに行ってしまったのでしょうか?※3)
    • a)Configurableなソフトウェアの選定/採否決定 ※(Re)Use or Make判断 ※通常は、プロジェクト着手前(計画/企画段階)に実施
    • b)インテグレーション活動の計画(活動フェーズ定義、活動概要策定、資源確保など)
    • c)開発環境の構築/能力認定 ※ワークフローをインテグレートし、可能な限り自動化
    • d)インテグレーションでの「つなぐ」方法/手順の検討 ※試行錯誤的になりやすい
      • 初期化関数や周期関数などの、call位置/vector table登録位置の決定
      • インタフェースの接続/合わせ込み(既存要素のI/F不整合の解消)
      • 処理のスケジューリング、排他区間の実現方法の検討と設定
      • HWリソースへのアクセスの割り当てなど
    • e)インテグレーション対象の要素に対する受け入れ検証と手直し
    • f)Configurableなソフトウェアのパラメータの設定、コード生成と検証 ※Classic Platform(CP)ではBSW/RTE(Runtime Environment)の、インタフェースの切り替えおよびふるまいの切り替えのためのパラメータが存在
    • g)各種プロジェクト固有単体ソフトウェアコードの設計/実装 ※時にアーキ分割(例:boot、application、hook、callout、callback、indication、notificationの単体)
    • h)ビルド対象を集め、ビルド(Build)
    • i)インテグレーション目的/ゴール(Integration Goals)の特定(論証シナリオ構築) ※「インテグレーションでの検証内容/合格条件は何?」と後から悩む段階
    • j)テスト(Test)の計画、仕様書作成、実施と結果の文書化
  • 2)そもそも、「インテグレーションでの検証内容/合格条件とは何?」(インテグレーション目的/ゴール:Integration Goals)

 その答えが、「インテグレーション」そのものを見ているだけで得られないのであれば、その周囲にあるものとの関係性も含めて、俯瞰的に観察するべきでしょう。

※3)網羅的なサブフェーズ名ではなく、あくまで代表的な活動の例とお考えください。

「インテグレーション」の周囲にあるものを含めて俯瞰する

 その周囲にあるものとの関係性も含めて、俯瞰的に観察するとは言っても、ただ漫然と「周りにあるもの」を含めて眺めたところで、見えてくるものはないかもしれません。

 ですから、「インテグレーションを完了する」という言葉を起点に、言い換えを試みました。

  • 起点:(各種構成要素の)インテグレーションを完了する
    • 調達/再利用したものと、新作したものの統合/結合/インテグレーション
    • ECU HWや、他のSW構成要素との統合/結合/インテグレーション
    • 上位システムへの、下位システム(Subsystem)のインテグレーション(車両へのECUの統合など)
  • 言い換え:「インテグレーション対象のアーキ設計を、(各種構成要素を用いて)実現する」
  • さらに言い換え: 「インテグレーション/アーキ設計対象の要件を、(各種構成要素を用いて)実現する」

 では、おなじみの開発の流れを要約すると、こんなところでしょうか(図2)。

  • プロセス構築や計画/筋道を立てる部分の領域
  • 要件定義の領域
  • アーキテクチャ設計の領域 ※要件の実現戦略の一形態で、実現シナリオを小分けにする
  • 詳細設計/単体の実装と検証の領域 ※小分けにされたものを形にする
  • いわゆる「インテグレーション」の領域 ※小分けにされ形になったものをくっつける
    • インテグレーション(あるいは統合/結合)の領域 ※くっつける部分(あえて検証部分とは分けています)
    • インテグレーション検証の領域 ※あえてくっつける部分とは分けています
  • 妥当性確認の領域 ※今回は省略
  • 変更対応の領域 ※再利用、手直し
図2
図2 開発の流れ(私が担当する長岡技術科学大学大学院 安全・情報セキュリティ特論II講義資料より)[クリックで拡大]

 上記の文脈に、「インテグレーション」で実際に何かを行う活動を照らし合わせてみると、以下のようなことが見えてきます(表1)。

Automotive SPICEでの「プロセス」と、実際にインテグレーションという活動フェーズで行われることの間には、大差がある

表1
表1 「インテグレーション」段階での活動例――AUTOSAR Classic Platform(CP)を用いた場合[クリックで拡大]

 これは何も新しいことではありません。

 しかし、意外とこのことに対する理解は得られていないようにも思います。※4)

 もちろん、Automotive SPICEは「AUTOSARを用いた場合に固有の内容」には直接触れていませんが、これは、AUTOSARに限ったことではないことは、皆さんもすぐにご理解いただけることと思います。

※4)Automotive SPICEで示されているプロセスは、プロジェクト進行上の開発フェーズそのものではありません。 先日、一般社団法人である日本SPICEネットワーク 代表理事の萩原一彦氏とインテグレーション談議で盛り上がった時にも、このよくある誤解が話題になりました。Automotive SPICEの公開されているPDFだけを軽くご覧になっただけでは、気付きにくいかもしれません。違和感もおありでしょう。ちなみに私自身も、長らく「プロセスと活動フェーズは別」という解釈で本当によいのか、自信が持てずにいましたが、2016年の、Automotive SPICEのProvisional Assessor資格を得るための研修の中での、講師からの説明でようやく確信が持てたという次第です。今年(2026年)で、そこからもう10年が経過しましたが、よく考えると、Automotive SPICEとのなれそめ(2004年)から12年もモヤモヤ/違和感を抱えたままだった、ということに、自分自身でも驚きます。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る