プロジェクト概要 高い生産性を持つ高信頼ソフトウェア作成技術の開発 情報の高信頼蓄積・検索技術等の開発 イベント 資料

Home > 高い生産性を持つ高信頼ソフトウェア作成技術の開発 > 高信頼性組込みソフトウェア構築技術

高信頼性組込みソフトウェア構築技術


リーダー 片山
サブリーダー 中島、湯浅
分担 中島、岸、青木、八杉、小宮
共同企業 トヨタ自動車、NEC、松下電器産業、Nokia、オムロン、オムロンソフトウェア

文部科学省、2003〜2007

目的

最近のソフトウェア科学・工学を用いて、高信頼性組込みソフトウェアを構築する技術の開発

組込みソフトウェアは情報化の進展とともに社会のあらゆる分野で広範に使われており、その信頼性の確保は大きな社会的要請となっている。一方その規模や複雑度はますます肥大化しており、高信頼性の実現のためにはより有効性の高い技術の工業化が急務である。本プロジェクトでは、記憶容量や計算速度等の制約が大きい場合でも、その制約にあわせて組み込みソフトウェアを自動生成する技術の開発を行う(開発コストを5分の1に削減)。

アプローチ

構築環境、実行環境、実行基盤の3つの方向から高信頼性組込みソフトウェア構築を実現

以下のサブプロジェクトを実施

分析・設計などの上流工程において正しさを確認・検証するための構築環境を開発する。これにより、高い信頼性を持つ組込みソフトウェアを構築することが可能となる。
高い信頼性を持つ組込みソフトウェアの実現に必要なソフトウェア基盤を開発する。本ソフトウェア基盤を用いることにより、上記の環境で構築された組込みソフトウェア等を安心して実行することが可能となる。
組込みソフトウェア開発における実時間性の保証および資源制約に関する作業を大幅に自動化し、プログラマによる指定を最低限に抑えることのできるソフトウェア実行基盤を構築する。

高信頼性組込みソフトウェア構築技術

組込み用オブジェクト指向技

背景 ソフトウェアの開発上の問題の多くが分析・設計などの上流工程で作りこまれ、それが全体の生産性や品質に支配的な影響を及ぼしていることはよく知られている。従って組込みソフトウェアの特性を適切に扱え、上流工程段階から正しさを確認・検証しながら組込みソフトウェアを構築できる環境を実現する必要がある。
目的 分析・設計などの上流工程において正しさを確認・検証するための構築環境を開発する。これにより、高い信頼性を持つ組込みソフトウェアを構築することが可能となる。
目標 製品系列開発などUMLの特性を活かした組込みソフトウェア開発を行う中で、その正しさの確認・検証と、実時間制約などを考慮した実装を支援することで、高信頼な組込みソフトウェアの実現を可能とする構築環境を開発する。

組込みコンポーネントフレームワーク

背景 仮にバグがない組込みソフトウェアを自動生成することが可能となったにせよ、ソフトウェア基盤の信頼性が低いままでは効果が低い。また、既存のバグが存在する組込みソフトウェアは今後も使用されるため、バグがある組込みソフトウェアが存在してもシステム全体の信頼性を向上する必要がある。また、様々なリソース制約が存在する組込み環境では状況に応じて最適な実行環境を提供する必要がある。
目的 高い信頼性を持つ組込みソフトウェアの実現に必要なソフトウェア基盤を開発する。本ソフトウェア基盤を用いることにより、上記の環境で構築された組込みソフトウェア等を安心して実行することが可能となる。
目標 情報アプライアンスを中心とする複雑な組込みシステムの標準的な組込みソフトウェア基盤となるシステムの開発をおこなう。本システムは、セキュリティや信頼性の面、プログラムの生産性の面で現状を5倍改善することを目指す。

組込み実時間Java技術

背景 組込みソフトウェアの特徴である実時間性の保証と資源(特にメモリ)制約に関しては、従来はプログラマが細心の注意を払って明示的にプログラムに記述する必要があり、職人芸的な要素が強く、開発コストおよび品質の両面で大きな問題となっている。これらの作業を最大限に自動化し、プログラマによる指定を最低限に抑えることによって、信頼性の高い組込みソフトウェアの生産性を高めるための実行基盤が必要である。
目的 組込みソフトウェア開発における実時間性の保証および資源制約に関する作業を大幅に自動化し、プログラマによる指定を最低限に抑えることのできるソフトウェア実行基盤を構築する。
目標 実時間性の保証および資源制約に関する作業を大幅に自動化する能力を持ち、商用レベルでも利用可能なJavaプログラム実行環境を開発する。これによって、組込みソフトウェアの開発コストを20%軽減することを目指す。さらに、この実行環境の上で動作する組込みソフトウェアが満たすべき要件を仕様記述し、検証するための方式を確立する。