| |
“Spartan
simplicity must be observed. Nothing will be done
merely because it contributes to beauty, convenience,
comfort, or prestige.”
— From the Office of the Chief Signal Officer,
U.S. Army
May 29, 1945

IN THIS CHAPTER,
YOU WILL LEARN:
-
How to choose the automation boundary for a system;
-
How to select input devices and output devices for
the user;
-
How to design input formats and output formats;
-
How to design forms for the system;
-
How to develop coding schemes for system inputs;
-
How to identify manual support activities; and
-
How
to describe the system’s operational constraints.
At
the end of the last chapter, we had finished the development
of the essential model of an information system. This
model contains a complete description of what
the system must do in order to satisfy the user. Specifically,
the essential model describes:
-
The
essential policy, or logic, of the functions that
need to be performed.
-
The
essential content of the data that are stored by
the system and that move through the system.
-
The
essential time-dependent behavior that the system
must exhibit in order to deal with signals and interrupts
from the external environment.
In
the best of all worlds (from the viewpoint of the
systems analyst and the implementation team), this
would be sufficient information for the designers
and programmers: we would simply give them the essential
model and let them choose the best hardware, best
operating system, best database management system,
and best programming language, within the overall
project constraints of time, money, and people resources.
However, it’s not as simple as this: in virtually
every systems development project, the user will insist
on providing some additional information.
This additional information involves implementation
issues — but implementation issues that
are sufficiently important, that have sufficient impact
on the user’s ability to use the system, that
they need to be specified now. The most obvious implementation
issue of interest to the user is the automation boundary,
that is, which parts of the essential model are going
to be implemented on a computer, and which parts are
going to be performed manually by people in the user
organization? The systems analyst may have an opinion
about this, and the designer/programmer group may
also want to voice an opinion, but it is obviously
an issue about which the user has the final say.
Similarly, the format of system inputs and
outputs (sometimes known as the human interface) is
of enormous interest to the user — often, it
seems, of more interest than the system functions!
Ever since computer systems began generating paper
reports, users have had strong opinions about the
organization and layout of the information in the
report. Where should the page numbers be? Where should
the page headers be? How should each line of information
be arranged for maximum readability? Should there
be a summary or subtotal at the end of each page or
only at the end of the entire report? And so on.
With the advent of client-server systems in the 1970s,
this issue expanded to include the user’s interest
in formatting input screens on a computer display
screen. Where should the input prompts be displayed
on the screen? What kind of error messages should
be displayed? What color should the error messages
be? How should the user be allowed to move from one
screen to another screen? Similarly, with the growing
popularity and deployment of Web-based applications,
the analyst needs to document the users’ preferences
regarding the sequence, format, and “look-and-feel”
of HTML pages, forms, and other aspects of an Internet-oriented
user interface.
More recently, a number of other options and possibilities
have increased the importance of these user implementation
issues:
-
End
users typically have a powerful desktop PC, connected
to an enterprise-wide network that gives them access
to several different mainframes or “servers.”
This raises a series of questions: Which parts of
the essential model will be assigned to the PC (often
referred to as a “client,” under the
user’s control) and which to the mainframe/server?
Which part of the data will be assigned to the PC/client
and which part to the mainframe/server? What will
be the format of input that the user provides to
the PC? What additional support activities must
be provided to ensure that the user does not inadvertently
damage the data on the PC/client or the mainframe/server?
-
End
users have more and more opportunities today to
write their own programs in visual development tools
like Visual Basic and Microsoft Access on PCs, in
addition to “macro” facilities in spreadsheet
tools like Microsoft Excel. To the extent that they
get involved in such implementation issues, they
need to specify the formats of inputs and outputs
to the system. More importantly, they may want to
decide which parts of the system will be implemented
using visual development tools accessible at their
desktop PC and which parts will be implemented with
conventional development tools under the control
of the project team. [1]
-
In many
situations today, the user and systems analyst may
decide to prototype portions of the system, using
either a high-level programming language or an application
generator package. The prototyping may be done because
the user is unsure of the detailed policy that will
eventually have to be written into process specifications
in the essential model; but more often the prototyping
activity is concerned with exploration and experimentation
with input formats, on-line dialogues, and output
formats for screens or reports.
-
For
many business applications, one option available
to the user is the selection and purchase of a software
package, that is, an existing software product that
can be licensed or purchased from a vendor. In this
case, the same kind of implementation issues are
important to the user: Which parts of the essential
functions will be implemented by the vendor-supplied
package and which parts will have to be done by
the user (or implemented by the user’s IT
department as a separate system)? Which parts of
the essential data will be maintained by the vendor-supplied
package and which parts will have to be maintained
by the user? What will be the form and sequence
of inputs required by the vendor-supplied system
and will this be acceptable? [2]
These
issues should be addressed as part of the user
implementation model. It can be created by augmenting,
annotating, and revising the essential model, as we
will see in subsequent sections of this chapter. However,
I recommend that you always keep a copy of the original
essential model intact; this will allow you to explore
alternative user implementation models in the future.
Generally
speaking, the user implementation model will cover
the following four issues:
-
Allocation of the essential model to people versus
machines.
-
Details of the human-machine interaction.
-
Additional manual activities that may be needed.
-
Operational constraints that the user wishes to
impose on the system.
Each of these is discussed in more detail next.

21.1
DETERMINING THE AUTOMATION BOUNDARY
Remember that the system model we are working with
at this point identifies all the essential activities
(functions) and all the essential data. The question
at this point is: Which functions and which data will
be handled manually, and which will be automated?
While there may have been a preliminary, tentative
choice of the automation boundary during the feasibility
study, we should not regard it as frozen. Indeed,
the automation boundary is almost irrelevant in the
essential model, because, while the user obviously
wants us to develop an automated system, he or she
also needs a well-described statement of requirements
for the functions and data that will be just outside
the automation boundary.
There are three extreme cases that we mention briefly:
-
The
user may not care where the automation boundary
is. This is unlikely to ever happen, but it
is a theoretical possibility. Effectively, the user
is saying to the implementation team, “You
tell me whether it makes more sense for portions
of the system to be manual or automated.”
Aside from the fact that the user normally has strong
feelings about this issue, the systems analyst is
usually expected to produce (as a by-product of
his or her work) a revised cost-benefit analysis
for the entire project. This will usually require
at least some preliminary decision as to which parts
of the essential model will be automated and which
will be manual.
-
The
user may opt for a fully automated system. This
is a more common situation, particularly if the
system you are developing is a replacement for an
existing system and the system boundary is not
changing. Thus, the manual activities carried
out by the user may already be outside the system
boundary — represented on the context diagram
as the terminators with which the system communicates.
-
The
user may opt for a fully manual system. This
is a rather uncommon option, particularly in this
age of automation, because the systems analyst usually
has a vested interest in computerizing as much as
possible. However, it can happen in situations where
the user’s express intention is not
to computerize anything, but simply to reorganize
the way activities are currently being carried out
in an organization.
Normally,
these extreme options won’t occur; based on
interactions between the user, the systems analyst,
and the implementation team, some compromise will
be chosen. That is, some of the essential model
activities will be automated, and some will be identified
as manual functions; similarly, some of the essential
data will be identified as an obvious candidate for
computerization (thus presumably putting it under
the control of an IT organization) and some will be
left under the user’s direct control. Unless
the user makes an immediate, arbitrary choice by fiat,
it is a good idea for all three parties (the user,
the systems analyst and the implementation team) to
explore several options. As Figures 21.1(a), (b),
and (c) illustrate, there might be several reasonable
alternatives for drawing the automation boundary.
Each will have different costs (which the implementation
team must help estimate, since they will have the
knowledge about implementation technology possibilities)
and different organizational ramifications in the
user’s area.
Figure
21.1.(a): One choice for the automation boundary
It is neither the systems analyst’s job nor
the implementation team’s job to choose the
automation boundary; it is ultimately the user’s
responsibility, and this book does not provide any
guidelines for determining what kind of choice would
be best. But note how the essential model serves as
a useful tool for both the user and the implementation
team to explore various choices. Once the automation
boundary has been chosen, the systems analyst may
think he has the luxury of eliminating manual processes
and manual data (i.e., those bubbles and stores that
will not be automated) from any further consideration.
But this is generally not true. In the simplest case,
the manual activities and data may have to be moved
back into the terminators surrounding the system,
as shown in Figure 21.2(a) and (b).
Figure
21.1(b): Another choice for the automation boundary
Figure
21.1(c): A third choice for the automation boundary
But, in the general case, the systems analyst must
recognize that even the manual activities are part
of the new system. Thus, the analyst may have
to write user procedures so that members of the user
community will know how to carry out the required
functions. And the analyst may have to provide some
guidance on the organization of stores that are not
going to be automated [3].
Note that this aspect of the user implementation model
merely requires that we annotate the DFD and ERD to
indicate manual versus automated activities and data.
Figure
21.2(a): An essential model with a automation
boundary
Figure
21.2(b): Manual activities have been buried within
the terminators
Note that when the automation boundary is chosen it
may be important to consider a number of environmental
issues: noise level, radiation, lighting, ergonomics
of the PC/workstation and work space, and so on. Quite
often, the new system will disrupt the user’s
normal working environment (e.g., it will cause a
PC to be placed on the user’s desk where there
had never been one before.) [4]
Or it may bring information processing activities
to an environment where there had never been any such
activities before (e.g., a factory floor in a manufacturing
environment). Thus, it is important to ensure that
these human factors have been carefully studied before
making a final determination of the automation boundary.
The user will often have some strong feelings to express
on this issue, but if she or he has no prior experience
with information systems, the user may not be able
to predict in advance what the problems will be. You
should get advice from other systems professionals
who have developed and installed similar systems in
similar environmental conditions.
Finally, note that once the automation boundary has
been chosen, it may be necessary to augment the essential
model to show how the system is started up and shut
down; the essential model shows only the steady-state
behavior of the system, and assumes that the system
has been running forever and will continue running
forever. Thus, we may need to include additional processes
(bubbles in the DFD), dataflows, and stores to show
system initialization activities and system shut-down
activities; this might include reports to management
(or to the users or to the operations department)
on the operational characteristics of the system.
21.2
DETERMINING THE HUMAN INTERFACE
Probably the most time-consuming activity, and the
one that the user will be most interested in, is the
specification of the human interface. This involves
four related issues:
-
The choice of input and output devices (e.g., PC/workstations,
touch-sensitive screens, wireless devices, OCR devices,
etc., for input; and paper reports, computer displays,
voice-response units, or flashing lights for output).
-
The format of all the inputs flowing from terminators
into the system.
-
The format of all the outputs flowing from the system
back out to the terminators.
-
The sequence and timing of inputs and outputs in
an on-line system.
21.2.1
Input and Output Devices
The choice of input and output devices may be dictated
by the terminators outside the system; for example,
if the system produces output reports to be sent to
the government, there may be no choice other than
producing the reports on paper. Devices typically
used for providing input to a system [5]
include the following:
-
Computer
“workstations.” There are various
forms of this technology, but they all share common
features: a keyboard, with or without a “mouse”
or pointing device; a display screen, usually (but
not always) supporting high-resolution color; and
some degree of “local intelligence”
that can be used for local editing and processing
of input. In one form or another, this become one
of the most common forms of input media since the
mid-1980s, as the per-unit price of such devices
has dropped from several thousand dollars to something
below one thousand dollars. It is important to distinguish
between dumb terminals that provide nothing more
than a keyboard and screen; intelligent terminals
that provide a variety of local editing features
and a local storage capacity; and desktop computers,
which have much more local storage and all the computational
powers of a general-purpose computer. Intelligent
terminals and desktop computers make it possible
for the user to make changes and correct trivial
errors instantly, rather than waiting for the delay
of sending the input through telecommunication lines
to the main computer; the local storage capability
makes it possible for the user to enter a great
deal of input even if the main computer system is
not operational all the time.
-
Telephone.
For some applications, the Touch-Tone telephone
can be an appropriate input medium [6]
This is
particularly advantageous for systems that must
deal with the general public; as of the early part
of the 21st century, only about half of the U.S.
population has a home computer, and it may not be
conveniently situated for the person who wants to
use the system. By contrast, approximately 98% of
the U.S. population has at least one phone in their
home, and a growing number of families have multiple
phones in the home, as well as multiple cell phones
that can be used from any geographic location. Since
the Touch-Tone telephone only provides numeric input,
its applications are somewhat limited; it is convenient
for situations where the user needs to provide such
things as an account number, but would not be practical
for situations requiring text entry [7].
-
Voice
input. Some systems may use the human voice
as an input medium. Voice input technology today
is capable of recognizing a vocabulary of a few
thousand words for an individual user; it must be
retrained for each new user. However, with a more
limited vocabulary and a “smart” application
(e.g., one that knows that valid input items consist
of numeric digits, rather than arbitrary words),
a voice-input system can handle a wide range of
accents and dialects. The advantages of such an
input medium are obvious; the potential disadvantages
are (1) the cost of the device, especially if it
has to be provided individually for each user (2)
its potentially limited vocabulary, (3) and a somewhat
slow response time. However, this is an area of
technology that is improving rapidly, and it should
be re-evaluated periodically by the systems analyst
to see if it is practical and effective for a particular
application.
-
Optical
readers and bar-code readers. Optical readers
and bar-code readers can read information printed
or encoded on various types of documents; this is
particularly advantageous for applications like
the checkout counter at a store, where the user
needs to enter the product code and other relevant
data about a purchase. To the extent that these
devices can read data directly, it eliminates
the need for the user to manually type the data
on a terminal. Some optical readers can read ordinary
typewritten documents, and a few can read handwritten
documents. The major disadvantage of this type of
input medium is its cost; another disadvantage is
its error-prone tendency.
-
Floppy
disks. With the widespread proliferation of
PCs in the office and home, floppy disks have become
a popular form of input medium. Data are normally
recorded on the floppy disk by off-line interaction
with a personal computer (by off-line we mean that
the activity is not connected to the information
system under development). A typical floppy disk
can store between one and two million bytes of data;
this is not as much as a magnetic tape, but it is
adequate for many medium-volume applications.
-
Magnetic
tape. Magnetic tape may be an appropriate form
of input from other systems; it can also be an appropriate
input medium if the user has a key-to-tape data
entry device. The primary advantage of this approach,
of course, is that a much larger volume of input
data can be stored on a tape than on a card; the
disadvantage is that the data cannot be easily manipulated
once they are recorded on the tape. The punched
card, on the other hand, is more primitive, but
it does offer the user the flexibility of rearranging
the cards or deleting some of them (by throwing
them away) before submitting them to the system.
-
Punched
cards. Punched cards used to be the most common
form of system input, but are seldom used today
except on a few very large batch computer systems.
One advantage of the punched card is that it can
be used as a source document by the external user
(e.g., think of the checks produced by some government
systems; they are negotiable documents, but they
are also used as direct input to a computer system).
The major disadvantages of punched cards are their
bulky size, limited data storage capacity, “one-time-only”
usability, and susceptibility to operator errors.
Just
as the user has a choice of several different input
media for his or her system, there are several possible
output media. The most common media used for output
are the following:
-
Display
terminal. On-line systems that use terminals
as an input medium typically use terminals as an
output medium, too. The advantage of the terminal
is that it can display a substantial amount of information
at a high rate; with modern terminals, combinations
of text and graphics can be conveniently displayed.
The major disadvantage of the terminal is that it
does not represent hard-copy output; the output
is transient and is lost when the next display is
shown.
-
Voice
output. For some applications, voice output
is a suitable output medium. This is true in applications
where the telephone is used as an input medium (see
above); the same telephone can be used to convey
voice output to the user. Some terminals are also
equipped with voice output devices, though this
is somewhat rare. The main advantage of the voice
output medium is that it can be used to convey fairly
brief output messages in an environment (e.g., a
manufacturing facility) where the user might not
have the opportunity to read printed output.
-
Plotter.
A plotter is normally used to produce large, intricate
diagrams and drawings (e.g., architectural drawings
and blueprints). Drawings that would fit onto a
normal-sized page of paper can usually be produced
today by laser printers or dot-matrix printers,
but plotters often produce output measuring two
or three feet wide by several feet long. The disadvantage
of this output medium is its cost, its physical
bulkiness, and the length of time required to produce
the output.
-
Magnetic
tape or disk. Obviously, just as magnetic tape
and disk can be used for input, it can be used for
output. This is normally practical only in cases
where the output is going to be sent to other computer
systems (i.e., where the system terminator is not
a person, but a computer).
-
COM.
COM is an acronym for Computer Output Microform.
COM output is normally reserved for archival output
(e.g., voluminous reference material that would
be too expensive and too bulky to be produced as
normal printed reports). Examples of COM are rolls
of microfilm (used, for example, by banks to keep
copies of canceled checks) or microfiche cards.
-
Printed
output. By far the most common form of output
on computer systems today is printed output. This
can be produced on a variety of devices: dot matrix
printers (often attached to the terminal used for
input), high-speed line printers, high-speed laser
printers, personal laser printers, personal daisy
wheel printers, and so on. The principal advantage
of printed output is that it is a permanent document,
and it can be used in a variety of applications
outside the system. The disadvantages of printed
reports are their bulkiness, the likelihood that
more information (or more copies of information)
will be printed than is really needed, and the relatively
slow speed with which the information is produced.
-
Punched
cards. Just as punched cards can serve as an
input medium, they can serve as an output medium.
As noted earlier, punched cards can be used as legal
documents; as Marjorie Leeson points out [Leeson,
1981], punched cards can serve as a “turnaround
document” (i.e., a document that is sent out
of the system to an external terminator and that
later becomes input to the system from the same
terminator). But, in general, punched cards are
bulky, and they cannot hold much information; hence
they are not used for most information systems today.
21.2.2
Input/Output Formats
Once the input/output devices have been chosen, the
next step is to determine the formats of system inputs
and outputs. In some cases, the formats of inputs
and outputs may not be a matter of negotiation, but
simply a matter of the user informing the systems
analyst of “the way things have gotta be.”
This is particularly true if the new system must communicate
with other computer systems or with people (or groups
of people) external to the organization building
the new system. External organizations or other external
computer systems may supply data to the new system
in a prescribed physical format that cannot be changed.
And they may require output from the system in an
equally rigidly prescribed format.
If the human-machine dialog has not been entirely
fixed, what is there to negotiate about? Not the internal
representation of data within the computer system;
the user won’t care about and should not even
be aware of this information. And not such things
as the legal values and ranges of input data elements,
for this should have been specified as part of the
essential model. However, this is a place to negotiate
reasonable implementation constraints on various
aspects of the data elements. Some examples follow:
-
The
essential model may have identified the data element
CUSTOMER-LAST-NAME. As a matter of essential
policy, there may be no limit to the length (number
of characters) of this data element. After all,
what’s wrong with a last name that happens
to be 357 characters long? While it doesn’t
happen often, some members of European nobility
may wish to demonstrate their lineage by including
the names of all their ancestral forebears in their
last name. This is interesting and may be of some
historical significance, but the user and the systems
analyst may nonetheless agree to restrict CUSTOMER-LAST-NAME
to 25 characters. Note, by the way, that this will
require a change to the appropriate process specification(s)
that deal with the inputting of CUSTOMER-LAST-NAME
to ensure that it is valid according to this implementation
constraint.
-
In
an order entry system, a CUSTOMER-ORDER might
be defined in the following way: CUSTOMER-ORDER
= NAME + ADDRESS + {ORDER-ITEM}. In the essential
model, there might be no reason at all to limit
the number of different items that a customer might
purchase in one order. From the user’s implementation
perspective, though, there might be several reasons:
(1) as a manual support activity (discussed further
in Section 21.3, the user might want the sales clerk
to write the order on a preprinted form that only
has room for, say, eight different items); (2) the
user might be concerned that the sales clerk will
make a mistake if he or she tries to deal with more
than a limited number of items in each order; (3)
the user might be concerned that spending an inordinate
amount of time servicing one customer with his or
her 597 different items might annoy other customers
waiting to be serviced. And so on. Hence there might
be a number of good reasons to put a user-defined
implementation constraint on this data element.
Note
that user implementation issues of this sort primarily
involve extra notations in the data dictionary, as
well as additional logic (if appropriate) in the process
specifications that deal with validation of input
data elements. But there is one other aspect of the
human-machine dialogue that requires something more
than data dictionary notations: the sequence
of inputs and outputs, especially in an on-line system,
can be conveniently modeled using a state-transition
diagram. Figure 21.3 shows a typical example of a
state-transition diagram used to model the sequence
of CRT screens that the end user will use to communicate
with the system.
Figure 21.3: A state-transition diagram for
modeling data-entry screens
This is particularly
useful for dealing with questions like, “Can
I get back to the main menu screen from screen 12?”
and “What are all the ways of getting to the
order-entry screen?” Other major input/output
issues include the physical arrangement of input data
elements on a CRT screen, the nature of the error
messages if an input error is made; and the physical
arrangement of output data elements on display screens
and reports. With today’s vast array of high-level
programming languages, and prototyping tools, I recommend
that you give the user an opportunity to play with
several variations of input screens, output displays,
and the like. [8] Once
you have gotten agreement from the user, you should
attach a copy of the screen displays, report formats,
and appropriate state-transition diagrams to the essential
model, with appropriate cross-references to the essential
data elements in the data dictionary.
Of course, in many cases the user won’t have
any major suggestions to make because he or she has
no previous experience working with a computer system;
this is somewhat analogous to someone who has lived
in an apartment all his life, but now wants to specify
the details of his first custom-built, split-level
ranch-style home. In the case of computerized information
systems, the following guidelines will help you develop
a user-friendly human interface in most cases:
-
Your
system should request inputs and produce outputs
in a consistent fashion. This is particularly
true for on-line systems where the user can enter
one of several different transactions and/or receive
one of several different displays. For example,
suppose that your system asks the user for the date
whenever a transaction is entered; it would be frustrating
and confusing if one type of transaction requires
the date in the form 12/23/2003 while another transaction
requires the date in the form 2003/12/23. And it
would be confusing if one part of the system required
the user to specify the state as a two-character
code (e.g., NY for New York), while another part
of the system required the state to be spelled out.
Similarly, if one part of the system requires the
user to provide an area code when she or he enters
a telephone number, then all parts of the system
should require an area code when the telephone number
is entered.
-
Ask
for information in a logical sequence. In many
cases, this depends on the nature of the application
and will require careful discussions with the user.
For example, suppose you are developing an order
entry system, and you want the user to specify the
customer’s name; this means that you will
have to specify the sequence in which you want the
components of “customer name” entered.
One logical sequence would be to ask the user to
provide the information in the following sequence:
title (Mr./Ms., etc.)
first name
middle initial
last name
But
the user may find this quite awkward; suppose the
user has obtained the customer name from some external
source like a telephone book? In this case, it would
be far more convenient for the user to enter
last
name
first name
middle initial
title
About the only thing we
can be sure of is that the following sequence would
definitely be unpopular with the user:
middle
initial
first name
title
last name
-
Make
it obvious to the user what kind of error he or
she has committed and where it is. In many systems,
the user provides a substantial amount of information
to the system for each event or transaction. In
an order entry system, for example, the user may
specify the customer’s name, address, and
phone number, as well as information about the items
being ordered, the applicable discount, shipping
instructions, and sales tax. All this information
may be entered in a single computer screen, or “window,”
before it is sent to the system; and, of course,
the system may then determine that some or all of
the input is erroneous. The important thing is to
make sure that the user understands the kind of
error that has been committed and where the error
is located; it is not acceptable for the system
to simply beep once and display the message BAD
INPUT. Each error (assuming there is more
than one) should be identified, either with a descriptive
message or (in the case of an on-line system) by
highlighting or color-coding the erroneous data.
Depending on the nature of the system and the user’s
level of sophistication, it may also be important
to display an explanatory message; this is discussed
in more detail in item 5.
-
Distinguish
between field edits and screen edits. In many
cases, your system will be able to determine whether
a data element provided by the user is correct or
incorrect, without reference to any other data elements.
For example, if the user enters a two-character
code for a state, the system should be able to immediately
determine whether the two characters represent one
of the fifty states, or one of the Canadian provinces,
and so on. But if the user were to enter a postal
code as an individual data element, there is only
a limited amount of field editing the system could
do without additional inputs; we would need both
the postal code and the state code to determine
whether the postal code should be a five-digit (or
nine-digit) zip code or a six-character Canadian
postal code. The system could also compare the state
code and zip code to see if the zip code is in the
right range (e.g., if the state code is NY then
the zip code should begin with the digit 1). The
relationship between data elements may be obvious
to the systems analyst; however, it may require
intimate, detailed knowledge of the application
that can only be obtained from the user.
-
Make
the editing and error-checking user dependent.
As indicated above, it is usually a good idea for
the system to display an explanatory message when
an error is detected. But this is only true if the
user is unable to determine, on his own, what he
did wrong. If the user typed a three-digit zip code,
for example, it would not be necessary for the system
to display an elaborate message about the length
of zip codes; however, it would be appropriate
if the user typed a five-digit zip code and the
system was expecting one of the new nine-digit zip
codes. Note also that (a) some users are more expert
than others and may become annoyed even more quickly
if they have to look at long, turgid error messages,
and (b) after repetitive use, even the novice user
becomes expert at some parts of the system. So it
is often important to make the error messages flexible
and perhaps even changeable by the user; the easiest
compromise is a combination of short error messages
(which may consist of nothing more than highlighting
the erroneous input and ringing a bell to get the
user’s attention) and long error messages
(with explanatory text and a reference to the appropriate
part of the user’s training manual). See also
item 7 for more on this concept.
-
Provide
a way for the user to (a) cancel part of a transaction
and (b) cancel all of a transaction. It is unwise
to assume that the user will always finish entering
an entire transaction without getting interrupted.
With a batch computer system, this is not an issue;
the system typically does not see anything from
the user until several individual transactions have
been composed [9].
But for on-line systems, it is an important issue:
the user may have entered a customer’s name
and address before discovering that she was working
with the wrong customer; she wants to be able to
delete what she has typed and start over. Or the
user may have finished entering most of the customer
information and then happen to notice that she misspelled
the customer’s first name; she wants to be
able to go back to that data element and correct
it without losing all the other information she
has typed.
-
Provide
a convenient “help” mechanism. For
virtually any kind of non-trivial system, it is
essential to provide the user with a convenient
mechanism for obtaining information about how to
use the system — preferably without having
to read through a 500-page user manual. In some
cases, an on-line “help” facility will
simply provide an explanation if the user commits
an error; in other cases, it might be used to explain
the details of various commands or transactions
available to the user. There are numerous ways of
implementing such a facility, and both you and the
user should investigate several typical examples
before making a decision. In many cases, the strategy
will depend on the presumed level of experience
and skill on the part of end-users, as well as the
extent of training that may be available before
the user begins entering data [10].
-
Distinguish
between menu-driven and command-driven systems;
if appropriate, give the user a choice. A menu-driven
system is one that presents the user with a list
of alternative choices (or functions, or transactions,
etc.); once he has chosen one, he may be given another
submenu, which could lead to even lower-level sub-menus
before the system finally carries out some action.
A command-driven system, on the other hand, expects
the user to provide a detailed (and often lengthy)
command indicating what he wants the system to do
for him. Menu-driven systems are considered more
user friendly, since they display all the
available choices for the user; hence the menu-driven
approach is often considered preferable for new
users or if the system has to interact with a wide
variety of users with different backgrounds and
skill levels. But the menu-driven system is considered
tedious by the experienced user, for it often requires
two or three separate interactions with the system
(each with some time delay) before it finally knows
what the user wants; the experienced user generally
prefers a command-driven system, so that he can
accomplish what he wants as quickly as possible.
-
If
your system is engaged in lengthy processing, display
a message to the user so that he won’t think
the system has crashed. If your system has to
carry out extensive calculations or if it is likely
to be delayed periodically because of voluminous
inputs, it is important to display an appropriate
message to the user; otherwise, he is likely to
think that his terminal has “frozen”
or “hung,” or that the computer has
crashed, or that there has been a power failure.
At the very least, your system should flash a message
(e.g., SYSTEM WORKING - PLEASE WAIT) at regular
intervals. Even better would be a series of messages
— or a “thermometer”-syle progress
indicator — telling the user how much of the
work has been finished and approximately how much
longer it will take to completion.
-
Provide
defaults for standard inputs. In many cases,
the system can make a good guess about the likely
value of an input provided by the user; by making
it a default, it can save the user a considerable
amount of time and typing activity. This approach
is valid for all types of systems, but it is especially
apparent with on-line systems, where the user may
not be a professional typist. One example of a default
value is the date: in many applications, the most
likely date that the user will enter is today’s
date. Or suppose that you are building an order
entry system, and the user tells you that 95% of
the customers live in the local area; then when
you ask the user to provide the customer’s
telephone number, the system should assume that
the default area code is your local area code.
-
Take
advantage of color and sound, but don’t overdo
it. Modern computer terminals have a variety
of colors and sound effects; these can be quite
useful for emphasizing different kinds of input
or drawing the user’s attention to important
aspects of the human interface. Thus, you might
use the color green for all material displayed by
the system, blue for all input data provided by
the user, and red for all error messages. However,
you should not get carried away: most users will
get annoyed if their display screen looks like a
Christmas tree. The same is true of sound effects;
an occasional bell or beep is useful, but the user
doesn’t want the input device to produce all
the sound effects from a Star Wars movie.
21.2.3
Forms Design
Designing the formats of system inputs and outputs
has traditionally been referred to as forms design,
because most systems prior to the 1980s required the
user to encode inputs on paper forms that were then
transcribed onto punched cards before being entered
into a batch computer system. But even in today’s
on-line systems, there may be some forms design to
be done; consider, for example, the common situation
where the system input originates with an external
customer. The customer may provide the required input
by filling out a paper form and mailing it to the
users who interact with the system. Thus, some attention
must be given to the design of the form.
In some cases, the systems analyst can turn to an
in-house graphics department or to an external forms
manufacturer for help with the design of a form; alternatively,
the user may already have forms associated with the
existing system that she or he will want to continue
using in the new system. But there are also many situations
where the systems analyst and the user must design
a new form for a new system. While there are many
different styles for a form, they should all contain
the following basic information:
-
Title,
to distinguish this form from any other forms. The
title is usually printed in large, bold letters
at the top of the form so that the user knows that
this is an “order form” or a “trouble
report form.”
-
Instructions,
to tell the user how to fill out the required information
on the form. General instructions are usually placed
at the beginning of the form near the top; specific
instructions are typically given next to, or beneath,
each item of data that needs to be filled in.
-
Body,
the main part of the form, in which the data are
entered. This may be organized in an open style,
a boxed style, or a combination of both. The boxed
style is typically used for information that is
binary (e.g., “check this box if you want
your name added to our mailing list for future product
announcements”) or fixed-format (e.g., a telephone
number or zip code). The open style is typically
used for variable-length information such as a name
or address.
Deciding
exactly how the form should be laid out is an art
unto itself and is best done by people who are experienced
in form design. One of the most common mistakes of
the novice forms designer, for example, is that of
not leaving adequate space for the user to fill in
required information. This is particularly true of
forms that require handwritten information [11].
Depending on the application, the systems analyst
may design either cut forms or speciality forms.
Cut forms are usually printed on single sheets of
paper and are suitable for the vast majority of situations;
with the widespread availability of desktop publishing
systems and forms design programs, the user and systems
analyst can easily design their own forms.
Specialty forms are more complex, and should be designed
with the assistance of an experienced forms designer
(typically associated with a forms manufacturer).
The most common example of a specialty form is a multipart
form, which may use sheets of carbon paper between
the copies or special carbonless paper. The common
types of specialty forms are:
-
Forms bound
into books (e.g., sales order books).
-
Detachable
multipart forms, with an original and multiple copies
that can be separated (e.g., credit card charge
forms).
-
Continuous
forms, either manually filled out or computer generated.
-
Mailers:
preprinted forms already inserted into an envelope,
attached together as a continuous form. The computer
can then print standard information such as a customer’s
name and address and (through the judicious placement
of carbon paper) it will be printed on both the
envelope and the letter inside.
Specialty
forms are, as one might expect, far more expensive
than single-sheet cut forms; thus, some care must
be taken to ensure that they do not represent a major
system cost. The specialty forms should be produced
in a reasonable quantity to keep the unit cost down:
the cost of printing 10,000 copies of a specialty
form is often only 10% to 20% more than the cost of
printing 5000 copies. Standard-size forms should be
used so that the printer does not have to carry out
expensive cutting and trimming; most standard-size
forms are either 8.5 inches by 11 inches or 5.5 inches
by 8.5 inches.
21.2.4
Input and Output Codes
As part of the job of specifying input and output
formats, the systems analyst must often specify codes,
that is, abbreviations for information that would
be awkward and time-consuming to describe in detail.
Examples of codes are Social Security Numbers, zip
codes, ISBN numbers for published books, and Employer
Identification Numbers (EINs) that the IRS assigns
to companies that file tax returns.
The examples above represent external codes
for most of us; that is, regardless of the kind of
system, we have to use the coding schemes developed
by the IRS, the U.S. Post Office, and the Social Security
Administration. But there are often many situations
where we need to design new codes associated with
the system itself (e.g., customer account numbers,
part numbers, form numbers, product codes, color codes,
and airline flight numbers). Just as forms design
is an art, so coding techniques are a specialized
area of expertise; as Gore and Stubbe point out in
[Gore and Stubbe, 1983, a coding method must be:
-
Expandable — The code must provide space for
additional entries that may be required.
-
Precise — The code must identify the specific
item.
-
Concise — The code must be brief and yet adequately
describe the item.
-
Convenient — The code must be easy to encode
and decode.
-
Meaningful — The code must be useful to the
people dealing with it. If possible, it should indicate
some of the characteristics of the item.
-
Operable — The code should be compatible with
present and anticipated methods of data processing
— manual or machine.
In some cases, it may not be necessary, desirable,
or practical for the code to have any obvious relationship
to the item it describes. A good example is a customer
number, account number, or employee number in many
systems: the code is simply a number, chosen in sequence.
However, it is also common for the coding technique
to reserve blocks of numbers (or letters) for
items that fall into a common category; for example,
an order entry system might use a four-digit number
as a product number, with the numbers 1 to
500 reserved for standard items, and the numbers 501
to 999 reserved for specialty items.
Even more common is a classification code,
which uses groups of digits (or letters) within the
code to identify major, intermediate, and minor classifications
within the item being described. For example, to call
my office in London, I dial the following digits:
011-44-71-637-2182
The first three digits identify the phone number as
an international number (as compared to a call within
North America). The next two digits are the country
code, with 44 as the code for the United Kingdom.
The next two digits are the area code for London,
analogous to the three-digit area code used throughout
the United States. The next three digits represent
a telephone exchange and will often give the astute
user a good idea of the neighborhood in London where
the phone is located. And, finally, the last four
digits identify a specific telephone.
Alphabetic codes are also commonly used for information
systems. Most alphabetic codes are attempts at mnemonics,
or memory aids, that the user will be able to remember
easily [12]. Whether
the attempt is successful or not depends on the brevity
of the code (i.e., two characters versus ten characters),
the diversity and disparity of the data elements themselves,
and the user’s familiarity with the data elements.
For example, consider the two-letter codes used to
identify different airlines; most U.S. citizens would
immediately recognize that AA stands for American
Airlines, and UA stands for United Airlines. But how
many would know that HW stands for Havasu Airlines,
or that AQ stands for Aloha Airlines? With three-letter
codes, we have a somewhat better chance at choosing
mnemonic codes, as illustrated by the codes used to
identify airports. Almost everyone would know that
JFK stands for John F. Kennedy airport in New York
and SFO stands for San Francisco airport. But even
here we have trouble unless the user has memorized
many codes that are less than mnemonic (e.g., ORD
for O’Hare, and YYZ for the airport in Toronto!).
Finally, some codes are self-checking;
that is, they contain additional (redundant) information
that can be used to ensure that the code was entered
correctly. A common example of a self-checking code
is one that contains a check digit, which is usually
appended to the end of a numerical code. The check
digit can be calculated in a variety of ways, one
of which is given below:
check-digit
= 0
FOR each digit in the numeric code
sum = digit multiplied by its position number
checkdigit = checkdigit + sum
END
DO WHILE there is
more than one digit in check-digit
checkdigit = the sum of all the digits in
check-digit
ENDDO
For
example, if we had a numeric code of 9876, the check
digit would be computed as (9*1) + (8*2) + (7*3) +
(6*4), which results in 70. Adding together the digit
7 and 0 would yield a final result of 7 as the check
digit. The objective here is not to make the user
go through this calculation, but rather to use a code
that contains an embedded check digit (e.g., 9876-7).
Then, when the user enters the code into the system,
the computer can automatically recalculate the expected
check digit (using the algorithm described above)
and compare it to the actual check digit. If there
is an error, it will usually mean that one of the
digits was transposed by the user when she or he entered
it.
21.3
IDENTIFYING ADDITIONAL MANUAL SUPPORT ACTIVITIES
In the essential model, we assume the existence of
perfect technology — which means, among other
things, that we assume that our implementation technology
will never break down and never make mistakes. Users
may not be willing to accept this, and who can blame
them? Also, the user may decide that certain portions
of the automated system will be under his own operational
control (e.g., a desktop PC or minicomputer in his
work area) and he may be concerned about possible
operational errors that his own people could commit.
In addition, he may be working with financial data,
in which case there may be legal requirements (or
requirements imposed by the auditors) to ensure the
integrity of the inputs, outputs, and system files.
In most cases, these additional support activities
will be represented by new processes in the behavioral
model DFD. An example is shown in Figure 21.5.
In general, we have to be concerned about the possibility
of faulty technology in four major areas, as illustrated
by Figure 21.6.
Figure
21.5: A manual support error-checking activity
-
Getting
input into the system. If the input data are
provided by computer terminals connected to the
main computers via telecommunication lines, then
it is possible for some or all of a transaction
to be lost or scrambled. The same can happen with
almost any other form of input; for example, one
of a set of floppy disks might not be read into
the system).
-
Carrying
out the computations. Once the input data get
into the system, there is the remote possibility
that the computer itself might malfunction, and
the much larger (!) possibility that an error in
the computer programs might produce an incorrect
result. Computer hardware errors could occur within
an individual CPU or in the interface between the
various CPUs in the system configuration.
-
Long-term
data storage. Most systems retain data for long
periods of time on magnetic disk, magnetic tape,
floppy disk, and the like. It is possible for some
(or all) of this data to be lost or destroyed because
of computer hardware errors and/or computer software
errors. The hardware errors could consist of problems
in the storage device itself or problems in the
connection between the CPU and the storage device.
Software errors could occur either in the application
programs developed by the project team or in vendor-supplied
database management software.
-
Getting
output out of the system. The potential problems
here are analogous to the problems of getting input
into the system. In some cases, output must be transmitted
via telecommunication lines, often to the same CRT
display unit that is used for input. In other cases,
output is produced on magnetic tape or on paper
reports. In all cases, it is possible for output
information to be lost or incorrectly altered as
a result of hardware and/or software errors.
What
should be done about these possible areas of faulty
technology? Obviously, this depends very much on (1)
the estimated level of reliability of the hardware
and software being used, (2) the nature of the user’s
application, and (3) the costs or penalties associated
with faulty inputs or outputs. Obviously, this calls
for a detailed discussion between the user, the systems
analysts, and the implementation team; they may decide
to add any of the following items to the essential
model to deal with faulty technology:
Figure
21.6: Possible areas of faulty technology
-
Redundant
inputs and/or outputs. In the most extreme case,
duplicate copies of inputs could be provided from
two different sources (e.g., from two different
users at different CRT displays). And the system
could produce duplicate outputs (e.g., two different
copies of an output report printed on different
printers). This is an unusual approach, but may
have to be considered for extremely sensitive applications.
-
Redundant
processor technology. Data maintained by the
system could be stored, in duplicate, on two different
disks or magnetic tapes. And the computations carried
out by the system could be done, in duplicate, on
two different CPUs. Indeed, even more redundancy
may be required: while a second CPU or a second
disk unit allows the system to continue if the first
unit breaks down completely, it does not protect
against subtle errors. What if CPU1 and CPU2 carry
out the same calculation (e.g., the calculation
of interest on a savings account or the computation
of a missile trajectory for a flight to the moon)
and produce different answers? Which CPU is correct?
In the extreme case, then, we could even insist
on triplicate processors and triplicate data storage,
with majority voting logic to determine which two
computers have the right answer. But what if all
three computers disagree?
-
Internal
redundancy. A more common way to deal with faulty
technology is to provide partial redundancy. For
example, a bank teller who provides data about a
deposit in an on-line banking system might be asked
to provide both the account number and the name
of the depositor. While the account number would
normally be sufficient to identify the customer’s
record in the system, there is always the possibility
that the teller will enter it incorrectly, or that
the account number might be altered because of a
telecommunications error, or an error in the CRT
terminal, or an error in the CPU. Alternatively,
the system might require the bank teller to enter
only the account number and might verify that it
is correct by displaying the customer’s name
after the record has been retrieved.
-
Batch
controls. This is an approach that was first
introduced in second-generation batch computer systems,
but it is still relevant in many of today’s
systems. It requires that the user keep a count
of the transactions that she or he inputs to the
system, as well as a cumulative total of any important
data items within those transactions; in a financial
system, the obvious thing to count would be the
dollar amount of each transaction. Meanwhile, the
system maintains its own count as it receives transactions;
periodically, the system and the user compare their
counts to ensure that nothing has been lost or altered.
The same approach can be used with outputs: the
system can maintain its own count of the number
of transactions it has outputted, and this can be
compared with a manual count provided by the user.
-
Sequence
checks. Related to the concept of batch controls
is the sequence check approach. The user can assign
a sequence number or transaction number for each
input, and the system can verify, as it processes
those inputs, that they are all in sequence and
that no transaction has been lost. Similarly, the
system can attach a sequence number to each output
it produces, and the user can manually verify that
no outputs have been lost.
21.4
SPECIFYING OPERATIONAL CONSTRAINTS
Ultimately, the implementation team will have to decide
what combination of hardware, operating system, telecommunication
facilities, programming language, and design strategy
will best implement the requirements. But this will
be difficult to achieve without some statement of
operational constraints, which the essential model
deliberately avoids. The major issues are typically
such things as:
-
Volumes
of data. The user needs to specify volumes of
input transactions and the required size of data
stores. This is particularly important if there
are any major variations in transaction volumes
(e.g., during busy times of the day or busy seasons
of the year). Thus, the user may say to you, “We
normally process 2000 orders a day, but the volume
jumps to 4000 orders per day during the month of
December.” In addition, the user needs to
estimate the increase of transaction rates and storage
requirements over the estimated useful life of the
system. Thus, the user might say, “The INVENTORY
store needs to be able to handle on-hand balances
of 4000 different parts now, and we expect that
we’ll be dealing with about 6000 parts within
the next five years.” In general, you can
expect the amount of data stored by an information
system to increase by approximately 10% per year
[13].
-
Response
time to various inputs. This may be stated in
absolute terms, but is more realistically stated
as a probability: “90% of all transactions
must have a response time of less than 2 seconds.”
In some cases, this may be stated in terms of deadlines:
“The XYZ report must be produced no later
than 8:00 AM every morning,” or “all
deposit transactions must be processed by midnight
each night so that customers can determine their
current balance from their home banking systems.”
-
Political
constraints on implementation choices. The user
may, for rational or irrational reasons, specify
the brand of hardware to be used (or the brand of
hardware to be avoided), the programming language
to be used (“It’s gotta be programmed
in Java”), the vendor of telecommunication
facilities that will be used, and so on. This is
to be avoided wherever possible, but you should
expect at least some pressures of this sort. Note
that implementation constraints are more likely
to be imposed by the organization’s IT department;
that is, you’re likely to hear something like,
“Well, this new system sounds fine, but of
course it has to conform to the corporate computing
standards; that means it has run on Microsoft Windows
client machines, and the database has to be implemented
with Oracle.”
-
Environmental
constraints. Temperature, humidity, electrical
(RFI) interference, power consumption, limitations
on weight, size or electrical emissions, vibration,
pollution, noise, radiation, and other environmental
constraints may be imposed by the user on the implementation
team. Sometimes the user won’t mention this
explicitly; he’ll just assume that the new
system will operate satisfactorily within his normal
environment (e.g., in an oil refinery, on a factory
floor, or in an open office environment). Thus,
it may be necessary for you to document the relevant
features of the user’s environment for the
benefit of the implementation team. Or you may wish
to simply indicate in the user implementation model
that the system must operate in the user’s
environment, and let the implementation team figure
out for themselves what that means
-
Availability
and reliability constraints. The user may specify
mean time between failures (MTBF) and mean time
to repair (MTTR) for the system. The required system
reliability may also be expressed in terms of availability;
for example, the user may say, “We can’t
afford anything less than 99.5% uptime for this
system.”
-
Security
constraints. The user may specify a variety
of constraints intended to minimize unauthorized
use of the system. This may include a provision
for account numbers and passwords (so that individual
users will have to identify themselves). It may
also include mechanisms to prevent unauthorized
access to confidential data; some users may be allowed
to read records in various stores, while other users
may be allowed to modify (or delete) existing data,
and still others may be allowed to append new records.
And the user may request mechanisms to prevent unauthorized
users from carrying out certain functions in the
system (e.g., not everyone should be able to run
the payroll system). Various security measures may
be imposed on data coming into the system and leaving
the system; this could include, for example, encryption
of data transmitted over telecommunication lines
[14]. And,
for security purposes, the system might be required
to produce an audit trail: a complete listing
of all the transactions entered into the system,
all the outputs produced, and perhaps even a record
of all the changes made to the system’s files.
21.5
SUMMARY
The user implementation model is often described as
the “twilight zone” between structured
analysis and structured design. It cannot be
done by the systems analyst alone, and it is dangerous
for the analyst and the user to develop the user implementation
model without the participation of the designers and
programmers who will ultimately build the system.
While the functions, data, and time-dependent behavior
are ultimately the most important characteristics
of an information system, the human interface is often
the area that causes the most emotional reactions
from the user. Awkward input formats, confusing error
messages, and a slow response time can make even the
most elegant system functions unacceptable to the
user. And it should also be remembered that implementation
constraints imposed by the user (usually in an innocent
fashion) can torpedo even the best-managed project:
it may simply not be possible to implement the system
within the user’s constraints.
When the user implementation model has been built
and reviewed by users, systems analysts, and the designer/programmer
group, the business of systems analysis is done. At
this point, it is usually necessary to present the
results of the entire systems analysis phase of the
project to management in order to get approval to
continue on with the design and implementation of
the system. The presentation should include the following
information:
-
The current status of the existing system (assuming
there is one).
-
Problems (weaknesses, missing functions, etc.) that
were identified in the current system during the
initial survey or feasibility study.
-
Alternative solutions that were identified.
-
An overview of the essential model and user implementation
model, with as much detail as management wants to
see. Typically, the high-level DFD model is presented
and the detailed components of the model are made
available to management for their subsequent perusal.
-
Projected costs and benefits of the new system [15].
-
Cost, schedule, and resource (work hours) estimates
for the remaining phases of the project.
-
Recommendations of the project team or the systems
analyst.
Assuming
that management approval is forthcoming, the project
itself is just beginning: there is still a great deal
of design, programming and testing to be done before
the user finally receives the system he or she wanted.
These areas are discussed in the following chapters.

REFERENCES
-
Larry Constantine and Lucy A.D. Lockwood, Software
for Use. Addison Wesley, 1999.
-
Bruce Tognazzini, Tog on Interface. Addison
Wesley, 1992.
-
Thomas K. Landauer, The Trouble With Computers:
Usefulness, Usability, and Productivity. Cambridge,
MA: MIT Press, 1995.
-
Marjorie Leeson, Systems Analysis and Design.
Chicago: Science Research Associates, 1981.
-
Tom Gilb and Gerald Weinberg, Humanized Input.
Cambridge, Mass.: Winthrop Publishers, 1977.
-
James Martin, Design of Man-machine Dialogues.
Englewood Cliffs, N.J.: Prentice-Hall, 1973.
-
Marvin Gore and John Stubbe, Elements of Systems
Analysis, 3rd ed. Dubuque, Iowa: William C.
Brown Co., 1983.
-
Data
Processing Techniques: Coding Methods, Form
GF20-8093. White Plains, N.Y.: IBM Technical Publications
Department.

QUESTIONS AND EXERCISES
-
What are the three major things that the essential
model of a system describes?
-
Why is the essential model usually not enough information
for the systems designers and programmers to begin
implementing the system?
-
What additional information needs to be added to
the essential model?
-
What is a user implementation model? What are its
major components?
-
What are the two major implementation issues that
users generally have strong feelings about in an
information systems project?
-
Give a definition of the automation boundary of
a system. What other term or synonym could be used
instead of automation boundary?
-
Why do users often have strong feelings about the
format of inputs and outputs of an information system?
-
Give four examples of formatting issues (involving
either inputs, outputs or both) that a user might
want to specify as part of the user implementation
model.
-
Give three examples of formatting issues associated
with on-line systems that a user might want to specify
as part of the user implementation model.
-
How has the introduction of personal computers affected
the work that the systems analyst must do to develop
the user implementation model?
-
Give three examples of questions that will need
to be answered in the user implementation model
if user-controlled PCs are part of the implementation
of the system.
-
How does the introduction of fourth generation programming
languages in many organizations affect the work
that the systems analyst must do to develop the
user implementation model?
-
How does the concept of prototyping affect the development
of the user implementation model in a typical systems
development project?
-
How does the possible purchase of a vendor-supplied
software package affect the development of the user
implementation model in a typical systems development
project?
-
What mistake do many organizations make when developing
an essential model in a situation where they expect
to user a vendor-supplied software package?
-
What are the three extreme cases that might occur
when the automation boundary is being determined
for an information system?
-
Under what conditions is the user likely to have
no strong feelings about the placement of the automation
boundary in a systems development project? How likely
do you think this is in a typical organization?
-
Under what conditions is the user likely to opt
for a fully automated system when the automation
boundary is being determined, with all functions
carried out by computers and all data stored in
a computerized form?
-
Under what conditions is the user likely to opt
for a fully manual system when the automation boundary
is being determined? How likely do you think this
is?
-
How many alternative automation boundaries do you
think the project team should explore with the users
before finally settling on one? Give a justification
for your answer.
-
From the systems analyst’s point of view,
what is the simplest thing that could happen to
processes and data that have been placed outside
the automation boundary when the automation boundary
has been determined?
-
What is the more likely thing that the systems analyst
will have to do with manual processes and manual
data after the automation boundary has been determined?
-
What are the three major issues that need to be
addressed when defining the automation boundary
in the user implementation model?
-
Where should the systems analyst document the details
of most automation boundary issues that are discussed
with the user?
-
Give two examples of implementation constraints
on a data element that might be determined as part
of the automation boundary.
-
How can the state-transition diagram be effectively
used during the development of the user implementation
model?
-
What kind of manual support activities might need
to be specified during the development of the user
implementation model?
-
What are the five major types of operational constraints
on a system that usually need to be specified in
the user implementation model?
-
Why is it important to specify in the user implementation
model the volume of data that the system must handle?
-
Give three examples of political constraints that
might be imposed on a system as part of the user
implementation model.
-
Is your bank’s automated teller system a menu-driven
system or a command-driven system? What are the
advantages and disadvantages of the approach taken
by the system?

FOOTNOTES
-
[1]
This illustrates the need for good communication
between the users and the implementation team, as
well as systems analysts. While the users might
be quite interested in using fourth generation languages,
the implementation team may need to investigate
the performance of the language. Systems with large
volumes of input and output may find that the fourth
generation languages are too inefficient. We will
discuss this further in Chapter
23.
-
[2]
A very important assumption is being made here:
the essential model should be developed first, before
the vendor-supplied package is evaluated. Many organizations
do just the opposite: they first evaluate the package
and then try to derive a model of essential requirements
from the features of the package.
-
[3]
The user procedures for manual processes can be
based on the process specification for those processes.
Indeed, in the simplest case, the process specification
is the user procedure; however, since the process
specifications have been carefully written to avoid
any unnecessary implementation bias, they may need
to be expanded or rewritten to provide guidance
to the users.
-
[4]
Think for a moment about the kind of problems that
can be encountered by simply putting a PC, workstation,
or CRT terminal on the user’s desk. First,
there may not be room for it: the user may need
all the available workspace for other things that
he or she is doing. Second, there may not be enough
electrical outlets to plug in the terminal/PC, the
printer, the modem, and the other paraphernalia.
Third, the desk may be the proper height for reading
and writing, but perhaps not for typing. Fourth,
the surrounding office light may cause so much glare
that it is hard to read the information on the computer
display screen. Fifth, the noise caused by the user’s
typing on the terminal may prove bothersome to other
users in the same area.
-
[5]
Note that we are discussing inputs provided by the
user. Many systems (especially real-time systems)
must deal with devices that provide input independent
of any humans (e.g., radar units, data recorders,
and satellite signals).
-
[6]
Note that we are distinguishing here between the
use of the telephone instrument (handset) and the
telecommunications line. Many terminals are connected,
via a modem, to a telephone line; but here we are
talking about the telephone “handset”
itself as an input medium.
-
[7]
This situation is beginning to change, as telephones
acquire more and more intelligence, and as they
acquire small LCD display units of their own.
-
[8]
Indeed, you might need to use artificial-intelligence
tools as well in order to experiment with natural-language
input, voice input, graphical output, and so on.
-
[9]
But even with a batch system, the user may find
that she has entered some data into the system by
mistake. It will almost always be necessary to provide
the user with a facility to undo or reverse anything
that she has entered. But this should have been
discovered during your interviews with the user,
and it should already be evident in the DFD and
process specifications for the system.
-
[10]
For example, some systems may have a very homogeneous
group of users, all of whom have similar educational
backgrounds, and all of whom are provided extensive
classroom training before they begin using the system.
In other cases, the system may be intended for use
by the general public — in which case, it
must support different ages, different educational
levels, and different levels of familiarity with
computer technology.
-
[11]
Leave at least half an inch of vertical space for
each line of handwritten information on a form.
Leave at least 1/3 inch and some multiple of 1/6
inch for each line of typewritten information on
a form. Make sure that the typist does not have
to realign the typewriter for each line of information.
-
[12]
Some other alphabetic coding schemes appear to be
just the opposite of mnemonic; these are the codes
that are derived from one or more of the attributes
of the data element. An example is the code that
one finds on the mailing label for most magazines;
this subscriber code usually consists of a portion
of the subscriber’s last name, his or her
street address, zip code, the subscription expiration
date, and other details. As such, it is certainly
not mnemonic: there is no way that anyone would
remember a code that is often 20 or 30 characters
in length. However, once the code is given to the
computer system, the subscriber’s record can
be retrieved very quickly, which may be very important
for a subscriber data base of several million records.
For more information about such derived codes, see
IBM Form GF20-8093, Data Processing Techniques:
Coding Methods.
-
[13]
This estimate is based on a survey of approximately
500 U.S. computer installations, as documented by
Lientz and Swanson in Software Maintenance Management
(Reading, Mass.: Addison-Wesley, 1980).
-
[14]
Computer security is a major subject in itself and
is not discussed in any detail in this book. For
more information, consult textbooks on computer
security and computer crime; also, contact the Computer
Security Institute.
-
[15]
Cost-benefit calculations are discussed in Appendix
C.
|
|
|
|