SearchWiki
Heuristics.RecentChanges
Edit Page
Page Revisions
Home
Design Patterns
Heuristics
Software Development
Software Process


Patterns
TheIntroduction LogicalDesign PhysicalDesign PatternFoundations GuidelinesAndMyths ReferenceImplementation DependencyPatterns UsabilityPatterns ExtensibilityPatterns MaintenancePatterns AntiPatterns UtilitiesAndTools

AllPatterns

As developers of object-oriented software systems, we often devote valuable resources and energy to creating a resilient and robust architecture. We know that a flexible architecture ensures consistency throughout the system, and helps the system accommodate change as the system grows into the future. In fashioning these flexible structures, we typically devote the majority of our effort to the class relationships within our system.

Of course, some time is also devoted to defining our system's package structure. However, in designing the package structure, little time is actually spent designing the relationships between packages. Instead, packages are typically viewed as class containers. The reality of architecture, however, is that package relationships serve as the foundation of many architectural patterns. Simply understanding the facts behind an architectural pattern doesn't bode well in customizing those patterns to fit an application context. Instead, understanding some more fundamental concepts, we are able to express our own variations of many powerful architectural patterns.

These package coupling heuristics offer guidance when designing our package relationships. In addition, we'll explore how these heuristics serve as the foundation of many architectural patterns we have likely become accustomed to using.

Edit Page - Page Revisions - WikiHelp - SearchWiki - RecentChanges
Page last modified on February 15, 2004, at 08:34 PM