The ULS report was written for its sponsor, the US Department of Defense. Therefore it mentions some words and concepts that could be touchy for some readers. In the revised executive summary below, I've removed or rewritten those parts that refer to national defense, because the important thrust of the report is to examine issues of scale and complexity that software systems in any arena will face as time goes on.
For transparency, places where I've rewritten the text are typeset in italics.
Achieving the goals of many software systems depends on increasingly complex systems characterized by thousands of platforms, sensors, decision nodes, effectors, and users connected through heterogeneous wired and wireless networks. These systems will push far beyond the size of today’s systems and systems of systems by every measure: number of lines of code; number of people employing the system for different purposes; amount of data stored, accessed, manipulated, and refined; number of connections and interdependencies among software components; and number of hardware elements. They will be ultra-largescale (ULS) systems.
The sheer scale of ULS systems will change everything. ULS systems will necessarily be decentralized in a variety of ways, developed and used by a wide variety of stakeholders with conflicting needs, evolving continuously, and constructed from heterogeneous parts. People will not just be users of a ULS system; they will be elements of the system. Software and hardware failures will be the norm rather than the exception. The acquisition of a ULS system will be simultaneous with its operation and will require new methods for control. These characteristics are beginning to emerge in today’s [elided] systems of systems; in ULS systems they will dominate. Consequently, ULS systems will place unprecedented demands on software acquisition, production, deployment, management, documentation, usage, and evolution practices.
Fundamental gaps in our current understanding of software and software development at the scale of ULS systems present profound impediments to the technically and economically effective achievement of the goals of many software systems. These gaps are strategic, not tactical. They are unlikely to be addressed adequately by incremental research within established categories. Rather, we require a broad new conception of both the nature of such systems and new ideas for how to develop them. We will need to look at them differently, not just as systems or systems of systems, but as socio-technical ecosystems. We will face fundamental challenges in the design and evolution, orchestration and control, and monitoring and assessment of ULS systems.
These challenges require breakthrough research.
We propose a ULS systems research agenda for an interdisciplinary portfolio of research in at least the following areas:
The proposed research does not supplant current, important software research but rather significantly expands its horizons. Moreover, because we are focused on systems of the future, we have purposely avoided couching our descriptions in terms of today’s technology. The envisioned outcome of the proposed research is a spectrum of technologies and methods for developing these systems of the future, with national-security, economic, and societal benefits that extend far beyond ULS systems themselves.
[several paragraphs elided]