レイヤごとの検証ロジック

最近、分析・設計時の検証ロジックの識別と設計のやり方をいろいろドメインモデルとの関連も含めて考えてます。
よくある検証ロジックの方式は、単純な入力チェックを画面層で行い、DBの制約やビジネスルールの制約をまとめてビジネス層でおこなうパターンかなと思います。このレイヤで考えて行うやり方は例外処理の指針と検証処理を関連づけて考えられるメリットがうれしい。
でも、ビジネスルールでも画面で行いたいものがあったり、逆にDBのマスタコードチェックなどは画面層で行う場合もあって、レイヤごとにやり方ではどのように整理したらよいのか分かりずらい場合も多い。
あと、分析時にビジネスルールとして検証ロジックを識別するのだが、DB的な制約は含めるのか、どこまで識別すればよいか困まってしまう。できれば分析時には識別に値するビジネスルールのみを取扱い、設計時に他の検証ロジックを含めてもれなく整理できるやり方にしたい。