Preventing software architecture erosion through static architecture conformance checking
A survey of architecture description languages