Below are the first 10 and last 10 pages of uncorrected machine-read text (when available) of this chapter, followed by the top 30 algorithmically extracted key phrases from the chapter as a whole.
Intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text on the opening pages of each chapter.
Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.
Do not use for reproduction, copying, pasting, or reading; exclusively for search engines.
OCR for page 1
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
OCR for page 2
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 challenges1 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
1See, 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.
OCR for page 3
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.