Code Quality & Java 22 May 2007 09:44 pm
Enforcing Package Dependencies (Part 1)
While a code base remains small with only a few smart individuals responsible for changes, it can be relatively easy to maintain the architectural qualities. A project does not need to grow by much before the maintainability, flexibility, and modularity of the system can become hard to retain.
The cohesive aspects of an application’s architecture tend to be reflected in its package structure. Analyzing and enforcing package dependencies can be a very useful technique to assist in maintaining the architectural traits. Understanding the package dependencies also assists with understanding the impact of code changes as they occur.
I am a big advocate for automating everything I possibly can. Ensuring code quality is no exception. Over the next few blog entries, I plan to discuss a number of approaches I have encountered for automating the enforcement package dependencies.
JDepend, Japan, and Macker are all tools that can be incorporated into an ant build and be used for enforcing package dependencies. Each of these tools have their pros and cons that I will discuss in detail over the next few postings.



