ソフトウェアエンジニアがシンプルな状態図をスマートシステムに変換した方法 レナが初めて彼女のものを開いたときUML 状態図、それはただの状態の列—オン、オフ、準備完了、エラー—を矢印でつなげたものだった。間違ってはいなかった。ただ不完全だったのだ。彼女がスマートホームデバイス用に設計していたシステムは、単純なスイッチのようには動かなかった。条件があったのだ:バッテリー残量が20%以上でなければオンにしない、温度が高すぎると警告を送る、10分間の非活動後にのみスリープ状態になる。 彼女はこれらのルールを手動で記述しようと試みた。それぞれのガード、それぞれのアクションは、第二の作業層のように感じられた。結果として、メモやコメント、半分しか覚えていない論理で埋め尽くされた見づらい図になった。その後、チームに説明しようと試みたが、彼らは流れが理解できなかった。状態に組み込まれた意思決定が見えなかったのだ。 そのとき、彼女はAI UMLチャットボットを試してみた。 なぜ標準的な状態図は不十分なのか 基本的な状態図は遷移を示す。それは何かが変化したときに何が起こるかを教えてくれる。しかし、それがいつ起こるか、なぜ起こるかは教えてくれない。いつ、あるいはなぜ起こるのか レナのスマートサーモスタットは、バッテリー残量やユーザーの活動状況といった文脈に基づいて意思決定を行う必要があった。シンプルな図ではそのようなことを表現できなかった。ガードやアクションがなければ、システムはすべてに反応しているように見えるため、テストやデバッグ、説明が非常に困難になる。 ここにAI駆動の状態図作成が登場する。記憶や手動によるフォーマットに頼るのではなく、AIはシステムの意図を理解する。自然言語を解釈し、ガードやアクションを備えた明確で構造化された図に変換する。 状態図におけるガードとアクションとは何か? UMLでは、ガードは遷移に付随する条件である。フィルターのようなもので、ある条件が真である場合にのみ遷移が発火する。 たとえば: 「温度が30°Cを超えた場合にのみ、『エラー』へ遷移する。」 あるアクションは、状態に入ったり出たりするときに起こる行動である。単なる遷移ではなく、反応である。 たとえば: 「『アクティブ』状態に入ると通知を送信する。」 これらの要素は知性と文脈を加えます。図を単なる流
