This website acts as a repository that provides reusable method building blocks for model-driven software modernization methods.

have become a critical asset for most companies as daily business often depends on them. However, just as anything else, information systems are aging over time. This aging process can have various effects on the system like its architectural integrity becoming violated, its documentation becoming outdated or its technological environment becoming obsolete. In each case, the aging process ultimately results in the loss of evolvability, preventing the modification of the information system to meet new or changed requirements. If the system is still valuable for ongoing business, it has become a legacy system.

is a commonsense solution to dealing with a legacy system, since redevelopment is considered risky and error-prone. A modernization comprises a transformation, i.e., migration, of the system into a new environemnt in order to preserve the investment made. Thereby, the data and functionality of the system are preserved and it regains its evolvability. Just like software development, software modernization is complex and needs to be carried out systematically in order to reduce the risk of a failure. In other words, a modernization needs to be guided by a corresponding method.

describe the activities to perform, artifacts to generate, roles to involve or tools to use in order to systematically modernize a legacy system. While various modernization methods have been proposed and applied over time, model-driven modernization methods offer a new and promising research direction to follow. The general idea is to use models on different levels of abstraction which are automatically transformed into each other. The raise of the level of abstraction enables to truly adapt a system to a new environment, while still automating large parts of the overall transformation.

enables to adapt a method for the situation at hand. It is commonly accepted that performing situational method engineering is essential in order to derive an efficient and effective method. While different techniques to adapt methods exist, we propose to follow a pattern-based development approach which provides a high degree of flexibility and control. Flexibility is provided since methods are developed by assembling predefined method building blocks, while control refers to an associated method engineering process which guides the development.

can be considered as a repository that provides reusable method building blocks. Most importantly, we provide a set of reusable method patterns which encode model-driven software modernization strategies. The patterns have been observed as part of modernization projects that we performed, mainly in an industrial context. Currently, we distinguish two types of projects, namely a platform modernization and a frontend modernization. If you are interested in this research direction, if you want to discuss the patterns or if you want to contribute own patterns, we encourage you to contact us.