[1] layering violation は、階層化設計に対する違反です。
[2] オペレーティング・システム、ネットワーク・プロトコル、アプリケーション・ソフトウェア、 マーク付け文書などに関する様々な計算機システムは階層化・ブロック化されたモジュールが相互作用する形で実現されています。 本来各モジュールは予め定義された限定された界面を通してのみ疎結合するのが理想的であるとされていますが、 実際にはパフォーマンス上の理由、開発体制的な理由、設計の不十分さ、 対象そのものの複雑さなど数多の理由によってモジュール間の密結合や重複が発生することがあります。 このようなモジュール化の失敗 (特に階層間の機能分離の失敗) を一般に layering violation と呼んでいます。