It takes more than a group of keen developers coding like mad to create a
software system that meets requirements yet is robust to change. As new
requirements are discovered, new code must be written and existing code
maintained. Without careful consideration of code structure, packaging, and
component dependencies, a large system can quickly turn into a "big ball of
mud."
Managing dependencies between components becomes critical if a software team
is to maintain the level of agility required in today's environment, where
customers are demanding increasingly complex business systems delivered
faster and cheaper. If component and package dependencies are not well
managed, the code base becomes fragile and unmaintainable, a common cause of
a software project failure.
Currently, tool support to help developers and architects prevent system
degradation is poor. The ty... (more)