Below is the uncorrected machine-read text of this chapter, intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text of each book. Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.
1 Introduction and Overview T his report summarizes the workshop on uncertainty at scale in the context of software-intensive systems producibility, held January 17, 2007, in Washington, D.C., under the auspices of the National Research Councilâs (NRCâs) Committee on Advancing Software-Intensive Systems Producibility. The workshop was structured to gather inputs and insights from the commercial and military software and system develop- ment communities looking at the current and future challenges that sur- round engineering uncertainty, system complexity, and scale. The purpose of the workshop was to inform the committee as it conducts its study and to stimulate discussion of these issues in the community. This workshop summary, which does not contain findings or recommendations from the committee, is presented in the spirit of continuing that discussion. As they develop unprecedented systems, software engineers must address many kinds of uncertainty in the course of requirements assimi- lation, architecture, design, development, deployment, and ongoing use of large-scale software systems. For defense systems, the operating envi- ronment, coalition-driven requirements, adversary capabilities, security and safety requirements, and so on also pose significant uncertainty. The increasing scale and complexity of systems, along with the compelling need to interconnect them, make the challenges of uncertainty at scale increasingly formidable and of particular significance for the Depart- ment of Defense (DoD). Exacerbating the situation, requirements for DoD software-intensive systems are emerging and/or not static, and the DoD has not enough internal software engineering expertise. In the context of
SOFTWARE-INTENSIVE SYSTEMS AND UNCERTAINTY AT SCALE this workshop, âscaleâ refers not just to gross scale (e.g., the numbers of instructions or lines of code), but also to the extent of complexity, inter- connection, and interdependence. âUncertaintyâ refers to the full range of engineering risks, including the rates at which requirements and features and the operating and technical environments are changing. The brief- ings for this workshop examined these and other challenges regarding engineering uncertainty, system complexity, and scale from a range of perspectives. Several recent reports that highlight these challenges suggest that the scale and complexity of software-intensive systems introduce fundamen- tal new challenges and require augmentation of existing approaches by software practices and technologies that more explicitly address the chal- lenges. Challenges of uncertainty and scale are faced in large-scale enter- prise systems of all kinds but are particularly demanding in defense sys- tems. Technical factors contributing to heightened challenges include the relative lack of precedent in both requirements and engineering designs, as well as the need for high levels of quality, security, and safety in an environment with well-resourced adversaries. Institutional factors include complexities resulting from the particulars of DoD management and pro- curement. As a result, defense requirements, although having some com- monality with those of other large-scale enterprises and infrastructures, may outpace those of most enterprise and commercial projects. Workshop participants explored the various dimensions of these chal- lenges, focusing particularly on software engineering and the manage- ment of uncertainties in requirements, operating environment, and imple- mentation. They were invited to examine the range of problems inherent in building large-scale systems and to explore both the current state of software engineering knowledge regarding potential incremental solu- tions to problems of scale as well as areas where fundamental research is needed to bridge the gap between current practice and the revolutionary challenges offered by future systems. Discussions at the workshop took place with an eye to emerging defense needs but in a way that was recep- tive to lessons to be gleaned from commercial and enterprise-level efforts. Case studies and examples provided at the workshop were explored to assess promising ideas and directions and to identify the fundamental research problems that remain. Questions posed to participants included these: Are there precedented See, for example, Software Engineering Institute (2006), Ultra-large Scale Systems: The Software Challenge of the Future, which noted that current abstractions fail for the levels of complexity that systems require today. Also see Defense Science Board (2000), Task Force on Defense Software Report, which noted, among other things, that strengthening the technology base to rapidly adapt to fluid circumstances is important and that the complexity of DoD software applications is increasing more than linearly.
INTRODUCTION AND OVERVIEW architectural concepts from existing systems that can provide a basis for making decisions about the architecture for systems where constant evolution and change are the norm? Which best and emerging practices extant today are likely to be beneficial? Which technological approaches would support large-scale decentralized design processes? Which specific existing approaches show the most potential? What problems will indus- try likely solve on its own? What problems require the stimulus of R&D investment? Participants were also asked to consider areas of research that are likely to yield fruitful outcomes and how DoD, in particular, can both stimulate and assimilate innovative ideas, whether they be advanced practices from industry or ideas from the research laboratory. Each succeeding section describes some of the main themes arising from a workshop session. The themes are not conclusions or findings of the committee; they are ideas extracted from the discussions during each session, drawn not only from the presentations of the speakers but also from the discussions among all the participants (committee, speakers, and attendees) that seem to form the gist of the session. Several items should be kept in mind when reading this report. The workshop focused on a particular subset of areas that the committee believed would provide a basis for its work during the next year. The committee plans to gather input on other topics, including through another public workshop; feed- back and additional input from readers of this report are welcome. Also, in the interests of timely dissemination, the committee elected to defer elaboration and analysis of the workshop discussion and instead to offer here a more succinct summary focused on reporting the issues discussed. Accordingly, this report does not provide a freestanding overview of the current state of challenges in software development or large-scale systems producibility. Moreover, for readability and to promote understanding, background material on some of the topics raised has been interspersed with the record of presentations and discussions. Presentersâ views var- ied, depending on their own experiences and expertise; some speakers provided detailed information while others offered higher-level, more abstract presentations. For these reasons and because some of the dis- cussion amounted to brainstorming, this summary may contain internal inconsistencies that reflect the wide range of views offered by the speakers and other participants.