Puck is an architecture refatoring tool focusing on dependency breaking. It dynamically generates a dependency graph viewable in an interactive UML-like format or using our graph explorer. It currently target only java programs.
Weland is a language interpreted by Puck to express coupling constraints. You can specify for each element of your program by whom it is accessible. You can easily browse through the constraint violations using filters based on violations sources or targets.