ISR Distinguished Speaker

Steve Easterbrook

Professor, Department of Computer Science
Academic Director, Bell University Labs
“Scale Changes Everything: Understanding the Requirements for Systems of Systems”
Friday, November 30, 2007 - 2:00pm to 3:30pm

Faculty Host: Susan Elliott Sim, ISR

RSVP: 

Email RSVP required to Jessica Garcia at jessicmg@ics.uci.edu by Monday November 26, 2007.

Location: 
UCI Calit2 Auditorium (building #325)
Cost: 

No cost to attend.

Directions: 

Click here for directions and parking information.

Abstract: 

Software technology now penetrates almost every aspect of our lives in complex ways. The reality of 21st century software development is that software itself is but one part of a complex system-of-systems that includes a broad technological infrastructure along with a wide set of human activities. The technological systems and the human activity systems have a symbiotic relationship - each shapes the other in complex ways, such that neither can be understood in isolation. A recent report from the SEI on Ultra-Large Scale (ULS) Systems accurately characterized the nature of these systems-of- systems: they have no centralized control; experience normal failures and continual evolution of heterogeneous elements; and their requirements are inherently conflicting, diverse and often unknowable. For design purposes, the boundary between people and software disappears - design is as much about shaping the human activities as it is about constructing the software.

In this talk, I will argue that these challenges are now true of most software development. The engineering approaches we use today for software development only work when we take a very narrow view of the requirements, as well-defined sets of features and interfaces, which can be fully specified. This approach helps us to build components that conform (in a narrow sense) to their specifications. But we cannot tell in advance whether they will be any use in any of the many different systems-of-systems in which they may be deployed. Our engineering techniques rapidly break down when we attempt to scale up our design ambitions. The result is a growing gap between expectations and practice in the software industry. We can build very reliable software at the small scale, for tightly constrained problems. But we cannot build reliable software for complex socio- technical domains.

To make progress on these challenges we need to abandon the idea that we can write complete, consistent specifications. Instead, we need to capture the multiple, conflicting requirements for each software component that arise from its different contexts of use. We need to be able to express our partial understandings of the broader systems- of-systems in which our components will be deployed. And we need to be able to reason about the properties, and end-to-end behaviours of these systems, without resolving all the unknowns and inconsistencies in our models. I will end the talk with a survey of recent research in requirements engineering that tackles these challenges. In particular I will discuss techniques for managing large, evolving collections of fragmentary requirements models, and show how it is possible to tolerate inconsistency when we reason about the properties of these models.

About the Speaker: 

Professor Easterbrook received his Ph.D. (1991) in Computing from Imperial College in London (UK) on the topic of computer-supported negotiation. His first faculty position was in Computer Science and Artificial Intelligence at the School of Cognitive and Computing Science, University of Sussex in Brighton, UK (1990-1995). From 1995 to 1999, he led the research team at NASA's Independent Verification and Validation (IV&V) Facility in West Virginia, where he investigated techniques for software verification on the independent assessment and IV&V contracts for the Space Shuttle Flight Software, the International Space Station, and the Earth Observation System, as well as several planetary probes. He moved to the University of Toronto in 1999, where he teaches courses in Requirements Engineering and Empirical Research Methods in Software Engineering. His research interests lie at the intersection of formal software systems modeling, and socio-cognitive aspects of team interaction, including topics such as multi-stakeholder requirements negotiation, model management, and reasoning with inconsistent information. He served as general chair for the IEEE International Symposium on Requirements Engineering (RE) in 2001, program chair for the IEEE International Conference on Automated Software Engineering (ASE) in 2006, and Program Coordinator for the ACM/IEEE International Conference on Software Engineering (ICSE) in 2007. He has served on the program committees for many conferences and workshops in Requirements Engineering and Software Engineering, and is a member of the editorial boards of the Journal of Automated Software Engineering and the Requirements Engineering Journal.