Abstract
Our world is driven by software, from everything we do online to the cars we drive. The role software plays is so large that you could say that every company is a software company. Companies have to partake in this transformation to a software-driven world but face various challenges in
... read more
doing so. There is a scarcity of software engineers which only appears to be increasing. Next to that, software development is complex and requires a joint effort of software engineers and domain experts. Finally, when the software is developed, the process does not stop. Companies have to constantly update their software to comply with changing wishes and demands. A recent development, low-code platforms, could be the solution to these challenges. Through the introduction of higher-level abstractions, such as domain-specific models, these platforms enable professionals without specific software development training to develop software systems. Enabling untrained professionals to participate in the software development process not only means that fewer trained IT personnel are needed, but that the business side is also automatically more involved in the development of the software. Low-code platforms have to live up to certain expectations to be successful. They have to support the development of modern, cloud-based applications that are available from every device. Not only are they accessible for humans, we expect these applications to be open for communication with other systems. Finally, maintaining software should be as easy as creating new software. This dissertation presents, in three parts, the evolution of low-code platforms and how they support the new generation of digital companies. In each of these parts the software architect and his role in the development of low-code platforms stands central. The first part discusses software evolution in event sourced systems. Event sourcing is a form of event-driven architecture that offers a lot of benefits for the software system by storing every change as an event. An increased flexibility in making future changes is gained because the full history of a system is stored. Various evolution techniques are presented that can be applied to confront the evolution challenges experienced by software architects. API management in software ecosystems is central in the second part. Modern software systems are open, which means that external parties can connect with a software system to exchange data. Through these connections software ecosystems can grow. These connections are created APIs. Low-code platforms have to support the management processes and enable them for citizen developers to be successful. The API-m-FAMM gives software architects a tool to evaluate and plan the improvement of their API management capabilities. Evolution supporting architecture is the third and final part. Changes that are made within a low-code platform have an impact on other parts of the platform or even on complementors. The analysis of the impact is difficult because of the higher-level abstractions offered by low-code platforms. The Impact Analysis for Low-Code Development Platforms framework allows software architects to design the process of software evolution, making sure that companies stay in control of their systems.
show less