DSL / Gothic Security


ゴシックセキュリティ

要約

子供の頃に見た映画で、秘密の部屋に入るために特定の手順が必要だった。

この考え方に基づいたセキュリティシステムを考えてみる。反応してメッセージを送信するセンサーやコマンドを受け付ける装置など。

制御プログラム(コントローラ)はJavaで書かれている。

制御プログラムに注目し、個々のニーズについて調べると共通のパターンを見つけられる。

ほとんどのコンポーネントと振る舞い(例ではメッセージの送受信方法)は共有しており、 いくつかの重要な違い(例ではイベントやコマンドの流れ)がある。

コントローラをステートマシンとして考えるのが良い方法である。

ステートマシンはDSLの良い例になる。


数多くのパターンから一つ(グラント嬢)に着目し、状態遷移図に表す。

イベントが発生すると、ある状態から別の状態に遷移する。このモデルでは状態に入った時に動作が発生する。

ここでは普通のステートマシンとは違い、リセットイベントにより遷移するアイドル状態を持つ。

まず通常のステートマシンからはじめて、後からリセットイベントを追加する。

ここでは、あらゆる状態から{0}doorOpened{/0}をトリガーにしてアイドル状態になる遷移を追加した。

担当者のつぶやき

  • Glossary(用語)を統一したい
    • グラント嬢 or ミスグラント
    • 状態機械 or ステートマシン

みんなの突っ込み


まとめ (議事録)