システムエンジニアのためのモデリング心得 トップ10

その4 デザインパターンは証明済みの解決策の再利用である

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: システムエンジニアのためのモデリング心得 トップ10

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:システムエンジニアのためのモデリング心得 トップ10

このシリーズの続きに乞うご期待。

デザインパターンは、よく現れる問題に対する一般化された解決策の集まりです。すなわち、それらは、同じ問題に対するいろいろな異なるコンテキストでの解決策を集め、抽象化したものです。この抽象化では、コンテキストの個別の詳細は取り去られ、それにより新しいコンテキストでもその解決策を適用することができます。そして、新しい設計作業に取り掛かる中で、他の設計者の経験を生かし、証明済みである解決策を再利用できるのです。これはウィン-ウィンです。

例えば、医療用の薬物注入ポンプ(infusion pump)で閉ループ制御を行うために圧力と流量を扱うセーフティ・クリティカル・システムを考えてみてください。ここでは、システムを安全で正確なものにしたいものとします。さて、こういった目標を最適な形で達成する設計要素の構成方法はあるでしょうか。

パターン: 保護されたシングルチャネル

説明
コンポーネント群を直列の制御およびデータの変形ステップ列として構成し、エラーおよび安全性チェックをコンポーネント境界に配置する。
 
問題
コストに見合う形で障害に対する保護をする。
 
解決策
コンポーネント群を、エラーおよび安全性チェックを提供するための軽量の冗長性を持つ直列の制御およびデータの変形ステップ列として構成する。
 
結果
低い設計コスト、低い再発コスト、しかし障害発生時には動作継続はできないため、フェイルセーフ状態があることが必須。
 

基本的なパターンは、図1のようになります。コンポーネント群は直列の変換操作の要素(抽象的なデータ変換)として連結され、そのそれぞれは、妥当性や安全性の検査を追加することができるようにします。パターンを適用する際は、このモデル中の具体何々(Concrete…)となっている要素のところが実際の設計では置き換えられます。

図 1. 保護されたシングルチャネル・パターン
保護されたシングルチャネル・パターン
保護されたシングルチャネル・パターン

図2は、このパターンの適用例です。ここでは、圧力(pressure)および流量(flow)のセンサーコンポーネントが生データを送り込み、ポンプの位置が計算される前にそれぞれからのデータが移動平均(moving average)フィルタとバンドパスフィルタを通っていることが見て取れます。これらの変換には、それぞれについて以下のような検証すべき要素があります。

  • 圧力と流量は適切な制限の範囲内にあるのか
  • 計算された位置について前回の位置からの移動量が大きすぎないか

もしエラーが検出された場合は、警告管理部(Alarm Manger)に対して警告が通知され、担当している医師がこの問題を適切に扱えるようにします。そして、ポンプはフェイルセーフ状態(監視は継続するが、薬物注入は停止)に入ります。

図 2. 保護されたシングルチャネル・パターンの適用
保護されたシングルチャネル・パターンの適用
保護されたシングルチャネル・パターンの適用

Harmonyプロセスでは、5つの主要なアーキテクチャのビューを特定しています(図3)。それらは以下のものです。

サブシステムおよびコンポーネント・ビュー
大きなスケール・レベルでのシステムの要素、その責務とインタフェース。
 
並列性(concurrency)およびリソース・ビュー
並列性ユニットの特定、それらのスケジューリング特性、ソフトウェア要素のこれらのスレッドへの割り当て、タスクの同期戦略と資源使用に関するポリシー。
 
配置(deployment)ビュー
機械、電子、ソフトウェアといった異なるエンジニアリング領域にまたがっての責務の割り当て。
 
分散(distribution)ビュー
処理ノード群にわたる分散情報収集、通信や協調のための技術やポリシーに関する意思決定。
 
ディペンダビリティ・ビュー
システムの実行中に如何に安全性、信頼性、セキュリティに関するシステムの一貫した状態が保たれるか。故障や攻撃の特定・分離・実行時の修正対応といったことを含む。
 

システムアーキテクチャというのは、とても重要な意味において、これらのクリティカルな領域のそれぞれにおける設計上の意思決定とパターンの総体になっています。

図 3. Harmonyでの5つの主要なアーキテクチャのビュー
the harmony architecture
the harmony architecture

これらのそれぞれ異なるアーキテクチャ視点でのデザインパターンは、私の書籍「Real-Time Design Patterns」 (Addison-Wesley, 2003年) や「Design Patterns for Embedded Systems in C」(Elsevier Press, 2011年)をご覧ください。

訳者について

三ツ井欽一は、東京ソフトウェア開発研究所に所属するラショナル・システムズ開発担当マネージャーです。この記事の著者のBruce Douglassを含む、ラショナル・グローバル・チームのメンバーと共に、ラショナル・ソリューションの普及とお客様へ提供する価値の向上に日々取り組んでいます。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Rational
ArticleID=958138
ArticleTitle=システムエンジニアのためのモデリング心得 トップ10: その4 デザインパターンは証明済みの解決策の再利用である
publish-date=12272013