When modifying existing information systems, one might face some difficulties at best, a nightmare at worst. This is commonly caused by the Big Ball of Mud design anti-pattern, leading to “code that does something useful, but without explaining how”. To tackle this problem, Eric Evans suggests Domain-Driven Design (DDD) for the creation of new software systems. Having a model based on a shared language at its core, DDD helps to improve the understanding and thereby facilitates communication between the involved parties. As DDD was designed for new systems, the question naturally arises at this point, whether and how DDD-based architectures can be created from existing information systems. The application of DDD to an existing information system might result in benefits in communication and maintenance while minimizing development risks. To evaluate the feasibility, the existing Time Slot Management system of MERCAREON GmbH is used as a research object for this thesis.
To evaluate DDD for refactoring existing information systems, this work first extracts business knowledge from an existing information system. This knowledge is comprised of the used terms, supported operations and the data accessed by these operations. Based on this, DDD models are created both manually, and automatically to be used for refactoring towards an architecture with a domain model at its core. In order to automatically generate models, several transformation approaches are utilized, artifact-model transformations generate the initial DDD model, multiple model-model transformations transform the initial model into a more abstract DDD model, and model-artifact transformations ultimately generate source code based on the DDD model.
The approach has to be flexible enough to support continuous changes as the Time Slot Management system by MERCAREON is constantly maintained and improved. To handle the challenges arisen from continuous maintenance, a Java prototype for the creation of DDD models has been developed accordingly and is presented in this work as well. It not only supports the creation of the model but also helps to track and communicate the impact of changes on the model. Furthermore, bubble strategies, which are also suggested by Eric Evans, were evaluated as a strategy to evolve from an original architecture to one with a domain model at its core.
Based on a proof of concept dealing with a Live Yardview, a new view for the current Time Slot Management system implemented as a DDD style, the approach of this work shows promise for the evolution of an existing system towards a DDD-based one.
Evaluating Domain-Driven Design for Refactoring Existing Information Systems
Ulm University Ulm UniversityMA Abschlussvortrag, Hayato Hess, Ort: O27/5202, Datum: 18.05.2016, Zeit: 10:00 Uhr