モデルは「動く仕様書」ではない?

当初、Simulinkモデルのことを「動く仕様書」だと言われていましたが、
私が制御開発を経験してきた結果で言うと、違うと考えています。


なぜか?


Simulinkモデルだけでは伝わらないことが多々あるからです。

例えば、
・このモデルは何を根拠に作られたのか?
・どういった背景・経緯があったのか?
・なぜ、このサブシステム構成なのか?
・AとBの処理があるけど、なぜAの優先順が高いのか?
などなど、例を挙げるとキリがないです

使用する部署等にもよりますが、量産開発部署だと
Simulinkモデルは詳細仕様書(関数仕様書、フローチャート)にあたります

そのため、実際の量産開発では詳細仕様書の上位にあたる仕様が必須になります

もちろん、モデルしかない状態でも、同じ担当者がずっと開発していたり、
小規模開発の場合は問題になりませんが(先行開発などがこれにあたります)
ただ、プロジェクトが大規模化すると必ず問題が起こります


例えば、
モデルしかない状態だと、
新しく参加した方がモデルの意図を理解するために、モデル作成者に何回も質問します

そうなると、モデル作成者の工数を圧迫し、仕事も遅延しやすく、
また、新しく参加した方も口頭説明だけであるため、誤解釈などが発生します

これが開発遅延や不具合が発生しやすくなる原因の一つで、
プロジェクト開発が負のスパイラルに入るパターンの一つです


では、どうすれば良いのか?

モデルを正しく理解、あるいは妥当性を検証するためには、要求仕様を明確にすることです
この要求仕様を言語化して捉えていないと、様々な不具合が起きます


私が携わったプロジェクトでも、
モデルしかない部分があり、時間の都合上、要求仕様書を作成できず、
動いているからそのままにしておいたのですが
SOP直前で不具合が発生するといった事案もありました


仕様書作りは、担当者としては手間がかかる作業になりますが、
後々で不具合を発生するよりも、要求の見える化することが非常に重要になってきます

この要求仕様を見える化させる方法がいくつかあるのですが、
それは別の記事で紹介します