主な概念
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/02 04:38 UTC 版)
ハイブリッドシステム (Hybrid System) 連続時間動的システムと離散事象を組み合わせたシステム。不連続な状態変化を伴う現象も扱うことができ、制御理論の中で適用対象の最も広いシステムであると言える。 ウェルポーズドネス (Well-posedness) 解の存在性と唯一性。常微分方程式によって表される現代制御論の場合よりも議論は遥かに複雑となる。
※この「主な概念」の解説は、「制御理論」の解説の一部です。
「主な概念」を含む「制御理論」の記事については、「制御理論」の概要を参照ください。
主な概念
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/08 18:34 UTC 版)
ソースコードの一部の循環的複雑度は、ソースコード内の線形独立な経路の数である。実際、分岐点(if文やfor文など)のないソースコードの場合、その複雑度は 1 であり、そのコードには1つの経路しかない。コードに1つのif文が含まれていれば、コードには2つの経路があることになる。つまり、一方はif文での条件が真となる場合の経路で、もう一方はそれが偽となる場合の経路である。 循環的複雑度は、ソースコードの各行をノードとし、実行の流れをノード間の有向エッジで表したグラフを描くことで計算できる。プログラミング言語によっては、非常に簡潔でコンパクトな表現を用いることができるため、ソースコードの1行がグラフでは複数のノードで表されることもある(例えば、C言語、C++、C#、Javaなどにあるif文を式にしてしまう三項演算子 "?:" )。 一般に、あるモジュールを完全にテストしようとした場合、全ての実行経路を通す必要がある。これの意味するところは、循環的複雑度の大きいモジュールの方が経路数が多く、従ってテストケースも多く必要になるということである。また、複雑度の大きいモジュールは、ソースコードの意味を理解するのに多くの経路を追わなければならず、読解がより困難になる。 また、複雑度の大きいモジュールは凝集度が低いと予想される。この相関を想定する理由は、分岐点(判断ポイント)が多いモジュールは、単一の機能以上のものを詰め込もうとしている可能性が高いためである。しかし、凝集度とは関係なく、モジュールの種類によっては必然的に複雑度が大きくなることもある。例えば、ユーザインタフェース・モジュールに入力データの妥当性確認とエラー復旧のコードが含まれている場合などである。
※この「主な概念」の解説は、「循環的複雑度」の解説の一部です。
「主な概念」を含む「循環的複雑度」の記事については、「循環的複雑度」の概要を参照ください。
- 主な概念のページへのリンク