Einar Landre is a practicing software professional with 25 years' experience as a developer, architect, manager, consultant, and author/presenter.
Currently for StatoilHydro's Business Application Services, he engages in business-critical application development, architecture reviews, and software process improvement activities, specializing in SOA, domain-driven design, use of multi-agents and design of large-scale, networked, software-intensive systems.
SINCE LORD NELSON DESTROYED the French and Spanish fleet at Trafalgar in 1805, "divide and conquer" has been the mantra for dealing with complex and difficult problems. A more familiar term with the same intent is separation of concern. From separation of concern we get encapsulation, and from encapsulation we get boundaries and interfaces.
From an architect's point of view, the hard part is to find the natural places to locate boundaries and define the appropriate interfaces needed to build a working system. This is especially difficult in large enterprise systems, often characterized by few natural boundaries and intertangled domains. In this situation, old wisdom such as "Minimize coupling, maximize cohesion" and "Do not slice through regions where high rates of information exchange are required" provide some guidance, but they say nothing about how to ...