あなたの会社が設計・開発に失敗する理由――ツール? 組織? それともデータ共有?設計部門ごとの違いを無理に統一しない(4/6 ページ)

» 2012年09月27日 18時20分 公開
[畑陽一郎,MONOist]

手法4:抽象化を進める

 以上の手法は全て、組織を変えることによって問題を解決するというものだ。だが、組織を変えなくても壁を取り払うことができる手法も4つあるという。まずは抽象化だ。

 「製品の企画を決定するレベルまで上がってみよう。抽象レベルが十分に高い場合、誰でも同じ『言語』を話す。例えば、UML(Unified Modeling Language)やMATLABなどの抽象レベルで表現されているなら、電気技術者であっても機械技術者であっても、システムデザイナーにとっても同じ意味になり、高いレベルでの最適化が可能になる」(同氏)。

 だが、単なる抽象化だけではシステムを構成する各部分の最適化に入ったときに破綻する。「設計が、個々の専門分野へ分割されて落とし込まれていくとどうなるか。分割された問題をソフトウェア技術者やハードウェア技術者がそれぞれの分野に特化した方法論とツールで処理してしまう」(同氏)。結局、部門の壁が生まれてしまう。

 このような動きにあらがう方法はある。「分割されたシステムのそれぞれの部分を、例えばUMLの派生形であるSysML(Systems Modeling Language)で表現すればよい。その上で、例えば電気的設計をハードウェア設計と一緒に最適化する(図7)。医療機器を製造する企業の多くは、今日、C++コードを生成するソースコードとしてSysMLを利用している。C++コードはそのままコンパイルされて、組み込みプロセッサ上で動作する。または、SysMLからSystemCのソースコードを得て、RTL(Register Transfer Level)を出力することもできる」(同氏)。

図7 抽象レベルを高めつつ、専門分野の要求を満たす手法 例えばSysMLを利用することで、複数の設計部門(ソフトウェア、ハードウェア)の協調を図りつつ、最適化を進めることができる。

手法5:抽象化レイヤーを設ける

 抽象化をさらに推し進めることも課題解決に有効だという。Rhines氏は自動車産業の例を挙げて、抽象化の力を示した。

 「自動車や航空宇宙関連企業のシステム設計過程を振り返ってみよう。過去においては、システムの全体構造を書面に落とし込んで極めて多数のサプライヤーに送り付けていた。こうなると開発したシステムの部品を統合する複雑な作業が必要になる。開発途上で統合のやり方を変えることは極めて難しかった。例え設計に大きな変更点がなくてもシステムを統合する作業を維持し続け、開発を続けることは難しい」。

 そこで自動車産業は標準化、AUTOSARのような標準化を急速に取り入れている。AUTOSARでは、機械可読性の高い仕様を決めることから始まる。「このような仕様は誤読される危険がなく、RTE(Runtime Environment)と呼ばれる標準ランタイム環境に従ったソフトウェア部品を容易に生成できる(図8)。組み込みプロセッサやMCU(Microcontroller Unit)を内蔵したECU(Electronic Control Unit)をシステムに追加した場合も、単一のインタフェースを通じて動作する」(同氏)。

図8 抽象化レイヤーの一例「AUTOSAR」 大本の仕様がソフトウェア実装(図左)とハードウェア実装(図右)に分かれていくが、ソフトウェア(SWC:ソフトウェアコンポーネント)は、RTE上で動作し、ハードウェア(ECU:電子制御ユニット)はMCAL(マイクロコンポーネント抽象化レイヤー)の上に載っている。つまり、ソフトウェア、ハードウェアともに抽象化レイヤーで切り分けられている。

 この結果、ソフトウェア部品が車載プロセッサ上で動作する際の規則を変更したり、修正したりすることが容易になった。他の構成部品に与える影響を最小限に抑えることができるからだ。高いレベルの最適化と柔軟性が得られることになる。「今日ではAUTOSARを設計時に適用した200を超える(自動車)プラットフォームが存在する」。

手法6:マルチフィジックス対応のシミュレーション

 手法6は他の手法とは直接関係がない。シミュレーションを通じて、組織の壁を取り払うという試みだ。

 「今日のEDA(Electronic Design Automation)製品は電気に限らず、機械や制御、ソフトウェアについても扱うことが可能で、システムレベルのシミューレーション結果を出力する、1つにまとまったシミュレータを提供している。このようなシミュレータは多くの異なる産業分野で受け入れられており、複雑なシステムをモデルベースで仮想設計するために使われている。VHDL-AMSや自然言語での設計が行われている」(同氏)。

Copyright © ITmedia, Inc. All Rights Reserved.