MATLAB / Simulinkモデルにおけるクローンとは、コピー&ペーストなどにより他の箇所にも同じブロックを組み合わせた同一の処理が存在することを言います。コピー&ペーストすることで開発効率が向上するように考えがちですが、モデルに不具合があった場合に、コピーしたモデルを全て修正しなければならず作業量が増大しますし、修正漏れの危険性もあります。そのためクローン化されたモデルを早期に発見して対策を行う必要があるわけです。
クローン化されたモデルを改善する例として、あるサブシステムK(図8)とサブシステムL(図9)の内部処理を見てみます。
これらのモデルをよく見てみると、破線で囲った部分はブロックが同じ組み合わせで結ばれており、同じ処理を行っていることが分かります。この部分がクローンです。
クローンの部分は入力信号とConstantブロックの値以外は同じですので、それらを入力に持つサブシステムを作成し、そこにこの処理を移動させてみましょう(図10)。このサブシステムを例えばライブラリブロックとして定義し、KとLでそのブロックを利用するように変更すれば(図11)、仮にその処理を変更する場合でもライブラリを修正するだけで済みます。
このように、モデルのクローンを発見し、共通処理をライブラリ化することができればモデルの保守性が向上しますし、ライブラリが充実していくことで開発効率の向上も期待できます。また、ライブラリが様々なところで利用されることでその信頼性も向上します。しかし、全てのクローンを目視で見つけることは困難です。ツールを用いて自動的にクローンを検出することが現実的です。
以上のような手法を用いることでMATLAB / Simulinkモデルを改善することができます。また、現状ではモデルの品質に問題がない場合でも、メトリクスの測定やクローンの検出を定期的に行うことで、品質が劣化した時にすぐに気付くことができ、開発に悪影響を及ぼす前に対策することができます。
まずはMATLAB / Simulinkモデルの品質の現状を知るために、メトリクスの測定とクローンの検出を実践することをお勧めします。
なお、MATLAB / SimulinkモデルのメトリクスはMODEL EVALUATORで測ることができます。詳しくは、MODEL EVALUATORのページをご参照ください。