The SEI helps advance software engineering principles and practices and serves as a national resource in software engineering, computer security, and process improvement. The SEI works closely with defense and government organizations, industry, and academia to continually improve software-intensive systems. Its core purpose is to help organizations improve their software engineering capabilities and develop or acquire the right software, defect free, within budget and on time, every time.
The scale and complexity of systems is increasing dramatically. Ultra-large-scale (ULS) systems are systems of unprecedented scale in some of these dimensions:
lines of code
amount of data stored, accessed, manipulated, and refined
number of connections and interdependencies
number of hardware elements
number of computational elements
number of system purposes and user perception of these purposes
number of routine processes, interactions, and “emergent behaviors”
number of (overlapping) policy domains and enforceable mechanisms
number of people involved in some way
How are ULS systems different?
The sheer scale of ULS systems changes 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 may appear in today’s systems and systems of systems, but in ULS systems, they will dominate. Consequently, ULS systems will place unprecedented demands on software acquisition, production, deployment, management, documentation, usage, and evolution practices.
The ULS systems notion has inspired us to ask new questions about software-reliant systems:
What new quality attributes arise due to scale?
What types of analyses are required to understand and design (at all levels) systems at scale?
Are new architecture design principles needed?
What new strategies are needed to control, predict, and bound the behavior of systems at scale?
The SEI strives to answer these questions and to develop principles and technology to understand, control, and bound the behavior of systems that exhibit characteristics of ULS systems. Specifically, we focus on socio-adaptive systems and cyber-physical systems.
The book Ultra-Large-Scale Systems: The Software Challenge of the Future is the product of a 12-month study of ULS systems software led by the SEI in 2005-2006. The study brought together experts in software and other fields to examine the consequences of rapidly increasing scale in software-reliant systems. The report detailed a broad, multidisciplinary research agenda for developing the ULS systems of the future.
In 2006, Ultra-Large-Scale Systems: The Software Challenge of the Future documented the results of a study on ultra-large distributed systems. What has happened since the study was published? This talk shares a perspective on the post-study reality.