ABSTRACT
Custom House's new currency exchange system is integrated with a legacy system. After a few years of growth, the two systems were so intricately tangled that even small changes made in the integration layer would have unpredictable side effects. Refactoring on the integration layer was risky and time consuming. The situation called for a revolutionary redesign.
The solution was to introduce an anticorruption layer to isolate the two systems. This layer encapsulated the translation of conceptual objects and actions between the two systems, insulating the domain layer from knowing the existence of the other system. By freeing the domain layer from performing tasks that were only relevant to the other system, the anticorruption layer allowed additional external systems to be integrated without requiring any changes to the domain layer itself. Full implementation of an anticorruption layer reduced overhead of legacy integration from 30% of total development to 10%.
The biggest challenge in implementing the anticorruption layer is to control the complexity of translation work. This was managed in an innovative way: by building an object model reflecting the implicit model of the legacy system. Our experiences show that an external system need not be object-oriented for its model to be adequately abstracted, and this has proven to be the key to a clean and extensible translation.
- Eric Evans, Domain-Driven Design, Tackling Complexity in the Heart of Software, Addison-Wesley, 2003, ISBN 0-321-12521-5. Google ScholarDigital Library
- Ying Hu and Sam Peng, So We Thought We Knew Money, available from http://www.domaindrivendesign.org/practitioner_reports/hu_ying_2007_01.htmlGoogle Scholar
Index Terms
- IAnticorruption: a domain-driven design approach to more robust integration
Recommendations
Using domain-driven design to evaluate commercial off-the-shelf software
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsPurchasing a Commercial-Off-The-Shelf (COTS) package solution can be a complex and daunting task. Selecting and evaluating the right candidate is difficult, especially when the solution aims at the heart of company business. The company's competitive ...
A semantic-based approach to component retrieval
There continues to be a great deal of pressure to design and develop information systems within a short period of time. This urgency has reinvigorated research on software reuse, particularly in component based software development. One of the major ...
The architecture of client's application: structuring methods
CEE-SECR '17: Proceedings of the 13th Central & Eastern European Software Engineering Conference in RussiaThe article will be useful for colleagues who are engaged in the development of client applications for Windows and other operation systems. The author proposes to begin designing a software system not from building a domain model and not from ...
Comments