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 62
Software for Networked
Information Systems
INTRODUCTION
Background
Computing power is becoming simultaneously cheaper and more dis-
persed. General-purpose computers and access to global information
sources are increasingly commonplace on home and office desktops. Per-
haps most striking is the exploding popularity of the World Wide Web. A
Web browser can interact with any Web site, and Web sites offer a wide
variety of information and services. A less visible consequence of cheap,
dispersed computing is the ease with which special-purpose networked
information systems (NISs) can now be built.
An NIS built to support the activities of a health care provider, such
as a medium-sized health maintenance organization (HMO) serving a
wide geographic area, is used as an illustration here and throughout this
chapter. HMO services might include maintenance of patient records,
support for administration of hospitals and clinics, and support for equip-
ment in laboratories. The NIS would, therefore, comprise computer sys-
tems in hospital departments (such as radiology, pathology, and phar-
macy), in neighborhood clinics, and in centralized data centers. By
integrating these individual computer systems into an NIS, the HMO
management would expect both to reduce costs and to increase the qual-
ity of patient care. For instance, although data and records such as
laboratory test results, x-ray or other images, and treatment logs previ
62
OCR for page 63
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
63
ously might have traveled independently, the information now can be
transmitted and accessed together.
In building an NIS for an HMO, management is likely to have chosen
a "Web-centric" implementation using the popular protocols and facili-
ties of the World Wide Web and the Internet. Such a decision would be
sensible for the following reasons:
· The basic elements of the system, such as Web servers and brows-
ers, can now be commercial off-the-shelf (COTS) components and, there-
fore, are available at low cost.
· A large, growing pool of technical personnel is familiar with the
Web-centric approach, so the project will not become dependent on a
small number of individuals with detailed knowledge of locally written
software.
· The technology holds promise for extensions into consumer tele-
medicine, whereby patients and health care providers interact by using
the same techniques as are commonly used on the rest of the Internet.
Clearly, the HMO's NIS must exhibit trustworthiness: it must engen-
der feelings of confidence and trust in those whose lives it affects. Physi-
cians must be confident that the system will display the medical record of
the patient they are seeing when it is needed and will not lose informa-
tion; patients must be confident that physician-entered prescriptions will
be properly transmitted and executed; and all must be confident that the
privacy of records will not be compromised. Achieving this trustworthi-
ness, however, is not easy.
NIS trustworthiness mechanisms basically concern events that are
not supposed to happen. Nonmalicious users living in a benign and
fault-free world would be largely unaffected were such mechanisms re-
moved from a system. But some users may be malicious, and the world is
not fault free. Consequently, reliability, availability, security and all other
facets of trustworthiness require mechanisms to foster the necessary trust
on the part of users and other affected parties. Only with their failure or
absence do trustworthiness mechanisms assume importance to a system's
users. Users seem unable to evaluate the costs of not having trustworthi-
ness mechanisms except when they experience actual damage from inci-
dents (see Chapter 6 for an extended discussion). So, while market forces
can help foster the deployment of trustworthiness mechanisms, these
forces are unlikely to do so in advance of directly experienced or highly
publicized violations of trustworthiness properties.
Although the construction of trustworthy NISs is today in its infancy,
lessons can be learned from experience in building full-authority and
other freestanding, high-consequence computing systems for applications
OCR for page 64
64
TRUST IN CYBERSPACE
such as industrial process control and medical instrumentation. In such
systems, one or more computers directly control processes or devices
whose malfunction could lead to significant loss of property or life. Even
systems in which human intervention is required for initiating potentially
dangerous events can become high-consequence systems when human
users or operators place too much trust in the information being dis-
played by the computing system. To be sure, there are differences be-
tween NISs and traditional high-consequence computing systems. An
intent of this chapter is to identify those differences and to point out
lessons from high-consequence systems that can be applied to NISs, as
well as unique attributes of NISs that will require new research.
The Role of Software
Software plays a major role in achieving the trustworthiness of an
NIS, because it is software that integrates and customizes general-pur-
pose components for some task at hand. In fact, the role of software in an
NIS is typically so pervasive that the responsibilities of a software engi-
neer differ little from those of a systems engineer. NIS software develop-
ers must therefore possess a systems viewpoint,2 and systems engineers
must be intimately familiar with the strengths (and, more importantly,
the limitations) of software technology.
With software playing such a pervasive role, defects can have far-
reaching consequences. It is notoriously difficult to write defect-free soft-
ware, as the list of incidents in, for example, Leveson (1987) or Neumann
(1995) confirms. Beyond the intrinsic difficulty of writing defect-free soft-
ware, there are constraints that result from the nature of NISs. These
constraints derive from schedule and budget; they mean that a software
developer has only limited freedom in selecting the elements of the soft-
ware system and in choosing a development process:
· An NIS is likely to employ commercial operating systems, pur-
chased "middleware," and other applications, as well as special-purpose
code developed specifically for the NIS. The total source code size for the
system could range from tens to hundreds of millions of lines. In this
setting, it is infeasible to start from scratch in order to support trustwor-
thiness.
This is a particularly dangerous state of affairs, since designers may assume that system
operation is being monitored, when in fact it is not (Leveson, 1995~.
20nce succinctly stated as, "You are not in this alone." That is, that you need to consider
not only the narrow functioning of your component but also how it interacts with other
components, users, and the physical world in achieving system-level goals. Another aspect
of the "systems viewpoint" is a healthy respect for the potential of unexpected side effects.
OCR for page 65
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
65
· Future NISs will, of necessity, evolve from the current ones. There
is no alternative, given the size of the systems, their complexity, and the
need to include existing services in new systems. Techniques for support-
ing trustworthiness must take this diversity of origin into account. It
cannot be assumed that NISs will be conceived and developed without
any reuse of existing artifacts. Moreover, components reused in NISs
include legacy components that were not designed with such reuse in
mind; they tend to be large systems or subsystems having nonstandard
and often inconvenient interfaces. In the HMO example, clinical laborato-
ries and pharmacies are likely to have freestanding computerized infor-
mation systems that exemplify such legacy systems.
· Commercial off-the-shelf software components must be used to
control development cost, development time, and project risk. A com-
mercial operating system with a variety of features can be purchased for a
few hundred dollars, so development of specialized operating systems is
uneconomical in almost all circumstances. But the implication is that
achieving and assessing the trustworthiness of a networked information
system necessarily occur in an environment including COTS software
components (operating systems, database systems, networks, compilers,
and other system tools) with only limited access to internals or control
over their design.
· Finally, the design of NIS software is likely to be dictated at least,
in part by outside influences such as regulations, standards, organiza-
tional structure, and organizational culture. These outside influences can
lead to system architectures that aggravate the problems of providing
trustworthiness. For example, in a medical information system, good
security practices require that publicly accessible terminals be logged off
from the system after relatively short periods of inactivity so that an
unauthorized individual who happens upon an unattended terminal can-
not use it. But in emergency rooms, expecting a practitioner to log in
periodically is inconsistent with the urgency of emergency care that
should be supported by an NIS in this setting.
Fortunately, success in building an NIS does not depend on writing
software that is completely free of defects. Systems can be designed so
that only certain core functionality must be defect free; defects in other
parts of the system, although perhaps annoying, become tolerable be-
cause their impact is limited by the defect-free core functionality. It now
is feasible to contemplate a system having millions of lines of source code
and embracing COTS and legacy components, since only a fraction of the
code has to be defect free. Of course, that approach to design does de-
pend on being able to determine or control how the effects of defects
propagate. Various approaches to software design can be seen as provid
OCR for page 66
66
TRUST IN CYBERSPACE
ing artillery for attacking the problem, but none has proved a panacea.
There is still no substitute for talented and experienced designers.
Development of a Networked Information System
The development of an NIS proceeds in phases that are similar to the
phases of development for other computerized information systems:
· Decide on the structure or architecture of the system.
· Build and acquire components.
· Integrate the components into a working and trustworthy whole.
cat r
The level of detail at which the development team works forms a
V-shaped curve. Effort starts at the higher, systems level, then dips down
into details as individual software components are implemented and
tested, and finally returns to the system level as the system is integrated
into a cohesive whole.
Of the three phases, the last is the most problematic. Development
teams often find themselves in the integration phase with components
that work separately but not together. Theoretically, an NIS can grow by
accretion, with service nodes and client nodes being added at will. The
problem is that (as illustrated by the Internet) it is difficult to ensure that
the system as a whole will exhibit desired global properties and, in par-
ticular, trustworthiness properties. On the one hand, achieving a level of
connectivity and other basic services is relatively easy. These are the
services that general-purpose components, such as routers, servers, and
browsers, are designed to provide. And even though loads on networks
and demands on servers are hard to predict, adverse outcomes are readily
overcome by the addition or upgrade of general-purpose components.
On the other hand, the consequences of failures or security breaches
propagating through the system are hard to predict, to prevent, and to
analyze when they do occur. Thus, basic services are relatively simple to
provide, whereas global and specialized services and properties espe-
ciallv those supporting trustworthiness are difficult to provide.
SYSTEM PLANNING, REQUIREMENTS,
AND TOP-LEVEL DESIGN
Planning and Program Management
A common first step in any development project is to produce a plan-
ning and a requirements document. The planning document contains
information about budget and schedules. Cost estimation and scheduling
OCR for page 67
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
67
are hard to do accurately, so producing a planning document is not a
straightforward exercise. lust how much time a large project will require,
how many staff members it will need (and when), and how much it will
cost cannot today be estimated with precision. The techniques that exist,
such as the constructive cost model (COCOMO) (Boehm, 1981), are only
as good as the data given them and the suitability of their models for a
given project. Estimation is further complicated if novel designs and the
implementation of novel features are attempted, practices common in
software development and especially common in leading-edge applica-
tions such as an NIS.
Although every attempt might be made to employ standard compo-
nents (e.g., operating system, network, Web browsers, database manage-
ment systems, and user-interface generators) in building an NIS, the ways
in which the components are used are likely to be sufficiently novel that
generalizing from past experiences with the components may be useless
for estimating project costs and schedules. For example, it is not hard to
connect browsers through a network to a server and then display what is
on the server, but the result does not begin to be a medical records system,
with its varied and often subtle trustworthiness requirements concerning
patient privacy and data integrity. The basic services are even farther
from a complete telemedicine system, which must be trusted to correctly
convey patient data to experts and their diagnoses back to paramedical
personnel. All in all, confidence in budget and schedule estimates for an
NIS, as for any engineering artifact, can be high only when the new sys-
tem is similar to systems that already have been built. Such similarity is
rare in the software world and is likely to be even rarer in the nascent field
of NIS development.
The difficulties of cost estimation and scheduling explain why some
projects are initiated with unrealistic schedules and assignments of staff
and equipment. The problem is compounded in commercial product
development (as opposed to specialized, one-of-a-kind system develop-
ment) by marketing concerns. For software-intensive products, early ar-
rival in the marketplace is often critical to success in that marketplace.
This means that software development practice becomes distorted to
maximize functionality and minimize development time, with little atten-
tion paid to other qualities. Thus, functionality takes precedence over
trustworthiness.
A major difficulty in project management is coping with ambiguous
and changing requirements. It is unrealistic to expect correct and com-
plete knowledge of requirements at the start of a project. Requirements
change as system development proceeds and the system, and its environ-
ment, become better understood. Moreover, software frequently is re-
garded (incorrectly) as something that can be changed easily at any point
OCR for page 68
68
TRUST IN CYBERSPACE
during development, and software change requests then become routine.
The effect of the changes, however, can be traumatic and lead to design
compromises that affect trustworthiness.
Another difficulty in project management is selecting, tailoring, and
implementing the development process that will be used. The Waterfall
development process (Pressman, 1986), in which each phase of the life
cycle is completed before the next begins, oversimplifies. So, when the
Waterfall process is used, engineers must deviate from it in ad hoc ways.
Nevertheless, organizations ignore better processes, such as the Spiral
model (Boehm, 1988; Boehm and DeMarco, 1997), which incorporates
control and feedback mechanisms to deal with interaction of the life-cycle
phases.
Also contributing to difficulties in project management and planning
is the high variance in capabilities and productivity that has been docu-
mented for different software engineers (Curtis, 1981~. An order-of-mag-
nitude variation in productivity is not uncommon between the most and
the least productive programmers. Estimating schedules, assigning man-
power, and managing a project under such circumstances are obviously
difficult tasks.
Finally, the schedule and cost for a project can be affected by unantici-
pated defects or limitations in the software tools being employed. For
example, a flawed compiler might not implement certain language fea-
tures correctly or might not implement certain combinations of language
features correctly. Configuration management tools (e.g., Rochkind, 1975)
provide other opportunities for unanticipated schedule and cost pertur-
bation. For use in an NIS, a configuration management tool not only must
track changes in locally developed software components but also must
keep track of vendor updates to COTS components.
None of the difficulties are new revelations. Brooks, in his classic
work The Mythical Man Month (Brooks, 1975), noted similar problems
more than two decades ago. It is both significant and a cause for concern
that this book remains relevant today as evidenced by the recent publica-
tion of a special 20th anniversary edition. The difficulties, however, be-
come even more problematic within the context of large and complex
NISs.
Requirements at the Systems Level
Background
There is ample evidence that the careful use of established techniques
in the development of large software systems can improve their quality.
Yet many development organizations do not employ techniques that have
OCR for page 69
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
69
been known for years to contribute to success. Nowhere is this refusal to
learn the lessons of history more pronounced than with respect to re-
quirements documents.
Whether an NIS or a simple computer game is being implemented, a
requirements document is useful. In special-purpose systems, it forms a
contract between the customer and the developer by stating what the
customer wants and thereby what the developer must build. In projects
aimed at producing commercial products, it converts marketing and busi-
ness objectives into technical terms. In the development of large systems,
it serves as a vehicle for communication among the various engineering
disciplines involved. And it also serves as a vehicle for communication
between different software engineers responsible for developing software,
as well as between the software engineers and those responsible for pre-
senting the software to the outside world, such as a marketing team.
It is all too common, however, to proceed with system development
without first analyzing and documenting requirements. In fact, require-
ments analysis and documentation are sometimes viewed as unnecessary
or misdirected activities, since they do not involve creating executable
code and are thought to increase time to market. Can system require-
ments not be learned by inspecting the system itself? Requirements de-
rived by such a posterior) inspections, however, run the risk of being
incomplete and inaccurate. It is not always possible to determine a poste-
riori which elements of an interface are integral and which are incidental
to a particular implementation. In the absence of a requirements docu-
ment, project staff must maintain a mental picture of the requirements in
order to respond to questions about what should or could be imple-
mented. Each putative requirements change must still be analyzed and
negotiated, only now the debate occurs out of context and risks overlook-
ing relevant information. Such an approach might be adequate for small
systems, but it breaks down for systems having the size and complexity of
an NIS.
The System Requirements Document
The system requirements document states in as much detail as pos-
sible what the system should (and should not) do. To be useful for de-
signers and implementers, a requirements document should be organized
as a reference work. That is, it should be arranged so that one can quickly
find the answer to a detailed question (e.g., What should go into an ad-
missions form?. Such a structure, more like a dictionary than a textbook,
makes it difficult for persons unfamiliar with the project to grasp how the
NIS is supposed to work. As a consequence, requirements documents are
supplemented (and often supplanted) with a concept of operations
OCR for page 70
70
TRUST IN CYBERSPACE
(Conops) that describes, usually in the form of scenarios (so-called "use
cases"), the operation of the NIS. A Conops for the example HMO system
might, for example, trace the computer operations that support a patient
from visiting a doctor at a neighborhood clinic, through diagnosis of a
condition requiring hospitalization, admission and treatment at the hos-
pital, discharge, and follow-up visits to the original clinic. Other scenarios
in the Conops might include home monitoring of chronic conditions,
emergency room visits, and so forth. The existence of two documents
covering the same ground raises the possibility of inconsistencies. When
they occur, it is usually the Conops that governs, because the Conops is
the document typically read (and understood) by the sponsors of the
project.
Review and approval of system requirements documents may in-
volve substantial organizational interaction and compromise when once-
independent systems are networked and required to support overall
organizational (as opposed to specific departmental) objectives. The com-
promises can be driven more by organizational dynamics than by techni-
cal factors, a situation that may lead to a failure to meet basic objectives
later on. That risk is heightened in the case of the trustworthiness require-
ments, owing (as is discussed below) to the difficulty of expressing such
requirements and compounded by the difficulty of predicting the conse-
quences of requiring certain features. In the case of the HMO system, for
example, advocates for consumer telemedicine might insist on home com-
puter access to the network in ways that are incompatible with maintain-
ing even minimal medical records secrecy in the face of typical hackers.
Anticipating and dealing with such a problem require predicting what
sorts of attacks could be mounted, what defenses might be available in
COTS products, and how attacks will propagate through an NIS whose
detailed design might not be known for several years. Making the worst-
case assumption (i.e., all COTS products are completely vulnerable and
all defenses must be mounted through the locally developed software of
the NIS) will likely lead to unacceptable development costs. Similar situ-
ations arise for other dimensions of trustworthiness, such as data integrity
or availability.
Notation and Style
Requirements documents are written first in ordinary English, which
is notorious for imprecision and ambiguity. Most industrial developers
do not use even semiformal specification notations, such as the SCR/A7
tabular technique (Heninger, 1980~. The principal reason for using natu-
ral language (in addition to the cynical observation that without ambigu-
ity there can be no consensus) is that, despite significant R&D investment
OCR for page 71
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
71
in the 1970s (Ross, 1977), no notation for system-level requirements has
shown sufficiently commanding advantages to achieve dominant accep
tance.
Finally, many if not most software developers are forced to lead
"unexamined lives." The demand for their services is so great that they
must move from one project to the next without an opportunity for reflec-
tion or consideration of alternatives to the approaches they used before.
The paradoxical result of this situation is that the process of developing
software, which has had revolutionary impact on many aspects of society
and technology, is itself quite slow to change.
One common strategy for coping with the problems inherent in natu-
ral language is to divide the requirements into two classes: criteria for
success (often called "objectives" or "goals") and criteria for failure (some-
times called "absolute requirements". The criteria for success can be a
matter of degree: situations where "more is better" without clear cutoff
points. The criteria for failure are absolute conditions, such as causing a
fatality, that render success in other areas irrelevant. In the HMO ex-
ample, a criterion for success might be the time needed to transfer a
medical record from the hospital to an outpatient facility quicker is bet-
ter, but unless some very unlikely delays are experienced, the system is
acceptable. A criterion for failure might be inaccessibility of information
about a patient's drug allergies. If the patient dies from an allergic reac-
tion that could have been prevented by the timely delivery of drug allergy
data, then nothing else the system has done right (such as the smoothness
of admission, proper assignment of diagnostic codes, or the correct inter-
facing with the insurance carrier) really matters.
It is often posited that requirements should state what a particular
criterion is but not how that criterion should be achieved. In real-world
systems development, this dictum can lead to unnecessarily convoluted
and indirect formulations of requirements. The issue is illustrated by
turning to building codes, which are a kind of requirements document.
Building codes distinguish between performance specifications and de-
sign specifications. A performance specification states, "Interior walls
should resist heat of x degrees for y minutes." A design specification
states, "Interior walls should use 5/8-inch Type X sheetrock." Perfor-
mance specifications leave more room for innovation, but determining
whether they have been satisfied is more difficult. Design specifications
tend to freeze the development of technology by closing the market to
innovations, but it is a simple matter to determine whether any given
design specification has been fulfilled. More realistic guidance for what
belongs in a requirements document is the following: If it defines either
failure or success, it belongs in the requirements document, no matter
how specific or detailed it is.
OCR for page 72
72
TRUST IN CYBERSPACE
A distinction is sometimes made between functional requirements
and nonfunctional requirements. When this distinction is made, func-
tional requirements are concerned with services that the system should
provide and are usually stated in terms of the system's interfaces; non-
functional requirements define constraints on the development process,
the structure of the system, or resources used during execution (Som-
merville, 1996~. For example, a description of expected system outputs in
response to various inputs would be considered a functional require-
ment. Stipulations that structured design be employed during system
development, that average system response time be bounded by some
value, or that the system be safe or secure exemplify nonfunctional re-
quirements.
Nonfunctional requirements concerning execution theoretically can
be translated into functional requirements. Doing that translation re-
quires knowledge of system structure and internals. The resulting in-
ferred functional requirements may concern internal system interfaces
that not only are unmentioned in the original functional requirements but
also may not yet be known. Moreover, performing the translation invari-
ably will involve transforming informal notions, such as "secure," "reli-
able," or "safe," into precise requirements that can be imposed on the
internals and interfaces of individual modules. Formalizing informal
properties at all and decomposing systemwide global properties into
properties that must be satisfied by individual components are techni-
cally very challenging tasks tasks often beyond the state of the art (Abadi
and Lamport, 1993; McLean, 1994~.
Where to Focus Effort in Requirements
Analysis and Documentation
The process of requirements analysis is complicated by the fact that
any NIS is part of some larger system with which it interacts. An under-
standing of the application domain itself and mastery of a variety of
engineering disciplines other than software engineering may be neces-
sary to perform requirements analysis for an NIS. Identification of sys-
tem vulnerabilities is one process for which a broad understanding of the
larger system context (including users, operators, and the physical envi-
ronment) is particularly important. Techniques have been developed to
deal with some of these issues. Modeling techniques, such as structured
analysis (Constantine and Yourdon, 1979), have been developed for con-
structing system descriptions that can be analyzed and reviewed by cus-
tomers. Rapid prototyping tools (Tanik et al., 1989) offer a means to
answer specific questions about the requirements for a new system, and
prototyping is today a popular way to determine user interface require
OCR for page 98
98
TRUST IN CYBERSPACE
requirements are thereby checked without formalizing an entire set of
requirements, which, as observed above in the section on system-level
requirements, is likely to be neither complete nor stable. Some of the
better-known successful industrial uses of formal methods for analyzing
requirements include these:22
· With the Software Cost Reduction (SCR) program's tool suite, en-
gineers at Rockwell were able to detect 24 errors many of them signifi-
cant in the requirements specification for a commercial flight guidance
system (Miller, 1998~. Also using the SCR tool suite, Lockheed engineers
formalized the operational flight program for the C-130J Hercules aircraft
and found six errors in nondeterminism and numerous type errors.23
· An informal English specification for the widely deployed aircraft
collision avoidance system TCAS II was abandoned for a formal version
written in requirements state machine language (RSML) after the English
specification was deemed too complex and unwieldy. That formal speci-
fication has since been mechanically checked for completeness and con-
sistency (Heimdahl and Leveson, 1996~.
Formal methods were originally developed as an alternative to ex-
haustive testing for increasing one's confidence that a piece of software
satisfies a detailed behavioral specification. To date, this use for formal
methods has been applied outside the laboratory only for relatively small
safety-critical or high-consequence computing systems, for which devel-
opment cost is not really a concern but flaws are. Examples include the
verification of safety-critical software used in the Hercules C130 aircraft
(Croxford and Sutton, 1995), parts of the next-generation command-and-
control ground system for the ARIANE rocket launcher (Devauchelle et
al., 1997), and highly secure operating systems (Saydjari et al., 1989~.
Constructing extremely large proofs is infeasible today and for the
foreseeable future, so formal methods requiring the construction of proofs
for an entire system are not practical when developing an NIS having tens
to hundreds of millions of lines of code. Even if size were not an issue,
COTS components are rarely accompanied by the formal specifications
necessary for doing formal verification of an NIS built from COTS compo-
nents. It would be wrong, however, to conclude that formal verification
cannot contribute to the construction of an NIS.
22In addition to Clarke and Wing (1996) and Craigen et al. (1993), further examples of this
use of formal methods appear in Easterbrok et al. (1998~.
23As Connie Heitmeyer, U.S. Naval Research Laboratory, described at the NRC's Infor-
mation Systems Trustworthiness Committee workshop, Irvine, CA, February 5-6, 1997.
OCR for page 99
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
99
For one thing, critical components of an NIS can be subject to formal
verification, thereby reducing the number of flaws having system-dis-
abling impact.24 The aircraft hand-off protocol (Marzullo et al., 1994) in
the Advanced Automation Systems air-traffic control system built by IBM
Federal Systems Division illustrates such an application of formal meth-
ods. Second, entire (large) systems can be subject to formal verification of
properties that are checkable mechanically. This is the impetus for recent
interest by the software engineering community in so-called lightweight
formal methods, like the LCLint tool, which is able to check C programs
for a variety of variable type and use errors (Detlefs, 1996), and Eraser, a
tool for detecting data races in lock-based multithreaded programs (Sav-
age et al., 1997~.
Size problems can be circumvented by subjecting a model of the NIS
to analysis instead of analyzing the entire NIS. The model might be
smaller than the original in some key dimension, as when confidence is
built in a memory cache-controller by analyzing a version that handles
only a small number of cache-lines. Alternatively, a model might be
smaller than the original by virtue of the details it ignores checking a
high-level description of an algorithm or architecture rather than check-
ing its implementation in a real programming language. Illustrative of
this latter approach are the various logics and tools for checking high-
level descriptions of cryptographic protocols (Burrows et al., 1990; Lowe
and Roscoe, 1997; Meadows, 1992~. For instance, with a logic of authenti-
cation (Burrows et al., 1990), successive drafts of the CCITT X.509 stan-
dard were analyzed and bugs were found, including a vulnerability to
replay attacks even when keys have not been compromised.
Observe that a great deal of benefit can be derived from formal meth-
ods without committing a project to the use of formal notations either for
baseline specifications or throughout. Some argue that formal methods
analyses are more effective when performed later, to shake out those last
few bugs, rather than earlier, when less costly techniques can still bear
fruit.
A well-documented example of industrial use of formal methods in
building an NIS was the development by Praxis of the CCF display infor-
mation system (CDIS) component of the central control function (CCF) air
traffic management subsystem in the United Kingdom (Hall, 1996~.25 Here,
various formal methods were used at different stages of the development
24At least for those properties that can be described formally.
25This system involved 100 processors linked by using dual local area networks and
consisted of approximately 197,000 lines of C code (excluding comments), a specification
document of approximately 1,200 pages, and a design document of approximately 3,000
pages.
OCR for page 100
100
TRUST IN CYBERSPACE
process: VDM (Tones, 1986) was used during requirements analysis, WSL
(Middleburg, 1989) was used for writing a formal specification for the sys-
tem, and CSP (Hoare, 1985) was used for describing concurrency in CDIS
and its environment. With automated assistance, proofs of correctness
were constructed for a few critical protocols. And Hall (1996) reports that
productivity for the project was the same or better than has been measured
on comparable projects that used only informal methods. Moreover, the
defect rate for the delivered software was between two and ten times better
than has been reported for comparable software in air traffic control appli-
cations that did not use formal methods.
Beyond the successful industrial uses of formal methods discussed
above and in the work cited, there are other indications that formal
methods have come of age. Today, companies are marketing formal
verification tools for use in hardware design and synthesis.26 And
there are anecdotal reports that the number of doctoral graduates in
mechanized formal methods is now insufficient to fill the current de-
mands of industry.27
Although once there was a belief that the deployment of formal meth-
ods required educating the entire development team, most actual deploy-
ments have simply augmented a development team with formal methods
experts. The job of these experts was beautifully characterized by I S.
Moore:28
Like a police SWAT team, members are trained in the use of "special
weapons," in particular, mathematical analysis tools. But they are also
extremely good at listening, reading between the lines, filling in gaps,
generalizing, expressing precisely the ideas of other people, explaining
formalisms, etc. Their role is not to bully or take credit, but to formalize
a computing system at an appropriate level of abstraction so that certain
behaviors can be analyzed.
Here, the absence of shared application assumptions with the develop-
ment team actually benefits the formal methods expert by facilitating the
discovery of unstated assumptions.
Formal methods are gaining acceptance and producing results for
industry. What are the impediments to getting broader use and even
26Examples include Formal Check from Lucent Technologies, RuleBase from IBM Corpo-
ration, VFormal from Compass, and Checkoff from View Logic.
27As John Rushby described at the NRC's Information Systems Trustworthiness Commit-
tee workshop, Irvine, CA, February 5-6, 1997.
28Position statement on the state of formal methods technology submitted for the
committee's workshop held on February 5-6, 1997, in Irvine, CA. Moore credits Carl Pixley
of Motorola with the SWAT-team simile.
OCR for page 101
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
101
further leverage from formal methods? With minor exceptions (Taylor,
1989), the formal methods and testing communities have worked inde-
pendently of each other, to the advantage of neither. Also, the need for
better-integrated tools has been articulated by researchers and formal
methods practitioners alike (Craigen et al., 1993), and research efforts are
now being directed toward combining, for example, model checkers and
proof checkers. Another trend is the development of editors and library
support for managing larger proofs and for facilitating development of
reusable models and theories.
Over the last decade, formal methods researchers survived only by
devoting a significant fraction of their effort to performing realistic dem-
onstration exercises (and these have helped to move formal methods from
the research laboratory into industrial settings). More-fundamental re-
search should be a priority. Significant classes of properties remain diffi-
cult or impossible to analyze, with fault-tolerance and security high on
the list. Methods for decomposing a global property into local ones (which
could then be checked more easily) would provide a basis for attacking
limitations that bar some uses of formal methods today.
Finally, there is a growing collection of pragmatic questions about the
use of formal methods. A key to building usable models of NISs is know-
ing what dimensions can be safely ignored. Answering that question will
require a better understanding about the role of approximation and of
simplifying assumptions in formal reasoning. Frictionless planes have
served mechanical engineers well what are the analogous abstractions
for computing systems in general and NISs in particular? Idealized mod-
els of arithmetic, for example, can give misleading results about real
computations, which have access only to finite-precision fixed or floating-
point arithmetic. And any assumption that might be invalidated consti-
tutes a system vulnerability, so analysis predicated on assumptions will
be blind to certain system vulnerabilities.
There are also questions about the application of formal methods:
Where can they give the greatest leverage during system development?
When does adding details to a model become an exercise in diminishing
returns, given that most errors in requirements and specification are er-
rors of omission (and therefore are likely to be caught only as details are
added)? And a question that is intimately linked to the problem of
identifying and characterizing threats How does one gain confidence
that a formal specification is accurate?
Testing
Testing is a highly visible process; it provides confidence that a sys-
tem will operate correctly, because the system is seen to be operating
OCR for page 102
102
TRUST IN CYBERSPACE
correctly during testing. And industry today relies heavily on testing.
Unfortunately, most real systems have inputs that can take on large num-
bers of possible values. Testing all combinations of the input values is
impossible. (This is especially problematic for systems employing graphi-
cal user interfaces, where the number of possible point-and-click combi-
nations is unworkably large.) So, in practice, only a subset of all possible
test cases is checked, and testing rarely yields any quantifiable informa-
tion about the trustworthiness of a program. The characteristics of net-
worked information systems geographic distribution of inputs and out-
puts, uncontrollable and unmonitorable subsystems (e.g., networks and
legacy systems), and large numbers of inputs make this class of system
especially sensitive to the inadequacy of testing only subsets of the input
space.
Much of the research in testing has been directed at dealing with
problems of scale. The goal has been to maximize the knowledge gained
about a component or subsystem while minimizing the number of test
cases required. Approaches based on statistical sampling of the input
space have been shown to be infeasible if the goal is to demonstrate ultra-
high levels of dependability (Butler and Finelli, 1993), and approaches
based on coverage measures do not provide quantification of useful
metrics such as mean time to failure. The result is that, in industry,
testing is all too often defined to be complete when budget limits are
reached, arbitrary milestones are passed, or defect detection rates drop
below some threshold. There is clearly room for research especially to
deal with the new complications that NISs bring to the problem: uncon-
trollable and unobservable subsystems.
System Evolution
Software systems typically are modified after their initial deployment
to correct defects, to permit the use of new hardware, and to provide new
services. Accommodating such evolution is difficult. Unless great care is
taken, the changes can cause the system structure to degenerate. That, in
turn, can lead to new defects being introduced with each subsequent
change, since a poorly structured system is both difficult to understand
and difficult to modify. In addition, coping with system evolution re-
quires managing the operational transition to new versions of that sys-
tem. System upgrade, as this is called, frequently leads to unexpected
difficulties, despite extensive testing of the new version before the up-
grade. In some cases, withdrawal of the new system once it has been
introduced is a formidable problem, because data formats and file con
OCR for page 103
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
103
tents have already changed. The popular press is full of incidents in
which system failures are attributed to system upgrades gone awry.
New facilities can be added to an NIS, and especially a Web-based
NIS, with deceptive ease: a new server that provides the desired service is
connected to the network. However, such action can affect performance
and reliability. The dispersed nature of an NIS user community can make
it difficult to gauge the impact of new features. And the lack of quality-of-
service controls can make one NIS a hostage to changes in the load or
features in another.
Another potential area of difficulty for NIS evolution is having critical
COTS components change or be rendered obsolete. The advent of so-
called "push" technology, in which commercial off-the-shelf software is
silently and automatically updated when the user visits the vendor's Web
site, can cause COTS components to drift away from the configuration
that existed during test and acceptance; the situation leads to obscure and
difficult-to-locate errors.
Findings
1. Very little is known about the integration of subsystems into an
NIS. Yet methods for network integration are critical for building an NIS.
NISs pose new challenges for integration because of their distributed na-
ture and the variability of network behavior.
2. Even though technical reviews are generally considered by the
practitioner community to be effective, the utility of technical reviews for
establishing trustworthiness properties is not well documented.
3. Formal methods are most effective when the property of interest is
subtle but can be rigorously defined, and when either the description of
the object being analyzed is relatively small or the formal method being
used supports analyses that can be automated.
4. Formal methods are moving from more manual methods toward
computer-aided and fully mechanized approaches.
5. Formal methods are being used with success in commercial and
industrial settings for hardware development and requirements analysis
and with some success for software development.
6. Formal methods should be regarded as but one piece of technology
for eliminating design errors in hardware and software. Formal methods
are particularly well suited for identifying errors that become apparent
only in scenarios not likely to be tested or testable.
7. Fundamental research problems in formal methods should not be
neglected in favor of demonstration exercises. Research progress in core
OCR for page 104
OCR for page 105
OCR for page 106
OCR for page 107
OCR for page 108
Representative terms from entire chapter:
networked information
104
TRUST IN CYBERSPACE
areas will provide a basis for making significant advances in the capabili-
ties of the technology.
8. Although the large size of an NIS and the use of COTS limit the use
of formal methods for analyzing the entire system, formal verification can
still contribute to the development process.
9. Testing subsets of a system does not adequately establish confi-
dence in an NIS given its distributed nature and uncontrollable and unob-
servable subsystems.
10. Research in testing that addresses issues of scale and concurrency
is needed.
11. Postdeployment modification of software can have a significant
negative impact on NIS trustworthiness and security.
12. Research directed at better integration of testing and formal meth-
ods is likely to have payoffs for increasing assurance in trustworthy NISs.
REFERENCES
Abadi, Martin, and Leslie Lamport. 1993. "Composing Specifications," ACM Transactions
on Programming Languages and Systems, 15~1~:73-132.
Boehm, B. 1981. Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall
International.
Boehm, B. 1988. "A Spiral Model of Software Development and Enhancement," IEEE
Computer, 21~5~:61-72.
Boehm, B., and T. DeMarco. 1997. "Software Risk Management," IEEE Software, 14~3~:17-
19.
Bollinger, Terry, and Clement McGowan. 1991. "A Critical Look at Software Capability
Evaluations," IEEE Software, 8~4~:2541.
Brock, Bishop, Malt Koffman, and J Strother Moore. 1996. "ACL2 Theorems About Com-
mercial Microprocessors," pp. 275-293 in Proceedings of Formal Methods in Computer-
aided Design. Berlin: Springer-Verlag.
Brodman, Judith G., and Donna L. Johnson. 1996. "Return on Investment from Software
Process Improvement as Measured by U.S. Industry," Crosstalk: The Journal of Defense
Software Engineering, 9~4~. Reprint available online at
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
105
Clingen, C.T., and T.H. van Vleck. 1978. "The Multics System Programming Process," pp.
278-280 in Proceedings of the 3rd International Conference on Software Engineering. New
York: IEEE Press.
Computer Science and Telecommunications Board (CSTB), National Research Council.
1997. ADA and Beyond: Software Policiesfor the Department of Defense. Washington, DC:
National Academy Press.
Constantine, L.L., and E. Yourdon. 1979. Structured Design. Englewood Cliffs, NJ: Prentice-
Hall.
Craigen, Dan, Susan Gerhart, and Ted Ralston. 1993. An International Survey of Industrial
Applications of Formal Methods. Gaithersburg, MD: National Institute of Standards and
Technology, Computer Systems Laboratory, March.
Craigen, Dan, Susan Gerhart, and Ted Ralston. 1995. "Formal Methods Reality Check:
Industrial Usage," IEEE Transactions on Software Engineering, 21~2~:90-98.
Croxford, M., and J. Sutton. 1995. "Breaking through the V and V Bottleneck," pp. 334-354
in Proceedings of Ada in Europe, in Frankfurt/Main, Germany. New York: Springer.
Curtis, Bill. 1981. "Substantiating Programmer Variability," Proceedings of the IEEE,
69~7~:846.
DeRemer, F., and H.H. Kron. 1976. "Programming-in-the-Large Versus Programming-in-
the-Small," IEEE Transactions on Software Engineering, 2~3~:80-86.
Detlefs, D. 1996. "An Overview of the Extended Static Checking System," pp. 1-9 in
Proceedings of the First Workshop on Formal Methods in Software Practice. New York:
ACM Press.
Devauchelle, L., P.G. Larsen, and H. Voss. 1997. "PICGAL: Lessons Learnt from a Practi
cal Use of Formal Specification to Develop a High-Reliability Software," European Space
Agency SP 199, 409:159-164.
Diaz, Michael, and Joseph Sligo. 1997. "How Software Process Improvement Helped
Motorola," IEEE Software, 14~5~:75-81.
Digital Equipment Corporation. 1997. Workshop on Security and Languages. Palo Alto, CA:
Digital Equipment Corporation, Systems Research Center, October 30-31. Available online at
.
Dill, David L., A.J. Drexler, A.J. Hu, and C.H. Yang. 1992. "Protocol Verification as a
Hardware Design Aid," pp. 522-525 in Proceedings of the IEEE International Conference
on Computer Design: VLSI in Computers and Processors. Los Alamitos, CA: IEEE Com-
puter Society Press.
Dill, David L., and John Rushby. 1996. "Acceptance of Formal Methods: Lessons from
Hardware Design," IEEE Computer, 29~4~:16-30.
Dion, Raymond. 1993. "Process Improvement and the Corporate Balance Sheet," IEEE
Software, 10(4):28-35.
Easterbrok, Steve, Robyn Lutz, Richard Covington, John Kelly, and Yoko Ampo. 1998.
"Experiences Using Lightweight Formal Methods for Requirements Modeling," IEEE
Transactions on Software Engineering, 24~7):4-13.
Fagan, M.E. 1986. "Advances in Software Inspections," IEEE Transactions on Software Engi-
neering, 12~7):744-751.
Fayad, Mohamed, and Mauri Laitinen. 1997. "Process Assessment Considered Harmful,"
Communications of the ACM, 40~11~:125-128.
Garland, David, and Mary Shawl 1996. Software Architecture: Perspectives on an Emerging
Discipline. Englewood Cliffs, N.J.: Prentice-Hall.
Glass, R.L. 1981. "Persistent Software Errors," IEEE Transactions on Software Engineering,
7~2):162-168.
Hall, Anthony. 1996. "Using Formal Methods to Develop an ATC Information System,"
IEEE Software, 13~6):66-76.
106
TRUST IN CYBERSPACE
Hamilton, Graham, ed. 1997. JavaBeans. Palo Alto, CA: Sun Microsystems.
Heimdahl, M., and Nancy G. Leveson. 1996. "Completeness and Consistency in Hierarchi-
cal State-based Requirements," IEEE Transactions on Software Engineering, 22~6~:363-
377.
Heninger, K. 1980. "Specifying Software Requirements for Complex Systems: New Tech-
niques and Their Application," IEEE Transactions on Software Engineering, 6~1~:2-13.
Herbsleb, James, and Dennis Goldenson. 1996. "A Systematic Survey of CMM Experience
and Results," pp. 323-330 in Proceedings of the 18th International Conference on Software
Engineering (ICSE). Los Alamitos, CA: IEEE Computer Society Press.
Hernandez, J.A. 1997. The SAP R/3 Handbook. New York: McGraw-Hill.
Hoare, C.A.R. 1985. Communicating Sequential Processes. Englewood Cliffs, NJ: Prentice-Hall.
Honeywell Corporation. 1975. Aerospace and Defense Group Software Program, Final Report.
Waltham, MA: Honeywell Corporation, Systems and Research Center.
Jones, C.B. 1986. Systematic Software Development Using VDM. Englewood Cliffs, NJ:
Prentice-Hall.
Kitson, David, and Stephen Masters. 1993. "An Analysis of SKI Software Process Assess-
ment Results: 1987-1991," pp. 68-77 in Proceedings of the 15th International Conference on
Software Engineering (ICSE-15). Los Alamitos, CA: IEEE Computer Society Press.
Kuehlmann, A., A. Srinivasan, and D.P. LaPotin. 1995. "Verity A Formal Verification
Program for Custom CMOS Circuits," IBM Journal of Research and Development,
39~1 /2~:149-165.
Lampson, Butler W. 1983. "Hints for Computer System Design," Operating Systems Review,
17(5):3348.
Lawlis, Patricia K., Robert M. Flowe, and James B. Thordahl. 1995. "A Correlational Study
of the CMM and Software Development Performance," Crosstalk: The Journal of Defense
Software Engineering, 8~9~:21-25.
Leveson, Nancy. 1995. Safeware. Reading, MA: Addison-Wesley.
Leveson, Nancy G. 1987. Software Safety. Pittsburgh, PA: Carnegie Mellon University,
Software Engineering Institute, July.
Lowe, Gavin, and Bill Roscoe. 1997. "Using CSP to Detect Errors in the TMN Protocol,"
IEEE Transactions on Software Engineering, 23~10~:659-669.
Manes, Stephen. 1998. "Settlement Near in Technical Help-line Suit," New York Times,
March 3, p. F2.
Marzullo, K., Fred B. Schneider, and J. Dehn. 1994. "Refinement for Fault Tolerance: An
Aircraft Hand-off Protocol," pp. 39-54 in Foundations of Ultradependable Parallel and
Distributed Computing, Paradigms for Dependable Applications. Amsterdam, The Nether-
lands: Kluwer.
McGarry, Frank, Steve Burke, and Bill Decker. 1997. "Measuring Impacts of Software
Process Maturity in a Production Environment," Proceedings of the 21st Goddard Soft-
ware Engineering Laboratory Software Engineering Workshop. Greenbelt, MD: Goddard
Space Flight Center.
McLean, John. 1994. "A General Theory of Composition for Trace Sets Closed Under
Selective Interleaving Functions," pp. 79-93 in Proceedings of the IEEE Computer Society
Symposium on Research in Security and Privacy. Los Alamitos, CA: IEEE Computer
Society Press.
Meadows, Catherine. 1992. "Applying Formal Methods to the Analysis of a Key Manage-
ment Protocol," Journal of Computer Security, 1~1~:5-36.
Meyer, Bertrand. 1988. Object-oriented Software Construction. Englewood Cliffs, NJ: Prentice-
Hall.
SOFTWARE FOR NETWORKED INFORMATION SYSTEMS
107
Microsoft Corporation and Digital Equipment Corporation. 1995. The Component Object Model
Specification (COM). Microsoft Corporation and Digital Equipment Corporation, Octo-
ber. Available online at .
Middleburg, C.A. 1989. "VVSL: A Language for Structured VDM Specifications," Formal
Aspects of Computing, 1~1~:115-135.
Miller, Steven P. 1998. "Specifying the Mode Logic of a Flight Guidance System in CoRE
and SCR," pp. 44-53 in Proceedings of the 2nd Workshop on Formal Methods in Software
Practice. New York: ACM Press.
Musser, David R., and Atul Saini. 1996. STL Tutorial and Reference Guide: C++ Programming
with the Standard Template Library. Reading, MA: Addison-Wesley.
Neumann, Peter G. 1995. Computer Related Risks. New York: ACM Press.
Ousterhout, John K. 1998. "Scripting: Higher-level Programming for the 21st Century,"
IEEE Computer, 31~3~:23-30.
Owre, Sam, John Rushby, Natarajan Shankar, and Frederich von Henke. 1995. "Formal
Verification for Fault-tolerant Architectures: Prolegomena to the Design of PVS," IEEE
Transactions on Software Engineering, 21~2~:107-125.
Parnas, D.L. 1974. "On a 'Buzzword': Hierarchical Structure," pp. 335-342 in Programming
Methodology. A Collection of Articles by Members of the IFIP Congress, D. Gries, ed. Ber-
lin: Springer-Verlag.
Paulk, Mark C., Bill Curtis, Mary Beth Chrissis, and Charles V. Weber. 1993. "Capability
Maturity Model for Software Version 1.1," IEEE Software, 10~4~:18-27.
Pfleeger, S.L., N. Fenton, and S. Page. 1994. "Evaluating Software Engineering Standards,"
IEEE Computer, 27~9~:71-79.
Porter, A.A., H.P. Siy, C.O. Toman, and L.G. Votta. 1997. "An Experiment to Assess the
Cost-Benefits of Code Inspections in Large Scale Software Development," IEEE Trans-
actions on Software Engineering, 23~6~:329-346.
Potts, Colin, Kenji Takahashi, and Annie I. Anton. 1994. "Inquiry-based Requirements
Analysis," IEEE Software, 11~2~:21-32.
Pressman, Roger S. 1986. Software Engineering: A Practitioner's Approach. New York:
McGraw-Hill.
Raymond, Eric, and Guy L. Steele. 1991. The New Hacker's Dictionary. Cambridge, MA:
MIT Press.
Rochkind, Marc J. 1975. "The Source Code Control System," IEEE Transactions on Software
Engineering, 1~4~:364-370.
Ross, Douglas T. 1977. "Guest Editorial Reflections on Requirements," IEEE Transactions
on Software Engineering, 3~1~:2-5.
Rushby, J. 1995. Formal Methods and Their Role in Certification of Critical Systems. Menlo
Park, CA: SRI International, March.
Savage, Stefan, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas E. Ander-
son. 1997. "Eraser: A Dynamic Data Race Detector for Multi-threaded Programs,"
Operating Systems Review, 31~5~:27-37.
Saydjari, O. Sami, J.M. Beckman, and J.R. Leaman. 1989. "LOCK Trek: Navigating Un-
charted Space," pp. 167-175 in Proceedings of the IEEE Symposium on Security and Pri-
vacy. Los Alamitos, CA: IEEE Computer Society Press.
Sommerville, Ian. 1996. Software Engineering. 5th Ed. Reading, MA: Addison-Wesley.
Srivas, Mandayam K., and Steven P. Miller. 1995. "Formal Verification of the AAMP5
Microprocessor," Applications of Formal Methods, Michael G. Hinchey and Jonathan P.
Bowden, eds. Englewood Cliffs, NJ: Prentice-Hall.
Tanik, Murat M., Raymond T. Ye, and guest editors. 1989. "Rapid Prototyping in Software
Development," IEEE Computer Magazine, Vol. 22, Special Issue (5~.
108
TRUST IN CYBERSPACE
Taylor, T. 1989. "FTLS-based Security Testing for LOCK," Proceedings of the 12th National
Computer Security Conference. Washington, DC: U.S. Government Printing Office.
Thompson, Kenneth. 1984. "Reflections on Trusting Trust," Communications of the ACM,
27(8):761-763.
Watts, Humphrey, and Bill Curtis. 1991. "Comment on 'A Critical Look,"' IEEE Software,
8~4~:4246.
Watts, Humphrey, Terry Synder, and Ronald Willis. 1991. "Software Process Improve-
ment at Hughes Aircraft," IEEE Software, 8~4~:11-23.
Weissman, Clark. 1995. "Penetration Testing," Information Security, M.D. Abrams, S. Jajodia,
and H.J. Podell, eds. Los Alamitos, CA: IEEE Computer Society Press.