Page 280 -
P. 280
CHAPTER 10 SYSTEM ENGINEERING 251
10.2.2 System Simulation
In the late 1960s, R. M. Graham [GRA69] made a distressing comment about the way
we build computer-based systems: "We build systems like the Wright brothers built air-
planes—build the whole thing, push it off a cliff, let it crash, and start over again." In
fact, for at least one class of system—the reactive system—we continue to do this today.
Many computer-based systems interact with the real world in a reactive fashion.
If simulation capability That is, real-world events are monitored by the hardware and software that form the
is unavailable for a computer-based system, and based on these events, the system imposes control on
reactive system,
project risk increases. the machines, processes, and even people who cause the events to occur. Real-time
Consider using an and embedded systems often fall into the reactive systems category.
iterative process model Unfortunately, the developers of reactive systems sometimes struggle to make
that will enable you to them perform properly. Until recently, it has been difficult to predict the performance,
deliver a working
product in the first efficiency, and behavior of such systems prior to building them. In a very real sense,
iteration and then use the construction of many real-time systems was an adventure in "flying." Surprises
other iterations to tune (most of them unpleasant) were not discovered until the system was built and "pushed
its performance. off a cliff." If the system crashed due to incorrect function, inappropriate behavior, or
poor performance, we picked up the pieces and started over again.
Many systems in the reactive category control machines and/or processes (e.g.,
commercial aircraft or petroleum refineries) that must operate with an extremely high
degree of reliability. If the system fails, significant economic or human loss could
occur. For this reason, the approach described by Graham is both painful and dan-
gerous.
Today, software tools for system modeling and simulation are being used to help
to eliminate surprises when reactive, computer-based systems are built. These tools
are applied during the system engineering process, while the role of hardware and
software, databases and people is being specified. Modeling and simulation tools
enable a system engineer to "test drive" a specification of the system. The technical
CASE Tools details and specialized modeling techniques that are used to enable a test drive are
Modeling & Simulation
discussed briefly in Chapter 31.
10.3 BUSINESS PROCESS ENGINEERING: AN OVERVIEW
The goal of business process engineering (BPE) is to define architectures that will
enable a business to use information effectively. Michael Guttman [GUT99] describes
the challenge when he states:
[T]oday's computing environment consists of computing power that's distributed over an
enterprise-wide array of heterogeneous processing units, scaled and configured for a wide
variety of tasks. Variously known as client-server computing, distributed processing, and
enterprise networking (to name just a few overused terms), this new environment promised
businesses the greater functionality and flexibility they demanded.