The design guideline avoid dependency cycles among modules was first alluded to by Parnas in 1978. Many tools have since been built to detect cyclic dependencies among a program’s organisational units, yet we still see real applications riddled with large dependency cycles. Our solution to this problem is to proactively check for dependency cycles as a developer writes code. In this way a cycle can be identified and eliminated the moment any fragment of code is written that induces one. This approach is analogous to a well-known manufacturing quality assurance technique known as poka-yoke. We demonstrate the feasability our ‘realtime checking’ approach via an Eclipse plugin we have built called JooJ.
Hayden Melton, Ewan D. Tempero