Report Open Access
In the words of the web’s inventor Marc Andreessen, “software is eating the world”. Ever more products, services, and entire industries, existing ones as well as new, are running on software. This report, based on studies surveying the evolution of technology as well as journal articles, conference papers, and talks covering the future of software engineering, argues that significant investment in software engineering research can help Europe stay on top and even lead a world that is increasingly defined and shaped by software.
The need for targeted research in software engineering is prompted by developments in three broad areas. First, the computing landscape is changing from top to bottom. Cloud computing and infrastructure as code allows the radical rethinking of computing systems; universal memory obsoletes current memory hierarchies; multicore architectures change how energy efficiency and performance are to be obtained; while big data, machine learning, and natural user interfaces open new possibilities for computing applications. Software lies at the heart of all these changes. Second, seven software-driven vertical application domains are reshaping entire industries and society as a whole. These domains are autonomous vehicles, massive open online courses, open intellectual property, the Internet of Things, life sciences, 3D printing, financial technology, and Industry 4.0. Third, the computing landscape’s technological trends and the changes in the vertical application domains, give rise to several critical crosscutting software engineering challenges. These challenges involve the taming of the immense scale and complexity of the required software through suitable tools and abstractions, data analytics, novel processes and collaboration mechanisms, as well as the integration of software development with operations. On top of these, return with a vengeance known challenges regarding security, privacy, reliability, and environmental sustainability.
Software engineering research in the areas of software construction, software design, and software engineering process must be funded as a specific priority, so that it can act as a foundation for the robust evolution of computing and its applications. The findings of such research, whether empirical, such as the effect of code size, testing, or reviews on software quality, or technological, such as static program analysis tools and model checkers, increase the IT industry’s efficiency and benefit society through more and higher quality software. In contrast, restricting software engineering research to the incidental support that takes place within the development of applications, is like trying to build a national highway network by patching together cobblestone paths of small villages. Such an approach is ineffective and drags down the economy.
Countries around the globe adopt diverse approaches to lead in the area of software engineering. In Europe, Germany and the UK target funding specifically to software engineering research. In the US the focus is toward building scientific and engineering software infrastructures, in China research is centered on data-driven software technologies, while in India private funding for software engineering research aims to serve the requirements of a large software development industry.
Europe can build on its world-class pockets of excellence in specific areas of economic activity, such as automotive manufacturing, engineering, aerospace technology, financial services, and luxury goods marketing. Thus, focused, significant, and effective research funding in the area of software engineering can help the development of new methods, tools, architectures, systems, business models, processes, and applications that can be instrumental in the establishment of Europe as a center for the rise of a software-run economy.