En informatique, le Dependency Constraint Language (DCL) est un langage qui permet de localiser dans le code source d'un logiciel des décisions d'implémentation qui représentent des violations à l'architecture décrite au départ.
Il permet de contrôler deux types de violations :
Le langage DCL spécifie quatre primitives pour définir les contraintes :
only Factory can-create Product
Util can-only-depend $java, Util
View cannot-access Model
Product must-implement Serializable
Il se complète par d’autres primitives pour des besoins spécifiques : access, declare, create, extend, implement, throw, annotate.