  Manually ensuring that the implementation of a software system is consistent
with the software architecture is a laborious and error-prone task. Thus, a
variety of approaches towards automated consistency checking have been
developed to counteract architecture erosion. However, these approaches lack
means to define and check architectural restrictions concerning plugin
dependencies, which is required for plugin-based software systems. In this
paper, we propose a domain-specific language called Dependency Constraint
Language (DepCoL) to facilitate the definition of constraints concerning plugin
dependencies. Using DepCoL, it is possible to define constraints affecting
groups of plugins, reducing the required specification effort, to formulate
constraints for specific plugins only and to refine constraints. Moreover, we
provide an Eclipse plugin, which checks whether the software system under
development is consistent with the modeled constraints. This enables a seamless
integration into the development process to effortless check consistency during
development of the software system. In this way, developers are informed about
dependency violations immediately and this supports developers in counteracting
architecture erosion.
