SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

安全ソフトウェアの設計

【第3回】安全アーキテクチャの可視化


UMLを使った安全設計の可視化

 安全ソフトウェアが他の機能モジュールからアイソレートされ、危険を制御するメカニズムがシンプルなデザインで実現できていることを示すにはUML(Unifid Modeling Language)の表記法を用いることが有効です。UMLを使ったモデルデザインを使えば、ソフトウェアシステムの静的構造や動的な振る舞いを階層的に表現することができるため、設計者がシステムに込めた設計の意図を大きな視点から実装に近い粒度の細かい視点へ段階的に眺めていくことができます。

 図3は、例外処理を追加する前のエレベータの昇降に関する安全機能をUMLのクラス図で描いています。図4はクラス名を日本語の別名に入れ替えたものです。どちらか見やすい方を眺めてください。

図3:安全機能の基本モデル
図3:安全機能の基本モデル
図4:安全機能の基本モデル(クラス別名表示)
図4:安全機能の基本モデル(クラス別名表示)

 以下に、このモデルで着目して欲しいポイントを挙げます。

  1. センサから外部の状態を取り込むクラス(DoorOpenSenser:ドア開閉センサ)とモータ駆動やブレーキを制御するアクチュエータクラス(MotorDriver:モータドライバBreakActuator:ブレーキアクチュエータ)は、エレベータを昇降させる機能(責務)と安全監視システム(責務)から独立している。
  2. エレベータ安全システム(ElevatorSafetySystem)クラスと、かご巻き上げコントローラ(HoistingCageController)は、同じセンサクラスとアクチュエータクラスに関連を持っている。同一のセンサから状態を取り込み、同一のモータやブレーキを制御する。
  3. エレベータマネージャ(ElevatorManager)クラスはかご巻き上げコントローラ(HoistingCageController)を持っている(所有している)が、エレベータ安全システム(ElevatorSafetySystem)クラスとは関連がまったくない。
  4. エレベータ安全システム(ElevatorSafetySystem)クラスを所有しているのは、エレベータシステム(ElevatorSystem)であり、センサやアクチュエータとの関係を除けば、エレベータの昇降と関係しているのは、エレベータマネージャ(ElevatorManager)クラスのgetElevatorStatus()関数を呼んでいるときだけである。
  5. エレベータ安全システム(ElevatorSafetySystem)は、異常を察知したらすぐにエレベータを止めるstopElevatorImmediately()関数と異常を知らせるnotifyAlarm()関数を持っており、この2つの関数は外部に対して公開していない(クラス外部からアクセスできない)。

次のページ
安全設計のコンセプト

この記事は参考になりましたか?

安全ソフトウェアの設計連載記事一覧

もっと読む

この記事の著者

酒井 由夫(サカイ ヨシオ)

1987年よりクリティカルデバイスのソフトウェア開発に20年間従事する。おもに16bitのワンチップマイコンを使った信号処理、リアルタイム組込みシステムの開発を行い、製品の仕様立案からソフトウェア開発のプロセス管理、プロジェクトマネージメント、安全性・信頼性の検証、保守、ソフトウェア技術者教育など組...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3698 2009/03/16 18:38

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー