組込みソフトウェアモデリング・フォーラム 2010 2番目のセッションでは、IBM Rational チーフ・エバンジェリストのBruce Douglass氏が登壇。同氏が提唱し、IBM Rational Rhapsodyにも取り入れられている「Harmony開発プロセス」および、著書『リアルタイムUMLワークショップ』(2009年、翔泳社刊)の第6章「アーキテクチャ設計」の中から、特に安全性や信頼性、セキュリティにフォーカスして、プレゼンテーションを行った。
- 講師名:
- IBM Rational チーフ・エバンジェリスト Bruce Douglass 氏
設計とは相対的な重要度に応じて最適なソリューションを選択すること
Douglass氏は、「設計とは、一連の設計基準をそれぞれの相対的な重要度に応じて最適化する特定のソリューションを選択すること」と、明確に定義する。この「設計基準」の具体例としては、パフォーマンスやリソース、安全性、信頼性などが挙げられる。これらは基本的に非機能要件であり、サービス品質(QoS)と呼ばれるものだ。QoSは通常、制約としてモデル化される。また、たとえばメモリ・リソースが限られている場合などは、多少の遅延は許容してメモリ使用率を抑えるという最適化もあるが、時間制約がシビアなシステムなら、また違った判断が必要になる。これが、「それぞれの相対的な重要度に応じて最適化する」ということである。
Harmony開発プロセスでは、設計のレベルを「アーキテクチャ設計」「メカニズム設計」「詳細設計」の3段階に分けている。この中で、システムを全体レベルで最適化するのが、アーキテクチャ設計だ。そして、アーキテクチャは「サブシステムとコンポーネントビュー」「並行性とリソースビュー」「配置ビュー」「分散ビュー」「安全性と信頼性ビュー」という5つの側面を持つ。今回のセッションのテーマとしてDouglass氏が取り上げたのは、「安全性と信頼性ビュー」。その理由を同氏は次のように話す。
「私は、原子力発電所や陸運・航空などの交通システムのシステムエンジニアリングも担当しているが、このような大規模なシステムズ・オブ・システムズ(複合システム)は、社会を支える重要なインフラ。十分な安全性、信頼性、そしてセキュリティが確保されていなければ、極めて広範囲に影響を及ぼす深刻な事態を引き起こす可能性もある。早期にこれらの懸念事項を把握して、的確な対策を講じることが不可欠だ」
もちろん、電子デバイスやOA機器などの組込みシステムでも、これらの要件は重要課題となっている。だからこそ、幅広いジャンルの開発に適用されるHarmony開発プロセスにおいて、安全性や信頼性がアーキテクチャのレベルで取り入れられているのだろう。
安全性分析の結果をアーキテクチャ設計に盛り込む
続いてDouglass氏は、安全性・信頼性のそれぞれの概念や、ハザード分析、故障モード影響解析(FMEA)といった代表的な分析手法について説明。また、セキュリティに関しても、現在IBMではセキュリティ分析に使用するためのUML/SysMLプロファイルを作成中であり、いずれは設計フェーズでのセキュリティ分析が行えるようになるという。
セッション終盤では、UMLによる安全性アークテクチャのビュー作成例を紹介。例に挙げたのは電車のスピード制御システムで、異なる2つのセンサーを持ち、2チャネルで冗長性を持たせることによって安全性を確保しているモデルだ。まったく異なるメカニズムでデータを取得・計算・変換し、エンジンコントロール・ユニットに伝えるため、一方のチャネルにエラーが発生しても、もう一方のチャネルに切り替えて稼働させることができる。こうした冗長性設計を行う上でよく使われるのが、故障の木解析(FTA)である。
「FTAでは、イベントや条件のどのような論理的組み合わせがフォールト(故障)につながるのか判別される。そこに『AND』で安全対策を追加していくことで、冗長性を設計に盛り込んで安全性を高めていくことができる」(図1)と、Douglass氏は解説。
ほかにも、ハザード表やフォールト要求のマトリックス、フォールト検出のマトリックス生成例などを紹介しながら、「Harmony開発プロセスでは、Rational Rhapsodyなどのツールを活用して、こうした安全性分析の結果を踏まえた設計パターンを識別・選択・適用することによって継続的に実行可能コードが自動生成される」と説明した。
最後に、Douglass氏は「自動車や航空機、もっと身近な携帯電話なども含め、今日のあらゆるシステムにおいて、安全性、信頼性、セキュリティに対する懸念は非常に大きなものになっている。我々エンジニアは、こうした懸念を1つ1つ解消し、システムを安全に正しく稼働させることを常に考えていかなければならない」と語り、セッションを閉じた。
関連リンク