Dependency Constraint Language

langage de programmation

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[1].

Il permet de contrôler deux types de violations :

  • les divergences (quand une dépendance existante dans le code n'est pas prévue dans l'architecture de départ) ;
  • les absences (quand une dépendance existante dans l'architecture de départ n'existe pas dans le code source).

Utilisation

modifier

Le langage DCL spécifie quatre primitives pour définir les contraintes :

  • only can (divergence)
only Factory can-create Product
  • can only (divergence)
Util can-only-depend $java, Util
  • cannot (divergence)
View cannot-access Model
  • must (absence)
Product must-implement Serializable

Il se complète par d’autres primitives pour des besoins spécifiques : access, declare, create, extend, implement, throw, annotate.

Références

modifier

Voir aussi

modifier

Bibliographie

modifier
  • (en) Ricardo Terra, Marco Tulio Valente, Krzysztof Czarnecki et Roberto S. Bigonha, « Recommending Refactorings to Reverse Software Architecture Erosion », 16th European Conference on Software Maintenance and Reengineering,‎ , p. 335-340 (ISBN 978-0-7695-4666-7, DOI 10.1109/CSMR.2012.40)