Chapter 24. Aspect-Oriented Dependency ManagementMARTIN E. NORDBERG III As the profession of software engineering has matured, better and better means have been devised to manage the ever-increasing complexity of a typical software system, first by separating it into procedures, modules, classes, patterns of cooperating classes, and now introducing crosscutting aspects. However, there is a down side to the division of software into manageable pieces. The sheer number of classes can be daunting, and the dependencies between software modules must be carefully managed. Otherwise, you could end up with a system in which everything depends upon everything else. Such systems are "brittle"they break in unexpected ways when seemingly unrelated changes are made. Can aspect-oriented technologies not only improve the means for separating software into manageable pieces but also help to manage the dependencies between those pieces? This chapter explores the affirmative answer to that question. |