Recommendations for Architects for Technology Decisions
Taking the right decisions is a major challenge for architects during the initial design phase and especially the ongoing evolution of a software system. Wrong decisions result in high effort and costs in case they need to be revised. A large number of the decisions target at the selection of suitable technologies. On the one hand, continuous technological progress and changing requirements lead to new technologies come into the market. On the other hand, outdated technologies and missing features demand a replacement. A great many of technologies, the analysis of their dependencies and the lack of knowledge about specific benefits and drawbacks even hamper the selection, especially if different technologies a quite similar. This uncertainty often makes architects to opt for technologies they already have in mind, which increases the risk of poor decisions.
The research project aims to support the architect in taking technology design decisions during software evolution. To achieve this, we propose three major steps. Firstly, we analyze existing software systems to provide an overview of current technologies and features. This will be based on the identification of features in the source code. Secondly, to suggest potential alternatives for a technology being replaced, we analyze the features, prerequisites and dependencies and build up a knowledge base allowing for reuse and efficient matching of solutions. Thirdly, we provide guidance for the replacement of a technology to ease the migration process.
University research project, PhD research project
Duration: ongoing since April 2013