組み込みソフトウェアの根本問題~対象物の状態遷移を記述できれば、制御が可能だ
「組み込みソフトウェアでは対象物の状態遷移を記述できれば、制御が可能だ」という文言をネットで2箇所見つけた。
ラフなメモ。
組み込みソフトウェアのモデリングにおける根本問題とは何だろうか?
業務システムのモデリング、ネットワーク設計の根本問題とは異なる。
業務システムのモデリングでは、業務ロジックをいかにER図に落とし込めるか、という点に集約できると思う。
以前書いた。
業務ロジックをデータモデリングはどこまで表現できるか?: プログラマの思索
その考えから、ビジネスの一連の業務フローが表現されて、データのライフサイクルと使われる帳票が導出されて、最終的にERPになるイメージ。
一方、ネットワーク設計の根本問題は、ネットワークの品質をどのように保つか、という点に尽きると思う。
SDNアーキテクチャの本質は巨大な仮想L3スイッチを実現したことではないか: プログラマの思索
なぜInfrastructure as Codeが必要なのか?: プログラマの思索
ネットワークの根本問題は何か~昨今のIT技術と時代の変化についての考察: プログラマの思索
ネットワークの品質は、耐障害性の観点でのL2・L3の冗長化、セキュリティの観点でL2のスプーフィング対策・L3のパケットフィルタリング・認証、L4層以上のファイアーウォールやVPN、音声や動画やデータの通信品質を保つ観点のQoSなどの技術が使われている。
さらに、巨大で複雑なネットワーク構造を構成管理の配下に置くために、SDNやぜInfrastructure as Codeの技術が生まれた、というイメージ。
特に、昨今は、データモデリングやオブジェクト指向設計よりも、ネットワークの仮想化技術が熱いと思う。
その中にクラウドも含まれるわけだが。
では、組み込みソフトウェアのモデリングにおける根本問題とは何だろうか?
(引用開始)
組み込みシステム開発の世界には、大きく2つのモデル<ソフトウェアのモデル>と<制御のモデル>が存在する。
(引用終了)
組込みソフトウェア開発のための オブジェクト指向モデリング (組込みエンジニア教科書)にこんな感想があった。
(引用開始)
殿堂入りNO1レビュアー
kaizen
状態遷移が肝でしょうか。
2008年3月21日に日本でレビュー済み
対象物の状態遷移を記述できれば、制御が可能だという意味で、オブジェクト(対象)指向は有効なのだと思われます。
モデルを作る場合に、対象(オブジェクト)を記述していくのが王道なのだと思われます。
本当に必要な技術と、内容を確かめるために使う技術と、試験のための技術との詳細な説明があるとよいかもしれません。
(引用終了)
勝手な想像では、組み込みソフトウェア設計では、単純に部品をクラス図やブロック図に表現するよりも、そこから、抽象度を上げた対象物の状態遷移を見抜くことが重要ではないだろうか。
対象物の状態遷移を記述できれば、プログラムで実装可能であり、その制御プログラムで機械に作業を指示できる。
しかし、状態遷移は爆発しやすい、という根本問題は以前からある。
だから、状態が爆発的に増えてコントロールできなくなるために、レイヤーごとに分けたり、抽象度を上げ下げしたりして、ソフトウェアの複雑さを制御しようとしているのではないか。
この発想を元に、色々考えてみる。
| 固定リンク
「モデリング」カテゴリの記事
- 組込みソフトウェア開発でUMLを使う手法を説明した書籍のリンク(2022.06.17)
- 超高速開発でアジャイル開発を実現する話に違和感がある(2022.05.06)
- 事業活動のシステム化は非差別化しない汎用ドメインや支援ドメインに注力すべき(2022.04.13)
- 「大国政治の悲劇」の感想~現代はパワーポリティクスの歴史に戻ったみたいだ(2022.03.25)
- マイクロサービスはアトミックな操作で閉じるべきシステム分割論に基づいたアーキテクチャなのか(2022.03.20)
「経済学・ERP・財務会計」カテゴリの記事
- 経済学や心理学の実験で得られた理論は再現性があるのか?~内的妥当性と外的妥当性の問題点がある(2022.06.04)
- Pythonで微分積分や統計の基礎を理解しよう(2022.05.15)
- 超高速開発でアジャイル開発を実現する話に違和感がある(2022.05.06)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- オープンソースERPパッケージiDempiereに対する派生開発手法の提案の資料が興味深かった(2022.04.24)
「astahによるUMLモデリング」カテゴリの記事
- 組込みソフトウェア開発でUMLを使う手法を説明した書籍のリンク(2022.06.17)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- ITの地殻変動はどこで起きているのか?~今後の課題はソフトウェア事業におけるエージェンシー問題を解決すること(2022.01.01)
- チケット駆動開発のプロセスと開発基盤を再考する #Redmine(2022.01.01)
- リーダーシップの要は抽象的思考とトレードオフだ(2021.12.26)
「ネットワーク・クラウド」カテゴリの記事
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
- 東大の講義内容が「AWSではじめるクラウド開発入門」本で出版されたらしい(2021.11.07)
- DockerとVirtualBoxの違い(2021.11.03)
- AWSサービスとSW品質特性のマッピングはどうなるか(2021.10.30)
- CISOは経営がわかる情報セキュリティ最高責任者である(2021.08.01)
コメント