Abstract
The harbingers of ultralarge systems are indeed emerging, although their elements seem contradictory to the "ultralarge" concept. ULS design will have to move beyond computer science and electrical and electronics engineering-based methodologies to include building blocks from seven major research areas: human interaction; computational emergence; design; computational engineering; adaptive system infrastructure; adaptable and predictable system quality; and policy, acquisition, and management. We need to integrate these more novel approaches with the tools and techniques of traditional software engineering, especially with regard to formal methods and to dealing with predictability and uncertainty in high-integrity software systems. Our view is not so much that we are 'redefining' software engineering but rather that we're looking to extend established software engineering tools and techniques in novel and useful ways.