Manually ensuring that the implementation of a software system is consistent with the software architecture is a laborious and error-prone task.
a variety of approaches towards automated consistency checking have been developed to counteract architecture erosion.