Beruflich Dokumente
Kultur Dokumente
Sue Conger
The Global Text Project is funded by the Jacobs Foundation, Zurich, Switzerland
This edition was scanned and converted to text using Optical Character Recognition. We are in the process of
converting this edition into the Global Text Project standard format. When this is complete, a new edition will be
posted on the Global Text Project website and will be available in a variety of formats upon request.
PART 1 _____________________________________
PREPARATION FOR SOFTWARE ENGINEERING 45 _ _ _ __
v
vi Contents
I_ _ _ _ PARTII ___________________________________
I _ _ _ _ PROJECT INITIATION 111 ______________________________
PART III _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-
ANALYSIS AND DESIGN 199 _ _ _ _ _ _ _ _ _ _ __
Introduction 199 Transform Analysis 295
Application Development as a Translation Complete the Structure Chart 303
Activity 202 Design the Physical Database 310
Organizational and Autom.ated Support 209 Design Program Packages 312
Joint Application Development 210 Specify Programs 317
User-Managed Application Development 216 Automated Support Tools for Process-Oriented
Structured Walk-Throughs 217 Design 319
Data Administration 218 Strengths and Weaknesses of Process Analysis
CASE Tools 222 and Design Methodologies 322
Summary 225 Summary 324
CHAPTER 8 _____________
PROCESS-ORIENTED DESIGN 279 _ __ CHAPTER 10 __________________
DATA-ORIENTED DESIGN 391 _ _ __
Introduction 279
Conceptual Foundations 279 Introduction 391
Definition of Structured Design Terms 280 Conceptual Foundations 391
Process Design Activities 293 Definition of Information Engineerfng Design
Transaction Analysis 294 Terms 392
viii Contents
Information Engineering Design 401 What We Know and Don't Know from OOA
Analyze Data Use and Distribution 401 and OOD 534
Define Security, Recovery, and Audit Automated Support Tools for Object-Oriented
Controls 410 Design 534
Develop Action Diagram 424 Summary 535
Define Menu Structure and Dialogue Flow 438 Appendix: Unix/C++ Design of ABC Rental 539
Plan Hardware and Software Installation
and Testing 445
Automated Support Tools for Data-Oriented CHAPTER13_~_ _ _ _ _ _ ___
Define Attribute Edit and Validate Criteria 627 User Documentation 631
Define Data Conversion Activities and Mix of On-Line and Manual
Timing 627 Documentation 631
Select and Plan an Application Conversion Automated Support Tools for Forgotten
Strategy 627 Activities 632
ABC Conversion Strategy 629 Summary 633
PARTIV __________________________________
IMPLEMENTATION AND MAINTENANCE 637 _ _ _ _ __
As we move toward the 21st century, the techniques, variations in project assignments, company type, and
tools, technologies, and subject matter of appli- problem type. This book attempts to discuss much of
cations development are changing radically. Glob- what should be the ideal software engineer's project-
alization of the work place is impacting IS related knowledge and theoretical background in
development as well, by pressuring organizations to order to facilitate and speed the process by which
strive for competitive advantage through auto- novices become experts.
mation, among other methods. Strategic IS, reusable The goal of this book, then, is to discuss project
designs, downsizing, right-sizing, multimedia data- planning, project life cycles, methodologies, tech-
bases, and reusable code are all discussed in the nologies, techniques, tools, languages, testing,
same breath. Methodologies are being successfully ancillary technologies (e.g., database), and com-
coupled to computer-aided software engineering en- puter-aided software engineering (CASE). For each
vironments (CASE); yet object-oriented methodolo- topic, alternatives, benefits and disadvantages are
gies, which are being touted as the panacea for all discussed.
problems, have not yet been fully automated ... or For methodologies, one major problem is that
even fully articulated. Few if any tools, methods or most writing on methods of development concen-
techniques address the needs of artificial intelligence trates on what the analyst does. It is up to the indi-
and expert system development, which are currently vidual instructor and/or student to develop the how
driven by the program language being used for knowledge. Yet, the what knowledge is easy and
development. New technologies for true distribu- takes very little time to learn. If I say, "The first step
tion of processing are maturing, and integration in object-oriented methodology is to make a list of
across hardware and software platforms is the ma- objects," that sounds like a simple step. I may
jor IS concern in multiple industries [Computer- understand what I'm to do, but not how to do it. This
world, 10/15/90]. book is intended to shed some light on the how
IS professionals must be jacks-of-all-trades as information. One technique used to facilitate the
never before, but there is also increased demand for learning process is to develop the same case problem
domain experts who are intimately familiar with all in each methodology, highlighting the similarities,
aspects of a particular business area, such as money differences, conceptual activities, decision pro-
transfer in banking. It is difficult for anyone person cesses, and physical representations. Another tech-
to be both expert and generalist. But there are many nique is to provide cases in the appendix that can be
systems developers-I call them software engi- used throughout the text for many assignments, thus
neers-who do possess these attributes. Today's allowing the student to develop a detailed-problem
ideal software engineer is familiar with the alterna- understanding and an understanding of how the
tives, trade-offs and pitfalls of methodologies (notice problem is expressed in different methodologies and
the plural form), technologies, domains, project life using different techniques.
cycles, techniques, tools, CASE environments, hard- A related problem in software engineering texts
ware, operating systems, databases, data architec- is that little information is available on current
tures, methods for user involvement in application research and future directions. Information systems
development, software, design trade-offs for the development is a 30-year old activity that is begin-
problem domain, and project personnel skills. Few ning to show some signs of maturity, but is also con-
professionals acquire all these skills without years of stantly changing because the type of systems we
experience including both continuing education and automate is constantly changing. Research in every
xi
xii Preface
area of software development, from enterprise analy- focuses on how to choose the correct language for an
sis through reengineering 20-year-old systems, is application based on language characteristics, rather
taking place at an unprecedented rate. Moreover, than on how to program in the language.
the landscape of system development will change The audience for this text includes business, com-
radically in the next 20 years based on the research puter information systems, and computer science
taking place today. This text attempts to highlight students. The courses for which this text is appro-
and synthesize current research to identify future priate include software engineering, advanced sys-
directions. tem analysis, advanced topics in information
Many software engineering texts never discuss systems, and IS project development. Computer
problems attendant with methodologies. This text software engineering is moving away from a con-
attempts to discuss methodologies in the context of centration on developing the perfect program to a
their development and how they have evolved to realization that even perfect programs never work
keep pace with new knowledge about system devel- in isolation. Program connections are significantly
opment. Both useful and not-so-useful representa- more important than individual program code. Thus,
tion techniques will be identified. The book may be even computer scientists are recognizing a need for
controversial in this regard, but at least the knowl- methodologies, techniques for system representa-
edge that there are problems with methods should tion, and language selection.
remove some of the prevailing attitudes that there are The text was originally planned to accommodate
right and wrong ways to complete everything. either quarter or semester classes. I have taught this
Unfortunately, no methodology is complete enough material in both. While the written material is longer
to guarantee the same results from two different than anticipated, I believe the book can be covered in
analysts working independently, so interpretations one quarter because there are usually more contact
differ. I try to identify my interpretations and gener- hours with students. One of my goals was a book
alizations throughout the text. that did not require much additional outside mater-
The book is case-oriented in several ways. First, a ial to supplement the text; I hope this goal was met.
sample project is described, designed, and imple- Much of the bulk is explaining the how processes in
mented using each of the techniques discussed. Sec- Chapters 7-12, and these should be covered in class
ond, cases for in-class development are provided. to discuss alternatives, possible flaws in my think-
Third, cases for homework assignments are also pro- ing, and so on. If programming is also included in
vided. Research on learning has revealed that we the course, I suggest development of a two-quarter
learn best through practice, analysis of examples, (or semester) sequence that includes software engi-
and more practice. For each topic, an example of neering through system design in the first course and
both acceptable and unacceptable deliverables is the remaining subjects in the second course.
provided, with discussion of the relative merits and Every school seems to offer courses on "Ad-
demerits of each. Through repeated use of different vanced Topics in Systems Development" or Ad-
cases, students will learn both the IS topics and vanced Systems Analysis" or "IS Development
something about problem domains that will carry Project" that frequently use no book because nothing
over into their professional lives. covers all the desired topics. This book attempts to
Finally, this text has a bias toward planning, provide for these courses. Advanced systems analy-
analysis, and design activities even though the sis and development courses all tend to concentrate
entire life cycle is discussed. This bias is partly due on alternatives during the design process from which
to practical and space limitations; however, it is also decisions must be made. The typical systems analy-
because of the realities of changing software engi- sis course might discuss one technique for each
neering work. CASE promises to remove much of major topic area: enterprise modeling, data model-
the programming from business application devel- ing, process modeling, program design. That alter-
opment by automating the code generation process. natives are available is certainly mentioned, but
Although languages are discussed, the discussion there is simply not enough time to teach all topics,
Preface xiii
nor are students able to assimilate much informa- sity; Douglas Vogel, University of Arizona; Connie
tion about alternatives without becoming hopelessly E. Wells, Georgia State University; J. Christopher
confused. Advanced courses try to broaden the Westland, University of Southern California; and
knowledge base of students with discussions of Susan J. Wilkins, California Polytechnic Univer-
alternatives in each area. Even in these courses, sity-Pomona. My thanks for the helpful and sup-
without a hands-on orientation and concrete exam- portive comments.
ples to use for reference, the number of topics and Next, the Wadsworth "family" has been support-
alternatives is necessarily limited. The use of a sin- ive throughout the work, including Kathy Shields,
gle case throughout the text, together with cases for Rhonda Gray, Tamara Huggins, Peggy Mehan, Greg
home/school work practice, should broaden the Hubit, and Janet Hansen. Martha Ghent, the copy
number of topic areas that can be covered adequately editor, deserves special mention. Having never
in a one-semester course. worked through the copy process before, I ~ad no
idea what was done. Martha was easy to work with
and taught me how to improve both my writing and
ACKNOWLEDGMENTS _____ my punctuation.
Friends and colleagues, who have given me anec-
No textbook is published without the involvement of dotes, support, ideas, and comments, were invalu-
many people and I would like to acknowledge those able. The friends who have materially contributed
who have helped bring this book to fruition. I am to this project include Peter Keen, Connie Wells,
grateful, first, to my husband Dave and my daughter Judy Wynekoop, Irene Auerbach, Chung Pin
Katie, who have put up with haphazard meals and an Chuang, Karen Loch, Kuldeep Kumar, Scott Owen,
absent-minded wife and mother for a long time. Iris Vessey, Nancy Russo, Alex Heslin, Paul Halde-
Baby-sitters were especially important when I com- man, Marty Fraser, Eph McLean, Ross Gagliano,
muted four hours a day. I thank Elaine Black, Lis Jim Senn, Mike Palley, Dorothy Dologite, Ronnie
Nielsen, Sarah Cropley, Louise Shipman, Jacquie Wilkes, Jong Kim, Seok Jung Yoon, Dennis Strou-
Draycott, Ellen Crawford, and Angela Moore. ble, Mary Alexander, Ted Stohr, and the many stu-
Also, I wish especially to thank Peter Keen for his dent 'guinea pigs' (mine and others) from Georgia
unfailingly good advice and uplifting moral support. State University, Baruch College (CUNY), Univer-
I have never before worked with someone so free sity of Texas-Arlington, University of Dallas, and
with great ideas. Frank Ruggirello, who actually got New York University. Thank you all.
me moving and enlisted the supportive and helpful Finally, I would like to thank you, the reader, for
reviewers, played a special part in the project. I want buying this book and taking the trouble to read even
to thank the reviewers, who put up with my typos a portion of it. If you should disagree with my rea-
and grammar long enough to read about the ideas I soning or find errors or omissions that should be cor-
am attempting to convey. Their comments have ma- rected, I would be grateful for suggestions and
terially enhanced the final quality of this book. These correspondence.
reviewers include: Donald R. Chand, Bentley Col-
lege; Dale D. Gust, Central Michigan University; Sue Conger
Lavette Teague, California State Polytechnic Uni- Dallas, Texas
versity-Pomona; Jon A. Turner, New York Univer-
CHAPT ERI
OVERVIEW
------------------------------------~-----
OFSOFTWARE ----------------------~ ........-------
ENGINEERING - - - - - - - - - - - - - - - - - - - - - -__________r - - - - -
Software engineering is important because it Mary is describing the first steps used by a modem
gives you a foun4ation on which to develop a career software engineer in the development of a computer-
as an information systems development profes- based application. Software is the sequences of
sional. At the end of the course, you will understand instructions in one or more programming languages
a variety of approaches to analyzing, designing, pro- that comprise a computer application to automate
gramming, testing, and maintaining information sys- some business function. Engineering is the use of
tems in organizations. You will know the alternatives tools and techniques in problem solving. Putting the
for developing applications, and you will know two words together, software engineering is the
how and when to select from among them. You will systematic application of tools and techniques in the
be able to compare and contrast methodology dif- development of computer-based applications.
ferences and will know the major computer-aided A software engfneer is a person who applies a
software engineering (CASE) tools that support each broad range of application development knowledge
methodology. Finally, you will have an appreciation to the systematic development of application sys-
of the roles of software engineers and how they work tems for organizations. Software engineers used to
with project managers in application development. think of their job as conscientious development of
In the next section, you will learn what it means well-structured computer programs. But, as the field
to be a software engineer. Then, a framework for evolved, systems analysis as a task appeared along
discussing applications will help you categorize with systems analysts, the people who perform that
characteristics, technologies, and types of applica- task. Now, there is a proliferation of techniques,
tions in business organizations. The next several tools, and technologies to develop applications. Soft-
sections guide you through alternatives for overall ware engineers' jobs have ~volved to now include
management of the application development pro- evaluation, selection, and use of specific systematic
cess. The last section briefly outlines the remaining approaches to the development, operation, mainte-
chapters of the book. Along the way, major terms are nance, and retirement of software. Development
highlighted in bold print and defined so you can begins with the decision to develop a software prod-
begin to form a mental picture of the alternative uct and ends when the product is delivered. Opera-
approaches to software engineering work. tions is the daily processing that takes place.
Maintenance encompasses the changes made to the
logic of the system and programs to fix errors, pro-
vide for business changes, or make the software
SOFTWARE _____________ more efficient. Retirement is the replacement of the
ENGINEERING ___________ current application with some other method of pro-
viding the work, usually a new application.
This conversation might be overheard in a man- Fundamental skills of software engineers include
ager's office: 1. How to identify,evaluate, choose, and imple-
Consultant Manager: "All right, Mary, tomorrow ment an appropriate methodology! and
you start work on the rental proces~ing applica~ CASE tools
tion we are developing for ABC's Video Com- 2. How and when to use prototyping
pany. Mary, you are the ptoject manager. Are 3. How and when to select hardware, software,
you ready?" . . and languages
Mary: "Yes, our first job is to find out more about
the application. Then, Sam and I will decide 1 Techni·cally, the tenn methodology means 'the study of meth-
our approach to development and the documen- ods.' In infonnation systems work, the tenn is colloquially ac-
cepted to mean a collection of tools and techniques used to
tation that is needed. ABC's manager, Vic, is
represent an application's requirements. We use the Infonna-
willing to provide us with whatever we need. tion Systems (IS) fonn of the tenn meaning 'collections of
Then, we will complete a feasibility anal~sis tools and techniques.' CASE software automates the use of
and ... " the tools and techniques.
Software Engineering 3
4. How to manage activities associated with • Query processing for a customer information
configuration management, planning, and database
control of the development process
5. How to select computer languages and de- A quality SE product is
velop computer programs
• on time
6. How and which project testing techniques to • within budget
apply • functional, i.e., does what it is supposed
7. How to choose and use software maintenance to do
techniques • friendly to users
8. How to evaluate and decide when to retire
• error free
applications
• flexible
The goals of a software engineer are to pro- • adaptable
duce a high quality product and to enjoy a high
In addition to a quality product, quality of process
quality development process. The product of a soft-
is desirable. The software engineering process
ware engineering effort is a delivered, working com-
describes the steps it takes to develop the system. We
puter system, some examples of which include:
begin a development project with the notion that
• Accounts receivable processing there is a problem to be solved via automation. The
• Order processing process is how you get from problem recognition to
• Inventory monitoring and maintenance a working solution. A quality process is desirable
• Decision support for overnight funds because it is more likely to lead to a quality prod-
investment uct. The process followed by a project team during
• Collateralized mortgage obligatien cost the development life cycle of an application should
determination be orderly, goal-oriented, enjoyable, and a learning
• Insurance reimbursement processing experience.
• Funds transfer processing That we try to apply engineering discipline to
• Early warning system for problems with criti- software development does not mean that we have
cal success factors all the answers about how to build applications. On
4 CHAPTER 1 Overview of Software Engineering
the contrary, we still build systems that are not use- apply the techniques we know work best. Why? you
ful and thus are not used. For example, New York might ask. Organizations may know the right things
Bank lost millions of dollars (see Example 1-1) to do, but it is hard to change habits and cultures
because they used the wrong technology. Part of the from the old way of doing things, as well as get users
reason for continuing problems in application to agree with a new sequence of events or an unfa-
development, like those of NY Bank, is that we are miliar format for documentation. As Example 1-2
constantly trying to hit a moving target. Both the shows, compromise is possible. The example illus-
technology and the type of applications needed by trates some problems with revolutionary change and
businesses are constantly changing and becoming how revolution can be pared down to evolution and
more complex. Our ability to develop and dissemi- made acceptable.
nate knowledge about how to successfully build sys- You might ask then, if many organizations don't
tems for new technologies and new application types use good software engineering practices, why should
seriously lags behind technological and business I bother learning them? There are two good answers
changes. This book discusses where the field is now, to this question. First, if you never know the
and where it is likely to be in the 21st century. One right thing to do, you have no chance of ever using it.
thing is certain: The way we build systems in 10 Second, organizations will frequently accept
years will be vastly different from the way we build evolutionary, small steps of change instead of
systems today. The existing techniques that we ex- revolutionary, massive change. You can learn indi-
pect to be using into the next century are discussed in vidual techniques that can be applied without
this text. There will be other techniques yet to be complete devotion to one way of developing sys-
developed, and you will have to learn to use them, tems. In this way, software engineers can speed
too. One purpose of this text is to provide a founda- change in their organizations by demonstrating
tion for learning to learn software engineering. how the tools and techniques enhance the quality
Another reason for continuing problems in appli- of both the product and the process of building
cation development is that we aren't always free to a system.
Applications 5
Application Processes:
Data Output; Edit, Update,
Manua/lnterface Report, Query
Data Storage:
Computer Interface
)
)
Data Output;
Manua/lnterface
To
Accounting
Applications
may be defined by your use of purchased software relational, hierarchic networked, or object-oriented.
(such as a database management system's method, Relational logical data models are arranged in
e.g., Oracle, DB2, or Adabas4 ), or may be defined by tables of rows and columns. Hierarchic logical data
an access method provided by a hardware vendor models define one-to-many relationships in a tree-
(e.g., IBM's virtual sequential access method- shaped model that resembles an organization chart.
VSAM). Network logical data models define many-to-many
Data storage require two types of data definition: relationships.
logical and physical. The logical definition of data Object-oriented logical data models
describes the way a user thinks about data, that is, (OOLDMs) combine hierarchic and network log-
the logical data model. These definitions might be ical models to form a lattice-structured hierarchy.
OOLDMs are more specific in identifying classes
4 Oracle is a trademark of the Oracle Corporation. DB2 is a and subclasses of objects in a hierarchy. A class is a
trademark of the IBM Corporation. Adabas is a trademark of set of data entities that share the defining character-
Software AG, Inc. istic. For instance, the class customer might have
Applications 7
123426789SandraJaniceJones21 NorthfieidRoadFreeportGA442404042214960
is less meaningful than if it is split into related fields of information:
ENTITY: Person
subclasses for cash and credit customers. The lat- Figures 1-5, 1-6, 1-7, and 1-8 show logical data
tice network arrangement allows relationships to structured in each of the four ways for vendor-parts
remain unconstrained by a data management soft- information. Notice that the network and relational
ware conceptualization. diagrams are somewhat similar. The relational model
uses logical data connections to reflect relationships,
while the network model uses physical address
pointers imbedded in the data structure to maintain
the relationships. For the hierarchic model, you must
make a decision about which information is more
important within the data context. If both vendors
Vendor
and parts are equally important, then complete re-
dundancy with two hierarchies is required as shown
in the diagram.
The physical definition of data, or physical data
model, describes its layout for a particular hardware
device. Physical layout is constrained by intended
Supplies
data use, access method, logical model, and storage
device. External storage devices for data include
magnetic disk, magnetic diskette, optical disk, com-
pact disk, laser disk, digitally applied tape, and mag-
netic tape, to name a few. The major differences in
devices are the number of times a device can be writ-
Parts ten to [e.g., as in write-once-read-many (WORM)
technology], the cost, the amount of data that can be
stored, the portability of devices, and the type of
retrievals that can be done on data (e.g., magnetic
tape requires front-to-back sequential processing
FIGURE 1-3 Entity-Relationship Example versus direct accessibility to any data).
8 CHAPTER 1 Overview of Software Engineering
VENDOR-PART Relation
~~
l I I J V-No P-No Quantity
PART Relation
IP-No I Part-Name I Price Units
VENDOR Relation
1 1
PART Segment VENDOR Segment
P-No V-No
Part-Name Vendor-Name
Price Address
Units City
Quantity-on-hand r- State r-
f- Zip f-
Physical
Address
Pointer
01 ABC Hardware 123 Main St. Morristown NJ 07950 012401
High Values-
001 Screwdrivers 700 Each 012402 End of Chain
002 Nails, #1
VENDOR Segment
V-NO
Vendor-Name
Address
City
State
Zip
t
V-NO P-NO, Qty l Linkage Segment
1
PART Segment
P-No
Part-Name
Price
Units
02 004 1200
Linkage Set
01 004 1000
/
/
/
Vendors Parts
DATA: CON100
META-DATA: Field=Customer-ID
Size=6
Type=xxx999
Validation= Occurs once per customer
Well-Designed Screen
Poorly-Designed Screen
tion file interfaces have evolved over the last fifty business application. Lack of standards, such as for
years to include, for instance, placement of identi- graphics user interfaces (GUIs) slows business
fying information first and placement of variable acceptance of new innovations. Uncertainty over
length information last. Other interfaces are gov- which 'look' will become the standard, in the case
erned by numerous formal standards, for instance, of GUIs, leads to business caution in using new
local area network interface standards are defined by technology.
the Institute of Electrical and Electronic Engineers
(IEEE) and the open system interface (OSI) standard
for inter-computer communication is governed by
Application Responsiveness
the International Standards Organization (ISO). Few In this book, application responsiveness is how long
such standards are currently relevant to an individual it takes the system to act on and respond to user
14 CHAPTER 1 Overview of Software Engineering
100% -,-_--==---------::- _ _ _ _ _ _ _ _
Newly
Developed On-Line Applications
Applications
50%
Batch Applications
actions. Responsiveness of an application reflects the applied to a master file to create a new master file
fundamental design approach as batch-oriented, and a printed log ofprocessing. In batch applications
on-line, or real-time. Each of these approaches is the requirements relating to the average age and
defined in this section. Of course, in the real world, maximum possible age of the master file data deter-
any combination or permutation of these approaches mine the timing of processing~ 5 In addition to pro-
are used in building applications. Most applications cessing transactions, other programs in batch
designed in the 1990s are on-line with some batch applications use the master file as their major input
processing. In the 21st century, on-line applications and process in a specific fixed sequence.
will give way to more real-time applications. Figure
1-12 shows the transitio.l from batch to on-line to
On-Line Applications
real-time processing in the last half of this century.
Table 1-1 compares application responsiveness on On-line applications provide interactive process-
several categories. ing with or without immediate file update. Interac-
tive processing means there is a two-way dialogue
between the user and the application that takes place
Batch Applications
during the processing. This definition of on-line dif-
Batch applications are applications in which trans- fers somewhat from the use of on-line terminology
actions are processed in groups. Transactions are in other texts which assume that on-line systems are
gathered over time and stored together. At some pre-
defined time, the batch is closed and processing on
the complete batch is done. Transactions are pro-
5 See Davis, G. and Olson, M., Management Information Sys-
cessed in sequence one after the other. A system flow tems: Conceptual Foundations, Structure, and Development,
diagram of a typical batch application is shown in New York: McGraw-Hill, 1985, for a detailed discussion of
Figure 1-13. The batch of transactions is edited and batch systems.
Applications 15
*Relative measure
also real-time (see the next section). In this text, by one program and interpreted by the next pro-
on-line processing means that programs may be gram(s). The on-line programs keep a log oftransac-
resident in memory and used sequentially by numer- tions to provide recovery in case of error; this
ous transactions/events without reloading. prevents re-entry of data.
Figure 1-14 shows the difference between an On-line programs' dialogue with the user is to
on-line application and a batch application. In an ensure entry of syntactically correct data. The error
on-line application, small modules perform the func- correction dialogue replaces the error portion of the
tion and communicate directly via data passed update log. The remainder of the update log to doc-
between them. In the batch application, disjoint pro- ument updates becomes optional and, instead, an
grams perform the function and indirectly communi- acknowledgement of successful processing is dis-
cate via permanent changes to file contents created played to the user.
16 CHAPTER 1 OveNiew of Software Engineering
Transaction
Edit
Program
anual
Transaction
Data Entry
Master
Update
Program
Interactive
Data Entry
Module'
Completion
Acknowledgment
Update
Module
Interactive
Data Entry
Module
Edited
Transaction
Update
Module
Updated
Data to
All Current
Users Updated
Data
Refresh
Module
Maintain
Customers Customer
File
Maintain
Orders
Create
Shipping
Papers/Invoices
purchasing, payables, accounting, receivables, pay- structured, we mean that the problem is able to
roll, and personnel. They are characterized as appli- be defined completely and without ambiguity. The
cations for which the requirements, the data, and requirements are identifiable by a development
the processing are generally known and well- team.
structured. 6 By known, we mean that the function is A transaction application example is order pro-
repetitious, familiar and unambiguous. By well- cessing (see Figure 1-16). Order processing requires
an order file, customer file, and inventory file. The
contents of the files differ depending on the level of
6 An infonnative text on transaction processing systems is
On-line Business Computer Applications, 2nd ed., by
integration of order processing with accounts receiv-
Alan Eliaison. Chicago: Science Research Associates, able, manufacturing, purchasing, and inventory pro-
Inc., 1987. cessing. Processing of orders requires add, change,
Applications 19
delete, and inquiry functions for all files, pricing of SELECT CUST_NAME, CUST_ID, AND
items, and creation of shipping papers and invoices. SUM(CUST_SALES)
Inquiry functions should allow retrieval of informa- FROM CUSTOMER
tion about orders by date, order number, customer WHERE CUST STATE = 'NY' AND
ID, or customer name. The software engineer uses MONTH IN (1, 2, 3);
his or her understanding of general order processing
A language, such as SQL, is a declarative lan-
to customize the application for a given organiza-
guage, because you 'declare' what to do, not how to
tion and implementation environment.
do it. Declarative languages are relatively easy to
learn and use, and are designed for use by noninfor-
Data Analysis Applications
mation systems professionals.
Data analysis applications support problem solving Queries are one of three varieties:
using data that are accessible only in read-only
1. Interactive, one-of-a-kind. These are
mode. Data analysis applications are also known as
assumed to be thrown away after use.
query applications. A query is some question asked
2. Stored and named for future modification and
of the data. SQL, the standard query language for
re-execution.
database access, poses questions in such a way that
3. Stored and named for frequent unchanging
the user asks what is desired but need not know how
execution.
to get it. The computer software figures out the op-
timal access and processing methods, and performs The third type of query frequently replaces re-
the operations it selects. An example of a query ask- ports in transaction applications (see Example 1-3).
ing for the sum of all sales for customers in New The data for all query processing must be known in
York State for the first yearly quarter might look like advance and tend to come from transaction applica-
the following: tions. Query outputs may use program language for-
20 CHAPTER 1 Overview of Software Engineering
matting defaults (as in SQL), or may be formatted monitor key indicators of business activity that affect
for formal visual presentation or fed into other soft- their organization. EIS integrate information from
ware (e.g., graphical software) for summarizing. external information databases and internal applica-
Query applications support an evolving concept tions to provide an automated scanning and model-
called data warehouse, a storage scheme based on ing capability. The major difference in EIS from
the notion that most data should be retained on-line DSS then, is the incompleteness, potential inaccu-
for query access. A warehouse stores past versions racy, and ambiguity of the data.
of major database entries, transaction logs, and his- Group decision support systems (GDSS) are a
torical records. special type of DSS applications. GDSS provide an
historical memory of the decision process in sup-
port of groups of decision makers who might be geo-
Decision Support Applications
graphically dispersed. GDSS focus more on the
Decision support applications (DSS) seek to iden- group interaction processes with little or no data
tify and solve problems. The difference between de- modeling or statistical analyses. Data analysis soft-
cision support and query applications is that query ware in GDSS tend to be less elaborate than DSS
applications are used by professionals and managers software, but may include a spreadsheet and routines
to select and summarize historical data like the to present summaries of participant votes on issues
example above, while DSSs are used by profession- in either numerical or graphical formats. GDSS typ-
als and managers to perform what-if analysis, iden- ically provide such functions as
tify trends, or perform mathematical/statistical
analysis of data to solve unstructured problems. 1. Anonymous recording of ideas
Data for DSSs usually are generated by transaction 2. Democratic selection of group leaders
applications. 3. Progressive rounds of discussion and voting
Unstructured problems are ones for which not to build group consensus
all information is known, and if it is known, the users
may not know all of the relationships between data. For all DSS, application development is more for-
An example of a structured problem is to answer the mal than query applications, and less formal than
question: "What is the cost of a 5% salary increase?" transaction applications. The development life
An example of an unstructured problem is "What cycle tends to be iterative with continuous identifi-
product mix should we manufacture next year?" The cation of requirements. DSS software environments
difference between these two kinds of questions is are sophisticated and typically include software tools
that the structured problem requires one query of for communications support, statistical modeling,
known data to develop an estimate, while the prod- knowledge-base maintenance, and decision process
uct mix question requires economic, competitive, support.
historical, and product development information to
develop an estimate. Because the information may
Expert Systems
not all be known, DSS development uses an iterative
problem-solving approach, applying mathematical Expert systems applications (ES) are computer
and statistical modeling to the decision process. Cor- applications that automate the knowledge and rea-
rected and/or supplemental data are fed back into the soning capabilities of one or more experts in a spe-
modeling processes to refine the analysis. cific domain. ESs analyze characteristics of a
Executive information systems (EIS) are a spin- situation to give advice, recommend actions, or draw
off from DSS. EIS applications support executive conclusions by following automated reasoning
decision m&king and provide automated environ- processes. The four major components of an ES are
mental scanning capabilities. Top executives deal knowledge acquisition subsystem, the knowledge
with future-oriented, partial, inaccurate, and ambigu- base, the inference engine (or rule base as it is some-
ous information. They scan the economy, industry, times called), and explanation subsystem. Each of
and organizational environments to identify and these components are briefly explained here.
Applications 21
she may determine his or her degree of confidence in sions deal with daily operations. For instance, the
the ES's results. operational level in a retail organization is concerned
These four application types-transaction, query, with sales of products. The main operational level
DSS, and ES-will be referenced throughout the applications would be order processing, inventory
text to tie topics together and to discuss the useful- control, and accounts receivable. In a manufactur-
ness of methodologies, languages and approaches ing business, the operational level is concerned with
to testing, quality assurance, and maintenance for sales and manufacturing. The main operational level
each. applications would be manufacturing planning, man-
ufacturing control, inventory management, order
processing, and shipping.
Embedded Systems The information at the operational level is cur-
rent, accurate, detailed, available as generated, and
Embedded systems are applications that are part of relates to the business of the organization. Opera-
a larger system. For example, a missile guidance tional information is critical to the organization
application works in conjunction with sensors, remaining in business. As a critical resource, the data
explosives, and other equipment within a single mis- requires careful management and maintenance. The
sile unit. The application, by itself, is minor; its com- types of applications that support operational level
plexity derives from its analog interfaces, need for decisions and information are transaction processing
complete accuracy, and real-time properties within applications (see Figure 1-17). Query applications
the missile's limited life span once it is released. for current operational data are other applications
Embedded applications development has been that support operational level decisions.
the province of computer science educated develop- The information needs for managerial control are
ers rather than information systems (IS) educated mostly internal information, can be detailed or sum-
developers. mary, and should be accurate. Decisions made for
As business deploys ever more complex equip- managerial control concentrate on improving the ex-
ment in the context of computing environments, the isting ways of doing business, finding and solving
need for embedded systems skills will increase. This problems, and take a medium-range (e.g., quarter or
implies that IS education must also address real- year) view of the company's business. The types of
time, embedded system requirements, and that com- issues dealt with concern reduction of
puter scientists will continue to move into business
• costs by comparing suppliers' prices
for application development.
• the time to process a single order
• the errors in a process
Applications in Business
Applications are most successful when they match
the organizations' needs for information. Most in-
formation in organizations is generated to allow the
managers to control the activities of the organiza-
tion to reach the company's goals. Goals may be
short-term or long-term. Control of activities implies
information evaluation and decision making. There Operational Control
are three levels of organizational decision making:
operational, managerial, and strategic. Each level
has different information needs and, therefore, dif-
ferent application needs.
At the operational level, the organization requires FIGURE 1- 17 Application Types and
information about the conduct of its business. Deci- Decision Types
Project Life Cycles 23
7 Future developments in life cycles are discussed in 8 Boehm, Barry W., Software Engineering Economics. Engle-
Chapter 18. wood Cliffs, NJ: Prentice-Hall, 1981.
24 CHAPTER 1 Overview of Software Engineering
L-~In_it_ia_tio_n_----,~
~ Feasibility
Analysis '\
~R
\1 1
~ p~ra}
Design
~I Te~ 1\
"- Implement ~
' - - ~
Operate
and
Maintain
<----..Ret----lire IJ
FIGURE 1-18 Sequential Project Life-Cycle Model
Phases in the waterfall definition are defined as dis- feasibility analysis phase. In the following subsec-
crete even though, in practice, the information is tions, each phase of the project life cycle (SPLC) is
obtained in a nonlinear manner and the phase begin- defined,9 with the main activities and documents
nings and endings are difficult to distinguish. To identified.
identify discrete beginnings and endings, most com-
9 This definition is adapted from work conducted during The
panies use the completion of the major product (i.e.,
Assessment and Development of Software Engineering Tools
program or document) produced during each phase project sponsored by the U.S. Army Institute for Research in
as signaling the phase end. So, completion of a fea- Management Information, Communications, and Computer
sibility report, for instance, identifies the end of the Sciences (AIRMICS), contract DAKFll-89-C-0014.
Project Life Cycles 25
FEASIBILITY. Feasibility is the analysis of risks, ANALYSIS. The analysis phase has many syn-
costs and benefits relating to economics, technology, onyms: Functional Analysis, Requirements Defini-
and user organizations. The problem to be automated tion, and Software Requirements Analysis. All
is analyzed in sufficient detail to ensure that all of these names represent the time during which
aspects of feasibility are evaluated. the business requirements for a software product
Economic feasibility analysis elaborates are defined and documented. Analysis activities
costs of special hardware, software, personnel, define
office space, and so forth for each implementation
1. Functional requirements-"what" the system
alternative.
is supposed to do. The format of the func-
In technical feasibility analysis, alternatives for
tional requirements definitions depends on
hardware, software, and general design approach
the methodology followed during the analy-
are determined to be available, appropriate, and
sis phase.
functional. The benefits and risks of alternatives are
2. Performance requirements-terminal, mes-
identified.
sage, or network response time, input/output
Organizational feasibility is an analysis of both
volumes, process timing requirements (e.g.,
the developing and using organizatiop.s' readiness
reports must be available by 10 A.M.).
for the application. Particular emphasis is placed on
3. Interface(s) requirements-what data come
skills and training needed in both groups to ensure
from and go to other using applications and
successful development and use of the application.
organizations. The definition includes timing,
The decision whether or not to use consultants and
media, and format of exchanged data.
the type of role they would play during development
4. Design requirements-information learned
is made during organizational feasibility analysis.
during analysis that may impact design activ-
Organizational decisions include effectiveness of the
ities. Examples of design requirements are
organization structure and definition of roles of
data storage, hardware, testing constraints,
individual jobs in the organization as they will be
conversion requirements, and human-
with the new application.
machine interaction requirements (e.g., the
The feasibility report summarizes
application must use pull-down menus).
• the problem 5. Development standards-the form, format,
• the economic, technical and organizational timing, and general contents of documenta-
feasibility tion to be produced during the develop-
• risks and contingency plans related to the ment. Development standards include rules
application about allowable graphical representations,
26 CHAPTER 1 Overview of Software Engineering
documentation, tools, techniques, and aids DESIGN. Design maps "what" the system is sup-
such as computer-aided software engineering posed to do into "how" the system will do it in a par-
(CASE) tools, or project management sched- ticular hardware/software configuration. lO The other
uling software. Format information includes terms used to describe design activities include
the content of a data dictionary/repository for detailed design, physical design, internal design,
design objects, project report contents, and and/or product design.
other standards to be followed by the project During the design phase, the software engineer-
team when reporting project accomplish- ing team creates, documents, and verifies:
ments, problems, status and design.
6. The plan for application development is 1. Software architecture-identifies and defines
refined. programs, modules, functions, rules, objects,
and their relationships. The exact nature of
Analysis documentation summarizes the current the software architecture depends on the
method of work, details the proposed system, and methodology followed during the design
how it meets the needs of the required functions. phase.
Requirements from the work activities are described 2. Software components and modules-defines
in graphics, text, tables, structured English, or some detailed contents and functions of software
other representation form prescribed by the method- components, including, but not limited to,
ology being used. inputs, outputs, screens, reports, data, files,
constraints, and processes.
CONCEPTUAL DESIGN. Once the proposed 3. Interfaces-details contents, timing, respon-
logical system is understood and agreed to by the sibilities, and design of data exchanged with
user, conceptual design begins. Other names for con- other applications or organizations.
ceptual design activity include preliminary design, 4. Testing-defines the strategy, responsibili-
logical design, external design, or software require- ties, and timing for each type of testing to be
ments specifications. The major activity of concep- performed.
tual design is the detailed functional definition of all 5. Data-physically maps "what" to "how" for
external elements of the application, including data. In database terms, this is the definition
screens, reports, data entry messages, and/or forms. of the physical layout of data on the devices
Both contents and layout are included at this level. In used, and of the requirements, timing, and
addition, the logical data model is transformed into a responsibility for distribution, replication,
logical database schema and user views. If distribu- and/or duplication of data.
tion or decentralization of the database is antici-
pated' the analysis and decision are made during
conceptual design. The outputs of conceptual de- SUBSYSTEM/PROGRAM DESIGN. Subsys-
sign include the detailed definition of the external tem and/or program designs are sometimes treated
items described above, plus the normalized and opti- as subphases of the design phase. Whether they are
mized logical database schema. separate phases or not, the software engineering
Not all organizations treat conceptual design sep- team creates, documents, and verifies the following:
arately. Outputs of conceptual design may be in a 1. Application control structure-defines how
conceptual design document or might be part of the each program/module is activated and where
functional requirements document developed dur- it returns upon completion.
ing analysis. Depending on the project manager's
personal taste and experience, the conceptual design
10 Anyone who has designed a system will tell you that you
might be partially completed during logical design
cannot perform the conceptual design without some knowl-
and fully completed during physical design. In this edge and attention to the implementation environment. So,
text, the two phases, design and conceptual design, the "what" and "how" distinctions are generally, but not
are treated as one. completely, accurate when described as discrete activities.
Project Life Cycles 27
UNIVERSAL ACTIVITIES. There are two uni- used throughout most Fortune 500 companies as
versal activities which are performed during each cast-in-concrete requirements for building and docu-
life-cycle phase: verification and validation, and menting systems.
configuration management.
An integral part of each life-cycle phase is the
verification and validation that the phase products Problems
satisfy their objectives. Verification establishes the
As nonnegotiable documentation requirements, pro-
correctness of correspondence between a software
jects frequently produced thousands of pages of doc-
product and its specification. Validation establishes
umentation that no one except the authors ever read.
the fitness or quality of a software product for its
Information about applications was rarely in anyone
operational purpose.
person's head and communication overhead became
For instance, the individual code module specifi-
a major problem to completing systems successfully.
cations from design are verified to ensure that they
User/management approval to continue with each
contain accurate and complete information about the
phase was not based on their knowledge of what
functions they perform. The modules are validated
the system would do, but on some other criteria.
against the analysis phase specification to ensure that
Published studies showed that the typical written
all required functions have corresponding designs
application requirements document contained, on
that accurately reflect the requirements.
average, one-half to one error per page. The conclu-
Configuration management refers to the man-
sion that paper prose is not a good medium for
agement of change after an application is opera-
conveying the complex variety of application
tional. A designated project librarian maintains the
requirements led to the development of more graph-
official version of each product. The project librarian
ical representation forms.
is able at any time to provide a definitive version (or
Eventually, IS managers realized that the water-
baseline) of a document or software module. These
fall, when applied too stringently, not only did not
baselines allow the project manager to control both
solve the problems of bad systems, it contributed to
the software maintenance process and the software
a new generation of overdocumented bad systems.
products.
The result has been a scaling back on required doc-
umentation. Standards have become 'guidelines' for
History experienced project managers to consider and to pro-
The sequential life cycle was originally developed vide new project managers with review lists of
and documented in the 1960s to provide defense activities whose relevance they should consider.
contractors a life-cycle documentation standard for Each project team customizes the documentation
Department of Defense (DOD) projects. The cur- and development activities in addition to the tools
rent DOD Standard #2167a lists all activities and and techniques they use.
details all documentation required for software Even with relaxation of required documentation,
development as fulfillment of military contracts. As a sequential life cycle does not recognize the itera-
industry recognized that their own application tive, nonlinear nature of application development,
development projects were out of control, over bud- and cannot easily accommodate overlap of phases.
get, and unsatisfactory when complete, they modi- Many organizations now use a variant of the water-
fied the standard to eliminate defense/aerospace fall by performing the activities in an overlapped
terminology and replace it with industry specific ter- manner, sometimes called the 'pipeline' approach.
minology. Organizations modified the standard to Finally, the waterfall approach does not recognize
incorporate elements of methodologies, such as that the level of detail necessary to adequately doc-
structured development, data flow diagrams, and ument application functions is significantly different
walk-throughs, that were becoming known at the with the use of automated tools, use of diagrams
same time. In the late 1960s and early 1970s the (e.g., DFDs) to replace text, and use of high level,
waterfall and 2167 documentation standard were fourth-generation languages (e.g., SQL).
Project Life Cycles 29
Analyze and
Gather
Requirements
Design
Build
Prototype
Evaluate and
Refine
Requirements
Engineer product
to ensure complete
documentation
development
what is and is not in the prototype so that its design formalized. Details of processing, for instance,
and development are completed during the regular data validation and audit requirements, might be
application development. forgotten in the push to get a working prototype
into production. While this problem is easily
Problems solved, it requires user and management com-
mitment to a completed project. The problems
There are two major problems with prototyping:
with ensuring this commitment are political,
misuse to circumvent proper analysis and design,
not technical.
and never completing prototypes as proper applica-
tions. Prototyping has been used as one way to cir-
Current Use
cumvent rigidities in the sequential life cycle when it
is treated as a set of nonnegotiable activities. In this Although still misused in the development of undoc-
misuse, some authors refer to 'quick analysis' and umented, incomplete applications, proto typing for
'quick design' as if less work is done during those the above intended purposes is also alive and
phases. In fact, if done properly, the activities and healthy. All forms of query and DSS applications are
work are identical to those done in the life cycle, and candidates for iterative life cycles. Some languages
the effort normally placed on documentation is di- (such as Focus, Rbase, Oracle) have easy to learn,
verted to building software. short, very high-level programming languages that
The other major problem with development are naturally amenable to prototyping. A database
of a prototype is that the system might never get can be defined, populated with data, and queried in
Project Life Cycles 31
r--
Feasibility \
Analysis
Prototype
Activftles: ~
c=J\ c::J\
c::J\ \c::J
Unit Test
Evaluate and
Refine
Requirements
Implement
Feasibility
Program/
Unit Test
i\
'-------'
Implement I Implement
Prototype
approach is shown in Figure 1-22, which shows a gence. There is no life cycle that describes building
generic life cycle. The problem is defined. The SE of expert systems, although with a feedback loop
develops the application, which enters operation and between maintenance and definition to indicate iter-
maintenance. This approach is not suited to group ation, Figure 1-22 is appropriate to these systems.
work, so projects are limited to one person develop- There is no methodology of knowledge engineer-
ing small applications. There are two different types ing; rather, there are several techniques that one
of development groups that are in this category: de- might use depending on the nature of the expertise,
velopers of truly unique applications, and developers the personality of the expert, and the complexity of
who do not want too much control or structure in the problem domain. This life-cycle approach is
their work. appropriate for such emerging application domains
The first developer view that the problem is as long as it is a disciplined experimentation loop
unique and cannot easily be molded into a formal that includes feedback and documentation.
life cycle because of its nature is appropriate to The second view that all problems are unique,
applications using emerging technologies and tech- and if understood, do not require significant model-
niques, such as expert systems and artificial intelli- ing, documentation, or sequences to the analysis and
Project Life Cycles 33
\ Develop
16 times in productivity and more than that in accu-
racy. If the firm using this technique has only
the best, top 5% of programmers on its staff, there
is little risk. But how many firms actually have these
people?
~.------'-------
The view that we do not need a disciplined ap-
proach to developing applications implies that just
anyone can design and build good applications. Yet
daily we hear of users who have built complex
Maintain spreadsheet DSSs only to leave a company with no
documentation and no procedures for the next user.
We also hear of users (and, regrettably, people with
the title software engineer) who are leaders of proj-
ects that are canceled after spending millions of dol-
FIGURE 1-22 Generic View of Life-Cycle lars, because the pieces just do not work together.
Development For each type of application, there is a price with this
view: DSSs without an architecture cannot be ex-
tended; ESs without a plan are unreliable and un-
maintainable; TPSs without architectures and plans
development events. Since each problem is unique,
can only ever support one small piece of business;
there is no point in trying to repeat the analysis and
integration across subject data areas is impossible.
design experience. Development is viewed as a cre-
Even though ES and AI problem solving both use
ative activity that should be unconstrained. There
the learn-as-you-go technique, both require a differ-
should be no formal analysis, design, programming,
ent kind of discipline and rigor.
or testing, even though each of these activities must
be performed during the process. This approach
Current Use
denies the need for professional SEs or a profession
of software engineering. In fact, it is frequently a As related above, about 75% of all companies in the
cover for ignorance, or an excuse for laziness. This is United States do not use any life cycle or methodol-
a hacker's view of the world that is not appropriate ogy to guide their application development work.
to business organizations. With this statistic, it is no wonder that most applica-
tions do not perform as intended, are delivered late,
Problems overrun the budget, and have unsatisfied users.
If building small systems (e.g., less than 2,000 lines
Future Use
of code in a 3GL, like Cobol, less than 400 lines of
code in a 4GL), the developers, managers, and users For emerging technologies, techniques, or concep-
may not have problems. Many financial analysis tualizations of applications, this approach is an
models and small systems in brokerage firms are effective way to nurture development of a field of
34 CHAPTER 1 Overview of Software Engineering
knowledge. For these uses, it will remain. Unfortu- documentation produced by the process approach 14
nately, it will also remain for companies who believe includes, for example, context diagrams, data flow
that discipline and order cost too much, and who will diagrams, data store definitions, and structured
continue to suffer the risks involved with relying English process descriptions. In the course of a com-
solely on one person's skill and integrity. plete application development, many other types of
In summary, life cycles define a global break- analysis and design documentations are developed.
down of activities in the life of an application. No These additional documents are discussed in the
life cycle prescribes how to actually do the work chapters on analysis and design.
within the phases of a PLC. For that definition, we
turn to methodologies.
Current Use
Individual techniques such as context and data flow
METHODOLOGIES _ _ __ diagrams· are widely used and also supported in
CASE environments. Other techniques have been
Methodologies are procedures, techniques, and pro- replaced by newer methods, for example, paper-
cesses used to direct the activities of each phase based data dictionaries have been replaced by CASE
of a software life cycle. There are five classes of repositories or active data dictionaries, file design
methodologies: process, data, object, semantic, or has been augmented by normalization, entity rela-
none. Each has its own unique view of an application tionship diagramming, and so on.
that relates to its historical context, its own short-
comings, problems, and futures. In this section, a
Future Use
brief overview of the classes of methodologies is
given with a general list of documents produced by Process methods as attributed to DeMarco and
the analysis phase, problems with the methodology, others will ~ade as a distinguishable methodology
and short analysis of the methodology's current and with context and DFDs melded into a collection of
future use. Much of this material should be review. If techniques that will he used to support methodol-
it is not review, don't panic. Use this material to ogy customization.
learn the terminology for discussing the methods in
detail later.
In addition to the methodologies prescribing how Data Methodology
to do an analysis and design, a special class of meth- History
ods advises how to bring users into the process. That
class, sometimes called social methodologies, is the Data methodologies begin analysis activities by
last part of this section. first evaluating data and their relationships to deter-
mine the underlying data architecture. When the data
architecture is defined, outputs are mapped onto
Process Methodology inputs to determine processing requirements. The
History most used data methodology is information engi-
neering (IE) which was described by Finkelstein and
Process methodologies take a structured, top-down Martin.15 Documentation produced by the data
approach to evaluating problem processes and the
data flows with which they are connected. Process
methods developed during the 1970s in response to
14 The architects of process methods were Yourdon and Con-
increasing complexity of application processing, stantine, 1978; DeMarco, 1979; Gane and Sarson, 1979.
increased complexity of operating system environ-
15 See Martin, James, Information Engineering, Book 1: Intro-
ments (e.g., the IBM 360 generation of hardware), duction, Book 2: Planning and Analysis, Book 3: Design and
and the introduction of disk file processing with Implementation, Englewood Cliffs, NJ: Prentice-Hall, 1990;
sequential, indexed, and direct access methods. The and Finkelstein, C., Information Engineering, 1991.
Methodologies 35
approach discussed in this text is that of informa- through application. IE cannot easily be altered, at
tion engineering. this time, to accommodate object orientation or
As the use of DBMS software became pervasive knowledge engineering. But it will be around for
during the late 1970s and early 1980s, software some time with parts of the methodology replaced in
engineers recognized a need for improved ways of a customizing process. Individual techniques such as
designing data structures. Many methodologies were ERD will gain even more acceptance in the future
developed that concentrated strictly on the data as data administration increases.
aspects of applications with the processing added as
an afterthought [cf. Warnier, 1981]. As an attempt
to address the entire application development life
cycle, Martin and Finkelstein borrowed techniques,
Object-Oriented Methodology
packaged them in a new methodology, and inte- History
grated them to provide the first 'womb to tomb'
methodology. Information engineering, the result- Object-oriented methodology is an approach to
ing methodology, begins with enterprise level analy- system life-cycle development that takes a top-down
sis and proceeds through identification of view of data objects, their allowable actions, and the
applications and individual project life cycles. The underlying communication requirement to define a
methodology was not the work of one person; rather system architecture. The data and action components
it integrates concepts that were thought of as the best are encapsulated, that is, they are combined together,
at the time including entity-relationship modeling, to form abstract data types. Encapsulation means
normalization and other techniques relating to DB that if I know what data I want, I also know the
design. The enterprise level techniques are adapted allowable processes against that data. Data are
and widely used in organizational reengineering. designed as lattice hierarchies of relationships to
An example of analysis documentation developed ensure that top-down, hierarchic inheritance and
using information engineering includes entity rela- sideways relationships are accommodated. Encapsu-
tionship diagrams (ERD), entity hierarchy diagrams, lated objects are constrained only to communicate
process dependency diagrams, process hierarchy via messages. At a minimum, messages indicate the
diagrams, and third normal form logical database receiver and action requested. Messages may be
definition. more elaborate, including the sender and data to be
acted upon.
Current Use Object orientation developed during the 1980s
and 1990s as producing desirable software attrib-
Information engineering is gaining acceptance in utes (for instance, minimal coupling) espoused since
some of the largest U.S. corporations (e.g., Mobil, the 1960s. Object-oriented designs can result in soft-
Texaco) and is used in Australia (where Finkelstein ware with desirable properties: modularity, infor-
lives) but is not widely used otherwise. Other 'data' mation hiding, functional cohesion, and minimal
methods enjoy regional popularity.16 coupling. Like the other methodologies, bad designs
lead to bad applications.
Future Use Object orientation appears able to support the ab-
Some of information engineering's appeal is its stract concepts needed to automate meta-data and
position as the only methodology that represents all meta-meta-data needed for expert, intelligent, and
levels of organizational analysis from enterprise multimedia applications. Meta-data gives meaning
to data and is information about data. For instance,
a name or data type is information about the data in
16 Michael Jackson's Jackson Structured Development (JSD) is
the example (see Figure 1-23). Meta-meta-data is
used in England. Warnier-Orr techniques are used in compa-
nies such as AT&T. Chen's entity-relationship approach is
information about the meta-data that describes its
used in isolation in many corporations but is also part of in- allowable use to the application. These types of
formation engineering. definitions allow you to plug-in any hardware
36 CHAPTER 1 Overview of Software Engineering
Data D01
Meta-Meta-Data Type=Disk,
Logical Link = I/O Driver
Physical Link = SCSI Channel 0
Data SC01
device, software, or data to create an application zations, and experiments with its use are occurring in
environment. most large companies. Object design appears to be
Object orientation is still an immature discipline, the best suited method for real-time applications, and
undergoing almost daily evolution and change. As is useful for on-line applications. It is one of the IS
such, the details presented for object orientation buzzwords of the 1990s and appears often in every
in this text may be considerably different in five trade periodical, research journal, and booklist.
years.
The documentation produced by one object Future Use
approach for analysis/design includes, for example,
Keeping in mind that it is neither a complete nor a
a succinct paragraph describing the system, an object
mature methodology, the current high level of activ-
list, an object attribute list, an action list, an action
ity implies a future full of object-oriented applica-
attribute list, a message list, and several optional
tions, databases, and CASE tools. When done
diagrams.
properly, object orientation appears capable of sup-
porting many complex environments, including:
Current Use
intelligent applications, multimedia applications,
Object orientation is the usual approach to devel- and reusable code and reusable design objects. Look
oping applications in aerospace and defense organi- for object ori-entation to be around for a long time.
Methodologies 37
If you only learn one new methodology, this will be tics as constraints, the ES determines 'legal' config-
a profitable one to learn for the future. urations that meet the constraints.
At present, data and rules for evaluating data in
semantic applications are defined together within the
Semantic Methodologies application and not separated as in traditional appli-
cations. There is no separation of analysis and design
History activities per se for semantic applications either.
Semantic methodologies are used in the automation Rather, the task of knowledge engineering encom-
of artificial intelligence (AI) applications. AI, like passes three general tasks: eliciting knowledge from
object orientation, is in its infancy. By definition, an expert, analyzing it to define the heuristics and
AI methodologies are also in their infancy. data, and automating the information in some logic-
AI applications cover a broad range of intellectual based language, such as Prolog.
difficulty, ranging from recognizing to reasoning to
learning (see Figure 1-24). Most AI applications in Current Use
business are on the lower end of the AI spectrum, Knowledge-based systems are a growing segment of
and provide limited reasoning in applications. Busi- the applications portfolio in organizations today.
nesses are experimenting with more complex uses This is another class of methodology, along with
of AI. object orientation, that is in its infancy. Semantic
This discussion is about AI applications that methods are somewhat more well-defined for busi-
reason through problems to achieve expert level ness use than object methods. But, the extent of spe-
competence in a specific area of expertise. These cial training and expertise required to implement
applications are usually called knowledge-based intelligent applications make the knowledge inac-
systems (KBS) or expert systems (ES) applications. cessible to most practicing SEs.
Most ES contain the reasoning processes of one or
more human experts.
Future Use
Semantic approaches to system life-cycle devel-
opment automate the meaning of objects in the There is a significant amount and diversity of
application. For example, a knowledge object might research that will result in mature semantic method-
be composed of objects describing a 'legal' hard- ologies over the next decade. One major activity in
ware configuration. The reasoning process in the ES the future will be the addition of expert intelligence
first asks characteristics of hardware objects that are to current transaction, query, data analysis, and DSS
required for a system (e.g., speed of disk drive, size systems. Semantic method use will continue to be a
of disk drive). Then, using the required characteris- growth area in IS for the foreseeable future.
50% Recognizing
Percent of
Companies / Reasoning
/
Using AI /
25% /
_/ _ Learning
0% ~-
_ - --
1970
- -~---
- --
1980 1990 2000
---- 2010
shoddy work practices, and lack of rigor, usually which requires an off-site meeting of all involved
where it is most needed. Hopefully in the future, users and systems people, who meet for five to ten
more organizations will recognize the need for rigor days to develop a detailed functional description of
in developing applications ... their company's application requirements. Daytime meetings are
future might well depend on that recognition. Sec- used for new analysis; nighttime meetings document
ond, in order to use CASE tools and gain any of their daytime results for review and further refinement the
productivity improvements, some methodology is next day.
required. There are many benefits from user involvement in
application development. First, it builds commit-
ment by users who automatically assume ownership
User Involvement in of the system. Second, users, who are the real ex-
perts at the jobs being automated, are fully repre-
Application Development sented throughout development. Third, many tasks
Each of the previous methodology discussions are performed by users, including design of screens,
approaches the problem of application development forms, and reports, development of user docu-
as if it were done only by technically oriented per- mentation, and development and conduct of accep-
sonnel. Where in this picture is the user of the tance tests.
application? Ultimately, users must supply informa- We assume that user involvement is not
tion about the business functions and accompany- only desirable, but mandatory to truly effective
ing data that are being automated. In this section, application development product and process.
we discuss user involvement in application devel- This does not imply that such design will result,
opment so you do not think SEs work only with each only that it can. Using a social approach assumes
other. Although early applications were frequently that job enlargement isa desirable by-product of
built without discussions with users, isolation of SEs automation.
from users resulted in systems that might work tech- The most important aspect of user involvement
nically, but often did not meet user needs, and fre- is that it must be meaningful. The users must be de-
quently disrupted the workplace. cision makers and staff who fully understand the im-
In the early 1960s, Scandinavians began to voice pact of their decisions, and who are interested in
concerns over the social side effects of applications. participating in the development process. Using low-
Early systems frequently des killed workers. Socially level staff, or assigning 'expendable' managers is
oriented methodologies of application development not the way to have users participate in developing
were created in response to the concerns about the applications. Neither is co-optation of users desired.
effects of computerization. Social methodologies Co-opting means that you get people to agree with
describe an approach to SDLC that attends to social the outcome because they 'participated' in the deci-
and job-related needs of individuals who supply, sion process even though the alternatives are all de-
receive, or use data from the application being built. fined by the application developers.
Social methodologies are not really methodologies; The goal of user participation is for IS and non-IS
rather, they are user involvement techniques. These people to work together as business partners rather
techniques ignore technology completely and as- than as adversaries. When users participate, they
sume that some other approach to the technical make all nontechnical decisions. The SEs explain
aspects of application development is used along and shepherd users to make semitechnical decisions,
with user involvement. for instance, design of screens. The SEs explain both
The three main user-involvement techniques are the impact and reasoning of major technical deci-
joint application design (JAD), socio-technical sions. If this discussion implies that users call the
systems (STS), and Ethics. The most practical and shots, that is what is meant. User involvement means
popular method is joint application design (JAD) that users run the project, making the majority of
40 CHAPTER 1 Overview of Software Engineering
decisions and having final say on all major deci- What we will discuss throughout the text is how
sions. The SEs and other Management Information application types relate to each of the topics. You
Systems (MIS) staff act as service-oriented techni- will get answers to questions such as: Which life
cians, as they are. cycles and methods are most appropriate to which
In many organizations, the social aspects of work application types? When do application characteris-
are specifically felt not to be within the scope of re- tics and technologies affect the choice of life cycle
sponsibility of software developers. If the develop- and/or methodology?
ment staff are only technical in their orientation, this
is probably true. Then it is the responsibility of the
project manager to educate user and IS management Project Life Cycles
about the need to design the organization and jobs Project life cycles should also have been mostly re-
as well as the system. view. PLCs, per se, are not mentioned again. Rather,
In the United States, high levels of user involve- the phases of feasibility, analysis, design, testing,
ment are still unlikely and usually at the discretion of language selection, and testing each have their own
the project manager. In many cases of 'user involve- chapters. One difference between this text and most
ment', the reality is that users are not involved. Even other texts is that multiple methodologies and devi-
in companies that have user project managers, IS ations from the standard PLC are discussed in the
staff can ignore user desires and build the systems context of each phase.
they want to build.
SEs and users who have participated in user-
involved application development tend to be fully Part I: Preparation for
committed to user involvement as a requirement in Software Engineering
application development. Hopefully, the days of ap-
plication development by technicians who never Part I prepares you for the tasks of developing and
consult with users are gone, or soon will be. Future implementing an application. The chapters in this
generations of computer-literate users will demand a section introduce you to
say in how their systems are developed. The progno- • research on learning and software engineering
sis, then, is for user involvement to continue slow to highlight an effective means of studying
growth of use in the United States. and practicing this work
• the ABC Video case used throughout the text
• the roles of project manager and software
OVERVIEW _ _ _ _ _ __ engineers
OF THE BOOK __________ • methods of gathering information about the
task to be automated
In this chapter so far, we have prefaced and intro- • proper behavior during application de-
duced the major topics of the book. In addition velopment
to identifying specifically how the above topics
will be used later in the book, there are many more
topics that you will also learn that we briefly out- Part II: Project Initiation
line here. Mter you know how to elicit information, we begin
talking about project development. Part II first
Applications discusses organizational level re-engineering, a
method to developing application plans. Then, feasi-
Applications are the underlying topic of all we dis- bility analysis is detailed in the next chapter. These
cuss in this text. You should already have a fairly discussions are separated from those about the
good understanding of what an application is. We methodologies because these tasks are assumed by
will not discuss that topic further. most methodologies. For each chapter, the theories
Overview of the Book 41
underlying the concepts are introduced, a method of applicable automated support tools are identified.
performing the tasks is described, and examples are Chapter 15 discusses the selection of a target lan-
provided from ABC to help make the information guage for an application. Code for applications will
concrete. be increasingly generated by the CASE tool. As
CASE use increases, the need to code, then, is
replaced with a need to choose an appropriate
Part III: Analysis and Design language.
Part III is devoted to analysis and design activities Similarly, many applications now use purchased
that each take about 20% of application development software rather than customized code. Chapter 16
time. During analysis, the SE concentrates on defin- discusses the selection and purchasing of hardware,
ing what the application will do. During design, the software, or consulting services for application
requirements are translated to define how the appli- development.
cation will operate in its specific hardware and soft- Testing is required of all applications developers
ware environment. One representative methodology at present whether a machine generates the code or
from each broad class of methodologies is discussed not. Chapter 17 discusses different types of testing,
in detail in Chapters 7 through 12. Chapters 7 and 8 testing techniques, and the development of test plans
discuss analysis and design, respectively, for process for an application.
methodologies. Chapters 9 and 10 relate to data- Change is a way of life in application develop-
oriented methodologies. Chapters 11 and 12 present ment. Chapter 18 deals with the management of
object-oriented methodologies. Based on ABC's change for documents and software. The section on
rental processing application, we will discuss what software maintenance describes re-engineering as
each methodology can and cannot do for you during it applies to deciding whether or not to replace
logical definition of application requirements. For or maintain code. Several replacement options
each methodology, the theories underlying its de- are presented.
velopment are described and representative CASE Finally, the last chapter discusses careers in soft-
tools available to support application development ware engineering. Keeping current in a profession
are provided. that constantly changes is a daunting task. In Chap-
At the conclusion of the methodology discussion, ter 19, you will receive tips on the type of reading
Chapter 13 recaps the graphical representations and you should do and the types of professional organi-
thinking processes used in each methodology. The zations you might join to enhance your ability to stay
methodologies are compared and contrasted on sev- current. In addition, you will learn the types of jobs
eral sets of criteria. In addition, future developments available to you as a novice software engineer and an
in technology and applications and their impact on approach for deciding on a starting job.
methodologies are developed.
Some tasks are performed during analysis and de-
sign, but are not addressed by most methodologies. SUMMARY ________~___
These forgotten activities are included in this section
This chapter prefaces and summarizes the contents
and discussed in Chapter 14.
of the text. Software engineering was defined as a
systematic approach to the development, operation,
Part IV: Implementation maintenance, and retirement of software. A software
engineer is a person who has a broad knowledge of
and Operations methodologies, life cycles, languages, and all as-
Many tasks remain to complete an application de- pects of software development, and who applies that
velopment, including programming, testing, main- knowledge to the systematic development of appli-
tenance, and change management. Each of these cation systems. The two main goals of software en-
topics is related to application and methodology gineering are to build a quality product through a
types in Chapters 15 through 18. For every chapter, quality process.
42 CHAPTER 1 OveNiew of Software Engineering
N ext we defined applications characteristics, re- Davis, Gordon, and Margrethe Olson, Management
sponsiveness, and types. An application is a set Information Systems: Conceptual Foundations, Struc-
of related programs that perform some business ture and Development, 2nd ed. New York: McGraw-
function. The characteristics that all applications Hill, 1985.
Department of Defense, Standard for Application Devel-
have in common are data, processes, and constraints.
opment, Guideline #2167a. Washington, DC: US
Application responsiveness reflects whether the
Government Printing Office, 1985.
application is batch, on-line, or real-time. Finally, DeMarco, Tom, Structured Analysis. New York: Yourdon
application types include transaction processing, Press, 1979.
query, DSS, and expert systems. Eliason, Alan L., Online Business Computer Applica-
Project life cycle is the breakdown of work for tions, 2nd ed. Chicago, IL: Science Research Associ-
initiation, development, maintenance, and retire- ates, 1987.
ment of an application. Alternative project life Feigenbaum, E., P. McCorduck, and H. P. Nii, The Rise
cycles include sequential, iterative, and the learn- of the Expert Company. New York: Vintage Books,
as-you-go. The sequential life cycle includes a series 1989.
of phases for initiation, feasibility, analysis, concep- Gane, c., and T. Sarson, Structured Systems Analysis:
Tools and Techniques. Englewood Cliffs, NJ:
tual design, design, programming/unit testing, test-
Prentice-Hall, 1979.
ing, implementation and checkout, maintenance, and
Gane, Chris, Computer-Aided Software Engineering: The
retirement. Methodology, The Products and the Future. Engle-
Methodologies are policies, techniques, and tools wood Cliffs, NJ: Prentice-Hall, 1990.
that guide the activities of each phase of a software IEEE, IEEE Software Engineering Dictionary. Piscat-
project life cycle. The five classes of methodologies away, NJ: IEEE Press, 1983.
in this text are process, data, object, social, and se- Lientz, R P., and E. R Swanson, Software Maintenance
mantic. Process and data methodologies are fairly Management: A Study of Maintenance of Computer
mature guidelines for developing applications. Application Software in 487 Data Processing Organi-
Object and semantic are emerging methodologies zations. Reading, MA: Addison-Wesley, 1980.
that help us build systems using artificial intelligence McClure, Carma, CASE is Software Automation. Engle-
wood Cliffs, NJ: Prentice-Hall, 1990.
and new technologies. Social methods are really
Martin, James, Information Engineering, Book 1: Intro-
techniques for involving users and assume the use of
duction, Book 2: Planning and Analysis, Book 3:
one of the other four methodology classes as well. Design and Implementation. Englewood Cliffs, NJ:
Prentice-Hall, 1990.
Necco, Charles R., Carl L. Gordon, and Nancy W. Tsai,
REFERENCES ____________ "Systems analysis and design: current practices," MIS
Quarterly, December 1987, pp. 461-476.
Boehm, Barry W., Software Engineering Economics. Parnas, D. L., "On the criteria to be used in decomposing
Englewood Cliffs, NJ: Prentice-Hall, 1981. systems into modules," Communications of the ACM,
Booch, Grady, Software Engineering with Ada, 2nd ed. Vol. 15,#12, 1972,pp. 1053-1058.
Menlo Park, CA: Benjamin-Cummings, 1987. Sprague, Ralph H., Jr., and Hugh J. Watson, Decision
Booch, Grady, Object Oriented Design with Applica- Support Systems: Putting Theory into Practice. Engle-
tions. Redwood City, CA: Benjamin-Cummings, wood Cliffs, NJ: Prentice-Hall, 1986.
1991. Swanson, E. R, Information System Implementation:
Bostrom, Robert P., and J. Stephen Heinen, "MIS Bridging the Gap between Design and Utilization.
problems and failures: A socio-technical per- Homewood, IL: R. D. Irwin, 1988.
spective," Part I, MIS Quarterly, September 1977, Turban, Efraim, Decision Support and Expert Systems':
pp.17-28. Management Support Systems. New York: Macmillan
Chen, P. P-S. "The entity-relationship model-Toward a Publishing Company, 1990.
unified view of data," ACM Transactions on Data Yourdon, Edward, and Larry L. Constantine, Structured
Structures, Vol. 1, March 1976, pp. 9-36. Design. New York: Yourdon Press, 1978.
Study Questions 43
PREPARATION
----------------------~----------------
FORSOFTWARE ________~____~-
ENGINEERING
--------------------------------~-----
The four chapters in this section prepare you for the roles of project managers and software engineers
actual work of software engineering. Chapter 2 and how they complement each other. The kinds of
serves two purposes: First, research on learning and questions we will answer are: What does a project
software engineering are summarized to give you manager do? How does it differ from a software
some ideas about how to organize the text's material. engineer? Why is knowledge of management impor-
Good mental maps of the information ease your tant to a software engineer?
learning and help you keep the different methodolo- Last, in preparation for developing systems,
gies distinct. Second, a case describing an applica- Chapter 4 defines techniques for gathering the in-
tion to be built is introduced: ABC Video rental formation you need to analyze and design a system.
processing. The application is developed in each of Then, we will discuss how you should act and how
the methodologies we will discuss. to evaluate what you are told during information
Project managers and software engineers perform gathering. Sample dialogues between ABC man-
different duties and are usually different individuals agers and the software engineering team illustrate
on a project team. In Chapter 3 you will learn the the information presented in Chapter 2.
45
CHAPT ER2
LEARNING ------------------------.. --------~~
DEVELOPMENT
--------------------,.-------- --~ ..
INTRODUCTION _ _ _ __ knowledge development stages. In the declarative,
or what stage, we learn basic skills, rules, and activ-
There is rarely one 'right' solution application in ity sequences. We learn declarative knowledge be-
software engineering. Just as in Chapter 1, we said fore process knowledge. During the process, or how
there is rarely one 'right' way of getting a solution stage, we imbed the what knowledge into a process.
for an application. Despite this ambiguity of the We learn how to perform the activity sequences, and
software engineering process and product, there are how to integrate the different rules. In the last part
approaches to problem solving in software engi- of how learning, we internalize both the declarative
neering that are more successful than others. Your and process knowledge so they become part of our
gaining experience to know those approaches is automatic memory.l
one goal of this text. To assist you, this chapter dis- The internalization of declarative and process
cusses how we learn, how we evolve from novice knowledge occurs through
to expert, and how you can apply this knowledge to • experiencing real life
mastering the material in this book. In the second • doing classroom exercises
section, the case study we follow throughout the text • reading cases and solutions
is introduced. The case is related to learning ap- • developing practice problems with feedback
proaches suggested in the first section, and to the • studying both good and bad examples
review in Chapter 1. First, let us turn to learning and
the development of expertise. Cognitive psychology and artificial intelligence
research describe human thinking as case-based
reasoning. A case is a predetermined representation
How WE DEVELOP _ _ __ of event sequences in a particular setting. 2 During
KNOWLEDGEAND _ _ _ __
EXPERTISE _ _ _ _ _ __ 1 For a complete discussion of declarative and process knowl-
edge, see Chi, Glaser, & Rees, 1982.
46
How We Develop Knowledge and Expertise 47
Problem
Statement
Mental
Declarative Procedural Model of
Method Method Problem CASE
Knowledge Knowledge
Knowledge
Mental Model
Analyist r - - - - - - - t...~1 of Problem ~ Solution
Knowledge Solution Representation
Methodology Knowledge
FIGURE 2-1 Interaction of Knowledge Types in Systems Analysis (adapted from Vessey &
Conger, 1993)
knowledge. Problem task knowledge is the de- relies on experimental trial and error. When ana-
clarative and process knowledge of the problem lysts have applicable analogous experience, we try to
domain being automated. For example, order entry- fit that knowledge to the current situation to serve
inventory control processing describes a general several purposes: understanding of situational dy-
problem task domain. If we add that the system is for namics, generating options, and calculating the
a retail business, it is less general. If we add that the chance of success of an application option.
system is for Sears and Roebuck, for instance, it is In systems analysis tasks, there are frequently one
less general again. During the automation process, or more aspects of a problem that are unfamiliar to
we apply our knowledge of how to do analysis to the analyst. In unfamiliar situations, analysts first
the problem domain. We use analysis knowledge rely on aspects of the work with which we are
both to describe the current system and to develop familiar, then enlarge and broaden the applicability
the functions of the new system. of our analogical knowledge. But what happens
when we do not have the experience to use analogies
or our analogies do not appear applicable? Then, we
Use of Learned Information turn to expert/novice differences in problem solving
for general tasks to see what happens.
Case-based reasoning relies on our recall of past
similar experiences, that is, analogous events. Anal-
ogies are similar experiences that we use to Expert/Novice Differences
• classify problems in Problem Solving
• plan a course of action
• suggest explanations The differences between experts and novices are dif-
• suggest means of recovery from failures ficult to pin down. Expert analysts are considered to
have an extensive, internalized knowledge upon
When the analogy matches the current situation, which they draw to apply analogous problem
we use it to predict what will happen based on the domains and problem-solving techniques to a cur-
analogous event. When the analogy does not fit, we
rent analysis task. They work quickly, knowing what
look for similarities between current and past expe- they know and what they don't know, and are able
riences from which we can generalize to build new to determine at least one workable solution quickly,
analogies.
sometimes within minutes. A novice, on the other
During the learning process, we build our own hand, is slow and unsure, exhibiting some, but not all
examples to help us learn new information. We rec- expert behaviors, and making mistakes throughout
ognize similarities between different episodes, com- the process. Experts and novices differ consider-
pile the similar, generalized events, and form a new ably in their approaches to solving problems. For
memory case. This generalization process is learn-
instance, novices
ing. Learning calls for failure of an analogous ex-
pectation to work for the current case, followed by • develop local mental models of problem
explanation of the failure which we make sense of parts, that is, work on bits of small problems
and fit into our own memory as a new case. rather than on integrating the bits into a
Why is the use of analogy so important? System whole. For example, novices concentrate on
analysis is work that requires judgment and adjust- adding customers instead of concentrating on
ment. System analysis has nonoptimal solutions (i.e., customer maintenance, including add, change,
relies on satisficing), and takes place within a delete, and retrieval processing.
bounded knowledge base. Analogical reasoning is • use undirected search in a trial and error
better for systems analysis than reasoning by under- manner (for example, to determine the utility
standing because analogical reasoning relies on of a new technology). The undirected way is
experience to generate cases while understanding to look through several magazines to see if
How We Develop Knowledge and Expertise 49
they have articles on the technology, instead of • use directed searches in problem expansion
looking through a subject index at a library. and identification of similar problems
• analyze surface features (for example, think • analyze deep structures, not just define terms
of control statuses and their allowable values but analyze their meaning, fit, and the political
instead of the implications for processing that and technical implications
relate to each value) • use goals and plans to determine what steps to
• simulate design entities in isolation (for exam- take in finding a solution
ple, simulate video rental processing without • perform skilled sequences of actions including
paying attention to how it works with return mental simulation and top-down expansion of
processing) the problem
• misconceive actions (for example, never
Experts use knowledge of the application devel-
analyze the complete rental/return cycle)
opment process to direct actions independently from
• fail to integrate the chunked local models into
the problem. For instance, regardless of the prob-
a whole global problem solution (for example,
lem or methodology, you always begin with a defi-
fail to integrate history processing into the
nition of the scope of the activity. This abstract
rental/return cycle)
knowledge about structuring of a problem, proce-
Novice problem-solving strategies include satis- dures, and process uses internalized cases and plans,
ficing and conservatism. Satisficing means to know- and relies on experience. Problem analysis and
ingly elect a nonoptimal solution. 3 Novices search design involve decomposition of a problem into sub-
for any solution; experts search for the best solu- problems, relying on sub strategies of analogy and
tion. Conservatism is minimal change of a solution; understanding to guide decomposition in a top-down
it means the problem solver takes the first solution manner. When the problem domain is new and the
rather than testing alternatives. Novices search for problem type is new, expansion progresses breadth-
alternatives only when the existing method fails, but first. But, for problem solving in familiar domains,
they cannot always tell that the existing method is experts prioritize areas on which to focus, using a
failing. So, in becoming conservative, novices use depth-first strategy for each new area.
their first conceptualization of a problem. In contrast, With methodology training, practice, and feed-
experts use optimizing and alternative evaluation in back, novice software engineers can display many
analysis and design. Because of conservatism, expert behaviors in a short time, i.e., after analyz-
novices suffer breakdowns-errors in the problem- ing and designing as few as three case problems. 4
solving process. Since the process is both con- Methodologies sequence events, and constrain
strained and directed by a methodology, the and direct the actual analytical process. Guide-
breakdowns relate to the analyst's mental model of lines and heuristics about what to analyze and how
the problem and use of a methodology to develop a to analyze it are supplied by the method with com-
mental model of the solution. ments supplied by the text and instructor. Relation-
Conversely, experts do ships are identified to link each deliverable within
a method, associating the thought processes used
• categorize problems (for instance, ABC
to develop the deliverables. All of these directed
Video Rental processing is a simple form of
activities speed and simplify both the develop-
an order entry problem)
ment of expert behavior and the internalization of
• develop global mental models of the problem
methodologies.
that they 'see' or visualize the entire problem
Research on whether there are differences
solution
between methodologies for facilitating expert
3 See Simon [1960] for a more complete discussion of satisfic- 4 See Vessey & Conger, 1993, for an example of this type of
ing and decision making. study.
50 CHAPTER 2 Learning Application Development
behaviors is in its infancy. Several laboratory studies give up. Ask questions. Since we learn declarative
by the author and others identify process methods knowledge first, try to remember as much of the pro-
as easier to learn, with no noticeable difference cedural what knowledge as you can while you read
between methodologies in the delivered quality of the text.
the resulting proposed logical system. One thing we Try to think like an expert. Try to develop a
do know is that not all methodologies work equally global picture of the problem, methodology, or other
well for all problems. This information will be dis- subject in your mind and develop a plan of attack
cussed in Chapter 13. for your work session. Try to categorize probiems
both that you are working on and that you are having
with the work. Analyze your thought processes to
How to Ease Your develop a better understanding of your problem-
Learning Process solving approach. See if you can mentally simulate
your application design, asking yourself how com-
In this text, we assume that you want to go beyond plete it is and how well it solves the problem.
knowing the basics of systems analysis and design, Attempt to analyze the' deep structures' by asking
but that you do know the basics. We assume you what each term means and what it implies. Talk
have a working knowledge of structured systems about all of these thought processes both with your
analysis and design, data base, and programming. instructor and with other students.
Most systems analysis and design courses practice Practice your reasoning process by reviewing the
developing data flow diagrams. In this text, we will example in the text, by working through problems
discuss DFDs and compare and contrast them with at the end of each chapter, and by talking to other
other methods, building on your current state of students about the reasoning you used to develop
knowledge. If you don't feel confident about your your representations. Try different ways of doing the
ability to draw data flow diagrams, there are exer- same thing. When you find mistakes, try to learn why
cises at the end of Chapter 6 for practice. For data- what you did was not the best, and how you could
base knowledge you should know and understand have reasoned to develop a better answer. Through
the value of normalization, and you should be these processes, you will learn valuable problem-
familiar with SQL and at least one database package. solving skills that will be useful throughout your
For programming, you should have practice with career in IS.
some procedural language (e.g., Cobol) writing and
debugging programs that read sequential files to gen-
erate reports. Knowledge of data structures, files, APPLICATION _ _ _ _ __
and a structured language, such as Pascal, is helpful
but not necessary to using this book successfully. DEVELOPMENT _________
Application development is essentially a prob- CASE _ _ _ _ _ _ ___
lem-solving exercise which is unique because there
is rarely one right or best answer to an automation Now, we are going to switch gears, away from the
problem. Practitioners and professors of application theoretical to the realistic. In this section, we pre-
development will both tell you that the best way to sent the case used throughout the text. The setting, a
learn software engineering is to "Do it!" A quote to video store, is used for two reasons. First, it is a sim-
support this idea comes from Confucius: ple business that should allow you to build an accu-
rate, complete mental model. A complete mental
I see and I forget,
model is crucial to developing an accurate solution
I hear and I remember,
in any methodology. Second, most of us rent videos
I do and I understand.
and have analogous knowledge that we can practice
In doing, you will make mistakes, get con- using. As you read the cases, try to apply the ideas
fused, and think you are completely wrong. Don't discussed in the previous section. Ask yourself,
Application Development Case 51
What is the 'big' picture? Do I understand this prob- Some busine~ses charged one price for all rentals,
lem? Use analogies from your experiences as a video usually about $2.00 per videotape per day. Some
store customer (or clerk) to the way Vic wants to run businesses Qffered promotions, such as "Two-Fer-
his business. Tuesdays," for which two tapes were the same price
The case-ABC Video Rental Processing-is as one.
representative of the class of order processing/ Sooribusinesses recognized that 80% of their
inventory control problems. Through its process- videos were rented within 20 days of a tape's release
ing, customer, inventory, and order files are main- into the market. With this recognition, video stores
tained. In addition, ABC Video Rental Processing introduced a two-tiered pricing system, charging a
also is unique in that the video rental business is new-release price and an old-release price. The mar-
different from other businesses, and ABC's video ket began to destabilize and small store owners, for
rental processing is distinct from other video rental whom the business was a sideline, were forced to
businesses. decide if they wanted to devote the floor space to
ABC Video rental processing similarities and dif-: videos which soon became obsolete, or if they would
ferences from other types of order processing appli- abandon the business. They abandoned the business
cations highlight the importance of knowing how to in droves and the video rental industry went through
learn. The similarities allow you to use analogy to a period of consolidation.
determine the general requirements of the applica- The business today is stable, but is becoming
tion. For instance, all orde~ entry applications require monopolized by large chains: RKO and Blockbuster,
customer, order, and inventory databases. Con- for instance. ABC is an anomaly in this market
versely, each company does its own detailed pro- because it is still a one-person, one-store operation.
cessing for order fulfillment. In ABC's case, it is a Vic, ABC's owner, would like to offer unique and
rental company, not a sales company, and rentals are useful services with a minimum of 'bureaucracy' in
not handled the same as sales. So even if you already the process, and to eventually franchise his business
know order processing, only a portion of the knowl- expertise. With these goals in mind, we turn to his
edge will be applicable to the rental situation. Keep business requirements for defining the video order
this in mind when you discuss your own video store processing application Vic wants to build.
experiences. Each store has its own 'brand' of pro-
cessing that might differ from ABC's. You must con-
stantly evaluate the applicability of your past
experience to the current situation, trying to use ABC Video Order
everything possible without forcing inappropriate Processing Task
past knowledge on the new client's application.
Next, the context of the industry is described. ABC Video rents video cassettes to customers. Since
this business is becoming more competitive, Vic, the
owner, wants to automate rental processing, inven-
tory maintenance, and an expert system to speed and
History of the Video simplify the rental process. Vic prepared information
Rental Business for the consulting team to begin work. Vic tried to
separate what he wanted from what he needed. So,
The video rental industry experienced phenomenal the application business requirements are listed.
growth during the 1980s; The cost of entry into the Then, Vic's 'vision' of the application is presented.
industry was low, every mom-and-pop store, super-
market, and small time entrepreneur entered the General Requirements (Excerpted
market. There was no stability in the market and from a niemo from Vic to consultants)
competition was fierce. For instance, some busi- ... ABC Video currently owns two PC ATs and can
nesses required "membership fees," others did not. get IBM compatible PCs cheaply. I would like all the
52 CHAPTER 2 Learning Application Development
machines hooked together somehow to share the 7. All fields must be allowed to be changed as
information and have some equipment backup in case required.
a PC breaks down. Each PC will have a printer for 8. Reports on number of new customers by month,
two-part forms. If the customer wants a copy of an by year, 'bad credit risk' customers, late return-
order, he or she takes the top copy and signs the bot- ing customers, expired credit card numbers
tom. I need a signed copy to legally charge for unre- must all be allowed.
turned tapes. 9. Deleting of customers must be allowed by the
I want to minimize typing throughout all the process- manager (Vic) only.
ing. Bar code readers are cheap. Can we use that tech-
nology for keeping track of rentals? Video Requirements
There are three to six clerks doing rentals at anyone Videos are taped movies, sports, or music events that
time, sharing machines. Rental/return processing is are rented to customers.
about 90% of the business. Machines should be
allowed to do any processing, but should stay set at 1. All videos received in the store must be 'regis-
rental/return processing once there. I want to be able tered' and tracked. Minimum information is
to know where every tape in the store is---out on identification number of copies, title, vendor,
rental, on the shelf, or waiting reconditioning. code, and date received. Video registration
should use some technology (a bar code
Business requirements relate to customer, videos, reader?) that does not require typing.
rentals, and history information. Each of these 2. Individual copies of videos should be identifi-
requirements are listed below. able for rental/return processing.
Customer Requirements
3. All copies of a title must be identifiable to track
rental trends.
Customers are people who desire to rent videos for 4. Counts of the number of rentals by copy and by
one or more days. title should be available for reporting.
5. Retrieval of video information for reporting
1. All customers must be 'registered'. This means
must be allowed on any single or multiple crite-
they must have an easy to remember identifica-
ria. Common reports needed will be for mainte-
tion code, plus their phone number, name,
nance (based on how many rentals), number of
address, credit card number, credit card type,
tapes and rentals by type (e.g., musical, horror,
and credit card expiration date on record before
drama, comedy), and for tapes that have not
they may rent videos.
rented in the last x days.
2. All members of a household should be able to
6. I don't know how hard or expensive this is,
share the same identification number.
but I would like some history information,
3. Customers are required to pay rentals in
such as
advance and settle late fees before any new
rentals are allowed. • rentals by copy by title
4. Customers can return tapes in three ways: • days rented by month by year by copy
by title
• Drop off through a slot in the door
• rentals by customer so I can warn them when
• Drop off at the desk as they walk in to get
they try to re-rent a title
new videos
• Drop off as they take out new rentals 7. Future provisions should allow for
5. Customers who fail to return tapes or damage • tracking the number of days of rentals by
tapes are charged for the video on their credit copy by title or by dates of rentals
cards. Their customer record must be marked • multiple rental products (such as VCRs, cam-
'bad credit risk' and they will not be allowed to corders, CDs, video games, Nintendo game
rent videos. sets, and so on)
6. Retrieval of customer information must be • automatic debit card or credit card payments
allowed by identification, phone, name, • variable rental charges based on promotions,
address, zip, or credit card number. date of receipt, and so on
Application Development Case 53
Rental Processing zero on the order. The customer signs a copy of the
order form as it is printed on a printer and takes the
1. First, NO BUREAUCRACY! Second, the
video(s) home.
process MUST BE EASY. The rental process
must not require customers to carry a card, On return of tapes, the clerk scans the bar code IDs of
must not require clerks to type much, and must the videos. The system should retrieve and display the
be easy to learn. Return processing must also be order with the return date and any late fees added to
simple and flexible. the detai1line. If either there are no late fees or late
2. To take out tapes, customer ID and video IDs fees are settled upon return of the video, the order is
are entered. All other information should be deleted from the system and the history of use infor-
pulled from the computer. mation for the tape is updated. Late fees, and the
3. The system should compute total charges, order information about tape(s) rented that caused the
include late fees, and compute change for late fee( s), remain on file until they are paid.
money entered.
Trend analysis should include query capabilities with
4. The computer must be hooked to a cash drawer
statistics built in. This should be available on an
or cash register that unlocks when the money
ad hoc basis without having to anticipate all queries
is entered.
and/or types of analysis in advance. Part of the analy-
5. A printed copy of orders must be kept and
sis is used to determine how many tapes of each film
signed by customers. These go to accounting
to purchase. Trends might be based on sequential
and are reconciled at the end of the day.
nights of rental, number of nights rented within the
6. End of day totals for the cash registers must
first 20 days, number of nights rented within the sec-
show a total number of tapes out, cash paid,
ond 20 days, and so on. Each individual tape, even
tapes in, on-time tapes, late tapes, late fees, and
though it might be the nth copy of m copies of the
a total amount of money in for the day.
same film, should be identifiable for this analysis.
Vic's Vision of Rental/Return Processing These requirements are not included with the descrip-
tion of required file information above, because
Customers choose videos for rental either by taking
you should determine the best way to supply this
the empty box from a shelf in the store or by telling
information.
the clerk the video name(s). The clerk retrieves the
tape(s), which are filed alphabetically by name. The
clerk enters customer identification (could this be
phone number?) into the system to retrieve the cus- Discussion
tomer's record and to create an order. Any late fees Let's stop here a moment and think about the ABC
from previous rentals must be settled before a new
Rental Processing case. First, get a global mental
rental can occur.
model of the problem. The problem is to automate
The clerk uses a bar code reader (or other scanner) to rental/return, customer, and video inventory pro-
scan the video identifier and enter videotape identifi- cessing, including totaling of orders, computing
cation into the system. For each video bar code change, monitoring of late returns, and creation of
entered, the system completes the rental detai1line on
historical information. This sounds like a complete
the screen with today's date, videotape identification,
video name, and rental price. When bar code IDs for
statement of problem scope, and it could be used for
all videotapes to be rented have been entered, the sys- that purpose. In this case, the problem is small
tem computes the total fee, automatically computing enough to hold most of the functions in mind at
and adding in sales tax. Late fees may be added to the once.
total if any are outstanding. The customer is told the Do you know enough to automate the problem?
total amount and the money is paid. No, you do not, not if you want to do it properly. The
When the clerk enters the money amount into the sys- processes, in terms of how a customer will interact
tem and puts the cash into the cash register, the sys- with ABC personnel, are fairly simple. Rental pro-
tem reduces the amount paid by the total fee amount cessing has fairly well-defined data requirements
to obtain the amount of change due to the customer. and business requirements about how to do the
The amount due to ABC for the rental is reduced to process steps. The flow of processes for rentals still
54 CHAPTER 2 Learning Application Development
needs elaboration, but is complete enough for under- ences. When we match a pattern from experience
standing the general problem. with some current problem, we use analogical
What don't you know? The kinds of questions we thinking. When a past experience does not match
will ask will be details of what we already know: some current problem, we analyze the differences
How many? How often? What about variations on to develop a new case based on the new situation.
the process? Questions will also elaborate on con- The internalization of cases in our memory is
straints and determine if there are interfaces. Some learning.
examples of specific questions include: How many Novices differ from experts in their problem-
videos are there in the store? How many new ones solving approach. Novices make mistakes because
arrive each month, week, day? How many customers they do not have a global view of a problem, cannot
are there? How many rentals per day? What kind of mentally simulate a solution to the problem, and do
security is needed? Does Vic already have software not see connections and meaning in problem parts.
in mind for this application? Experts are able to analyze novel problems because
There are many more questions we will ask as they use analogies from their experience to develop
we move through the text, and the type of questions a global view of the problem, can take a top-down
varies with the methodology. Even with many ques- view of what they know and do not know, can sim-
tions, we do know quite a bit about the overall ulate their solutions mentally, and understand con-
process and Vic's ideas for how the process should nections and meaning in problem parts. Several tips
work. We know much less about specific details of for practicing software engineering were provided to
the operation that we need to fully understand the speed and simplify your learning.
problem and devise a workable solution. We will get The case company, ABC Video, and its role in the
more details as we progress through the text. video rental business was described, rental-order
In terms of the Chapter 1 discussion on types of processing details were developed.
applications, rental processing will be on-line with
interactive processing. It is a transaction processing
application with some query processing. The rental REFERENCES
application transaction portion automates the paper- --------~---
Adelson, B., and E. Soloway, "The Role of Domain
work of rentals, returns, and payments for rentals. Experience in Software Design," IEEE Transactions
The query and reporting part of the rental application on Software Engineering, SE-11, Vol. 11, 1985,
uses predefined data in a read-only manner, and has pp. 1351-1360.
predefined reporting requirements as well as ad hoc Jeffries, R, A. A. Turner, P. G. Polson, and M. E.
reporting requirements. The rental processing case is Atwood, "The Processes Involved in Designing Soft-
used throughout this text to reason through each ware," in Cognitive Skills and Their Acquisition (J. R
methodology. Anderson, ed.). Hillsdale, NJ: Lawrence Erlbaum
Associates, 1987, pp. 255-283.
Kintsch, W., and S. M. Mannes, "Generating Scripts
from Memory," in Knowledge Aided Information
SUMMARY Processing (E. van der Meer and J. Hoffman, eds.).
----------~---- NY: Elsevier Science Publishing Co., Inc., 1987,
In this chapter we explained the nature of learning
and experience. Declarative knowledge is knowl- pp.61-80.
edge about what actions, procedures, or steps Klein, G. A., and R. Calderwood, "How do People Use
Analogies to Make Decisions?," in Proceedings of
are taken to perform some task. Declarative
Case Based Reasoning Workshop (J. Kolodner, ed.),
knowledge is a required but incomplete learning.
DARPNISTO, Clearwater Beach, FL, May, 1988,
Process knowledge is knowledge about how to pp. 209-218.
perform, reason, and integrate the steps we know Littman, D. c., J. Pinto, S. Lechovshy, and E. Soloway,
from declarative learning. While we learn, we form "Mental Models and Software Maintenance," in
analogies or cases that form patterns of experi- Empirical Studies of Programmers-l st Workshop
Study Questions 55
Use analogies from your own video rental expe- goals. Describe the computer applications, if
rience to identify issues that still need to be any, used in the function. Analyze the job and
resolved. recommend computer applications that could
7. Describe the details of what it means to return a streamline, enhance, or broaden the function.
tape. How do the manual processes translate into Make a list of questions you need answered to
computer processes? Identify subprocedures for gain a complete understanding of the problem
which you have choices about when and how areas.
they are performed. 2. Draw a diagram or verbally describe (in pseudo-
8. How do you develop a global mental model of code or your own words) how ABC Video per-
some problem? How do you know if you have a forms order processing. Make a list of questions
global mental model of some problem? How do you have about ABC order processing that still
you validate your mental model? need to be answered. Describe how your experi-
9. What does it mean to create historical informa- ence as a video store customer helps you under-
tion? When does history get created? In the stand what ABC is trying to do. Describe, from
ABC case, is history created at video rental your experience as a video store customer, how
time? or at video return time? or at some other you think a video store should be automated.
time? How do you know when you have the cor- How does it differ from Vic's desires? What
rect answer to this type of question? should you do about those differences? What are
* EXTRA-CREDIT QUESTIONS
1. Write a one page analysis of some work experi-
Vic's goals for the application in addition to pro-
cessing rental/returns? What features might you
consider for the application to meet those goals?
List three functions you can put in the system to
ence you know about. Describe some function
help meet Vic's goal of "no bureaucracy."
and how it contributed to the organization's
CHAPT ER3
PROJECT
------------------------------~--------
MANAGEMENT
.. -----
-------------------------------------
57
58 CHAPTER 3 Project Management
3. Define necessary application interfaces; plan acquisitions include creating and submitting requests
for detailed interface design work. for a proposal (RFP), obtaining vendor quotes, eval-
uating vendor quotes, selecting and obtaining man-
All documentation, plans, and design work of the agement approval for a vendor, negotiating contract
project team is subject to review by at least the and delivery dates, and planning and testing of the
user/sponsor. Many other departments or organiza- acquired item.
tions might also be required to review some or all When all of the items are identified, they are re-
of the work. These organizations might include man- lated to each other. Tasks that are related are drawn
agers of IS, users, quality assurance, legal, audit, on a task dependency diagram showing the se-
operations, other application groups, government quences of dependencies. Sequences may be inter-
regulators, industry regulators, or others. Each or- dependent (see Figure 3-4). When all sequences of
ganization applies its specialized knowledge to the tasks are on the diagram, independent tasks are
application documents to assess their adequacy. added. Milestones, such as the completion of a fea-
The second task is to obtain agreement and com- sibility analysis document, are shown and are visu-
mitments from outside agencies or departments. Fre- ally obvious because the preceding" sets of tasks all
quently, resources and work are provided by other feed into that task. Task sequencing can vary de-
departments. Clerical support, for example, might pending on the methodology used. (See Chapter 6
be from an Administrative Services Department. for more on this topic.)
Operations departments supply support in terms of Sequencing tasks is the first step to identifying the
computer time, memory, disk space, terminals, log- critical path of tasks for the application's develop-
on IDs, access to software environments, access to ment. The critical path is the sequence of dependent
data bases, and so on as necessary to develop and tasks that together take the most development time.
test the application. Auditors frequently want to If any of the tasks in the critical path are delayed,
comment on auditing plans and change the design the project is also delayed. So, the critical path tasks
based on their findings. Quality assurance depart- are the greatest source of risk for project completion.
ments might review documents to find inconsisten- The next step is to estimate the amount of work.
cies and errors that" require correction. Vendors For this discussion, we assume the project manager
might need to install hardware, software, or related and SE assign times to tasks based on their experi-
applications that need liaison from the project team ence (Le., reasoning by analogy). Other methods are
and testing once installed. All of these activities need discussed in Chapter 6. Times are assigned to each
to be scheduled and planned. Since dates for com- task based on its complexity and amount of work.
mitments might not be known when the plan IS Three times should be estimated: an optimistic time,
developed, the plan contains the dates at which con- a realistic time, and a pessimistic time. The formula
tact should be initiated and dates by which the com- used to compute the most likely time is shown in
mitment must be made in order not to impact the Figure 3-5. The figure weights the most likely, real-
delivery date. istic time by a factor of two in relation to the other
Third, the project manager obtains requirements estimates.
for application interfaces from other application ar- While times ate being assigned, the skill sets and
eas. An interface is data that is sent or received be- experience levels of a person to do this task should
tween applications. The interface application areas be defined. The list of skill sets and experience lev-
might be in the same company, but might also be an els is used to determine how many people and what
industry group or a government organization. The type of people are required on the project for each
plan reflects dates by which contact should be initi- phase. Other assumptions will surface, and a list of
ated and by which the information is required. them should be kept, as shown in Table 3-1. The
If a make-or-buy decision will be made, the pro- assumptions become part of the planning document.
ject manager and SE work together to develop the When resource requirements and timing are com-
subplan for this decision. Sub activities relating to plete, several activities take place. The SE develops
Complementary Activities 61
Availability of configuration, component of mainframe, Programmers will gain access to IEW by September
special hardware, programmer support equipment, tools, 10,1994.
time
User time involvement. This may be expressed in time A middle manager representative from Accounts
per day for a number of days, or may be in number of Payable will be available in a Joint Application
days. Design session scheduled for June 1-5, 1994.
Need for services from audit, law, vendors, quality The Audit Department will be able to review and
assurance, or other support groups comment on the adequacy of audit controls within
7 business days of receiving the review document.
Software performance The Database Management Software will be able to
process 10,000 transactions per day.
Test time, terminal time, or test shot availability Batch programs can be tested simultaneo~sly with on-line
programs.
Batch programs will be able to average three test runs
per day with an average turnaround of less than 2.5 hours.
Batch programs will be less than 160K and will require
no more than two tape mounts each.
Disk space Operations will make available 100 cylinders of IBM
3390 disk space for the project beginning 9/10/94. An
additional 50 cyl. will be added for test databases by
10/30/94. An additional 250 cyl. will be added for pro-
duction database conversion by 11/30/94.
Memory, CPU time, tape mounts, imaging access, For testing, 30 CPU minutes per day plus 75 hours of
or other mainframe resources terminal access time will be required beginning 10/30/94.
Personnel Two senior programmer/analysts with 2-3 years of
Focus experience and 2-3 years of on-line, multiuser,
application development experience is required by 6/30/94.
Four programmers with 1-2 years of Focus experience and
one year of VM/CMS experience is required by 7/15/94.
Hardware/software availability Imaging equipment will be available for application test-
ing no later than 9/10/94.
15 PCs or IBM 3279 terminals will be available for
access and testing use no later than 9/10/94.
SE actually begin discussing possible project staff manager both should be given an opportunity to ac-
when they are planning the project and tentatively cept or reject the possibility of work. Even when
assigning people to tasks. Then the project man- there is no choice, it is also the responsibility of the
ager's real work begins. project manager to make his or her expectations of
The hard part of an assignment is the judgment quality and quantity of work clear. If the person will
required to match people whose skills are not an ex- not report directly to the project manager, the per-
act match for those needed; this is the usual case. For son she or he will report to should also be at the
instance, you might want two programmer analysts meeting. In this way, everyone knows exactly what
with the following list of skills: was said and what commitments were (or were not)
made.
• design and programming experience on a sim-
The answer to the task assignment problem above
ilar application
is to assign the tasks to best fit the skills. Assign the
• three to five years experience in the opera-
senior person responsibility for the work of the
tional environment
junior one, and provide motivation and incentives
• one to two years of experience with the data-
for quality work (see the following section on moti-
base software
vation). You also alter the schedule, if needed, to
• managerial experience for two to four people
more closely mirror the actual skills of the team.
• known for high quality work
The heuristics, or rules of thumb, for personnel
• known as an easy-going personality
assignment are as follows:
Suppose your manager gives you a junior pro-
1. Assign the best people to the most complex
grammer right out of a training program, an analyst
tasks from the critical path. Assign all critical
who does not program and who has no operational
path tasks. As the experience and skill levels
environment, database, or managerial experience,
of people decrease, assign less complex and
and a senior programmer who does no design, is
smaller tasks. Do not give new, junior, or
known to be difficult, and sometimes does high qual-
unqualified staff any tasks on the critical
ity work.
path. Assignment of senior people to critical
The good news is that you have three people
tasks minimizes the risk of missing the target
instead of two. The bad news is no one of them has
date.
all of the qualifications you want. What do you do?
2. Define a sequence of work for each person to
This is what management is all about.
stay on the project for as long as their skill
The project manager should get to know the team
set is needed. Try to assign tasks that provide
members well. This means assessing their position
each person some skill development.
with the company, expectations on the project, spe-
3. Do not overcommit any person by assigning
cific role desired for the person, possible start and
more tasks than they have time. Make sure
end dates for work, and personality or personal is-
each person will be busy, but allow time to
sues that might affect their work. Much of this in-
finish one task before beginning another.
formation can be got from previous performance
4. Allow some idle time (2-5%) as a contin-
reviews. But nothing substitutes for discussing the
gency for each person. Do not allow more
information with the person.
than eight sequential hours (i.e., one day) of
The project manager has responsibilities to his or
idle time for any person.
her manager, the client sponsor, and to the rest of
5. Do not schedule any overtime. Scheduled
the project team to get the best, most qualified peo-
overtime places unfair stress on people's pro-
ple possible. In these capacities, the project man-
fessional and personal commitment and is a
ager honestly discusses previous problems with the
regular enough occurrence in development
person, any personal problems that might detract the
that it should not be scheduled at the outset.
person's attention from work, and any outside jobs,
school, or other commitments that might also hin- The project manager is also responsible for coor-
der their commitment. The person and the project dinating movement from another assignment to the
64 CHAPTER 3 Project Management
current development project. This coordination is allowed and should be held accountable for that as
done with the other project manager(s) involved and part of their work assignment.
possibly the personnel department. New hires should
be assigned a 'buddy' to help them get familiar with
the company, its facilities, the computer environ-
Selecting from Among
ment, policies, and procedures. Senior staff should Different Alternatives
be assigned to mentor junior staff, encouraging the
Applications all have alternatives for implementa-
learning of new skills on the job.
tion strategy, methodology, life cycle, and imple-
Finally, the project manager must ensure that
mentation environment. The project manager and SE
each person understands the expectations and duties
together sort out the options, develop pros and cons,
assigned to him or her. All staff should have a copy
and decide the best strategies for the application.
of their job description. They should know the extent
of their user interaction, extent of their intraproj-ect
responsibility and communication, and policies
Implementation Strategy
about chain-of-command on who to go to with prob- Implementation strategy is some mix of batch,
lems, project errors found, or problems with work on-line, and real-time programming. The decision
assignments. is based on timing requirements of users for data
Ideally, the team should be given an overview of accuracy, volume of transactions each day, and num-
the application, a chance to review the schedule, and ber of people working on the application at anyone
an opportunity to comment on their ability to meet time. All of these numbers are estimates at the plan-
the deadlines assigned. If they cannot meet the dead- ning stage of an application, and are subject to
lines and have reasonable explanations, the plan, change. The strategy decision might also change.
schedule, and budget should be changed. In addition, In general, though, a decision can be made at the
any training or learning on-the-job that is required feasibility stage to provide some direction for data
should result in a lengthening of the schedule. If the gathering.
team members agree to the schedule, then they are As Table 3-2 shows, the timing of data accuracy
committed to getting the work done within the time drives the decision between batch and on-line. Keep
< 1 hour N N N N y y y
< 4 hours N Y Y Y
< 24 hours Y
<10 y y
10-59 N y N y
> 59 N N y N N y
Options
Batch application x x
On-line application X X X X X
Real-time application X X X X
Complementary Activities 65
in mind that these are rules of thumb and need to be TABLE 3-3 Decision Table for
used in an organizational context. If data can be Implementation Environment
accurate as of some prior period, a batch applica-
tion might be developed. If data must be accurate as CPU Bound N N y y
of some time of the business day, either on-line or I/O Bound Y Y N N
real-time strategies would be successful.
< 100,000 Trans/
If the volume of transactions divided by the num- y y
Day
ber of people is very high (over 60 per minute), then
a high-performance application, with many concur- > 100,000 Trans/
Day y y
rent processes, that is, a real-time application, might
be warranted.
Hardware
If the volume of transactions divided by the num-
Mainframe x X X X
ber of people is low (less than 25 per minute), but the
timing requires on-line processing, an on-line appli- LAN X
cation is best. LAN + Mainframe
The gap in transactions per minute from 10 to 60 network X X X
requires more information, specific to the project, for
a decision. Answers to several questions are needed.
For instance, how complex is a transaction? How tation environment should be selected to fit the
was the number of workers arrived at, and can the application, not the skills of the developers.
number change? Is management willing to fund the For instance, if a real-time application is be-
difference in cost for a real-time application over an ing built for a Sun workstation environment under
on-line one? Are there other factors (e.g., specific Unix operating system, C++ or Ada are probably
database software to be used) to consider in the the languages of choice. Certainly, Cobol is not a
decision? These questions are all context specific choice.
and the resulting decision would be determined by Guidance in implementation environment selec-
their answers. tion comes from the user. Do they have equipment
they want to use? How is it configured? What other
Implementation Environment software or applications are on the equipment? How
amenable is the user to changing the configuration to
The implementation environment includes the fit the new application?
hardware, language, software, and computer-aided Then, with this information, the decision table in
support tools to be used in developing and deploying Table 3-3 can be used as a guideHne for selecting
the application. The decision is not final at the fea- the implementation environment.
sibility and planning stage, rather the alternatives In general, whenever there is a specific require-
and a potential decision are identified. The issues to ment, it tends to drive the remairling decisions.
be resolved for a final decision are then identified. Whenever there are general requirements, the deci-
Frequently there is no choice of implementation sion can remain open for a longer time. Some direc-
environment. The organization has one environment tion-either toward a mainframe solution or a
and there are no alternatives; all development uses PC/LAN solution-should be tentatively decided
one mainframe and one language (for instance, during feasibility and planning. During this process,
COBOL). More often, as personal computers and lo- the project manager should identify the issues
cal area networks become more prevalent, the alter- for further information needed in making a final
natives are mainframe or network with PCs as the decision.
workstation in the chosen environment.
The decision is based frequently on the experi- Methodology and Project Life Cycle
ence of the project manager, SE, and potential team
members. People tend to use what they know and not The final issue to be tentatively decided is which
use what they do not know. Ideally, the implemen- methodology and how streamlined the Hfe cycle
66 CHAPTER 3 Project Management
TABLE 3-4 Decision Table for Methodology and Life Cycle Selection
Source of Complexity
Process Y Y
Data Y Y
Knowledge representation Y Y
Balanced Y Y
Novel problem N N N N Y Y Y Y
Methodology
Process X X
Data X X X X
Object X X X X X X
Semantic X X
will be. Frequently, there is no choice about these broken into a series of small problems, an object
decisions, either. The organization supports one method might work best. If the project is to automate
methodology and one life cycle and there is no dis- expert behavior or includes reasoning, a semantic
cussion allowed. Equally frequently, enlightened methodology is best. A decision table summarizing
managers know that not all projects are the same, heuristics on deciding methodology and life cycle is
therefore the development of the projects should also shown as Table 3-4.
not be the same. Life cycle choice also requires some decision
Methodology choices are process, data, object, about what type and how much involvement there
social, semantic, or some hybrid of them (see Chap- is of users. If som~ intensive, accelerated require-
ter 1). Life cycle choices are the sequential waterfall, ments or analysis technique is used [see joint
iterative prototyping, or learn-as-you-go (see Chap- requirements RI~rlni~g (JRP) and joint application
ter 1). These decisions are not completely separated design (lAD), Part II Introduction], either a stream-
from those of implementation environment in the lined sequ~ntiaJ life; cycle or an iterative approach
previous section, because any fixed implementation can beus~d. Very large, complex applications with
requirements can alter both the methodology and the known requirements usually follow a sequential wa-
life cycle choices. terfalllife cycle. If some portion of the application-
Assuming no special implementation require- requirements, software, language-is new and
ments, the application itself should be the basis for untested, prototyping should be used. Object orien-
deciding the methodology. In a business environ- tation assumes prototyping and iteration. If the prob-
ment, the rule of thumb is to choose the methodol- lem is a unique, one-of problem that has never been
ogy that addresses the complexity of the application automated before, either alearn-as-you-go prototyp-
best. If the complexity is procedural, a process ing or an iterative life cycle would be appropriate.
method is best. If the complexity is data related, a In the next sections, the activities for which the
data methodology is best. If the problem is easily project manager has sole responsibility are detailed.
Liaison 67
These activities include liaison, personnel manage- zational power. Power usually is defined as the
ment, and project monitoring and reporting. ability of a person to influence some outcome. One
source of power comes from controlling organi-
zational resources, including money, people, infor-
LINSON _______________ mation, manufacturing resources, or computer
resources.
The project manager is a buffer between the techni- Political issues of application development do not
cal staff and outside organizations. In this liaison relate to the project, but to what the project repre-
role, the project manager communicates and negoti- sents. Applications represent change. Changes can
ates with agents who are not part of the project team. be to the organization, reporting structure, work
A liaison is a person who provides communications flow, information flow, access to data, and extent of
between two departments. Examples of outside organizational understanding of its user con-
agents include the project sponsor (who mayor may stitllency. When changes such as these occur, some-
not be the user), IS managers, vendors, operations on'e,'s status changes. When status changes, the
managers, other project managers, and other depart- people who perceive their status as decreasing
ments such as quality assurance (for validation and will rebel.
testing), law (for contracts), and administration (for The rebellion may be in the form of lies told to
~lerical and secretarial support). analysts, refusal to work with project members,
For each type of liaison, status reports are an complaints about the competence of the project
important means of communication (see sample in team, or any number of ways that hinder the change.
Figure 3-6). Status reports document progress, iden- If the person causing trouble is successful, the proj-
tify problems and their resolution, and identify ect will fail and his or her status will, at worst, be
changes of plans to all interested parties. In addition, unchanged. Politics, left unattended, will lower the
many other communications of different types are chances of meeting the scheduled delivery date and
described for each type of liaison. The guidelines raise the risk of implementing incorrect require-
here are just that-guidelines. They are developed ments. The project manager usually tries to deal with
assuming that open communications between con- the political issues first, keeping the sponsor in-
cerned parties is desired, but the guidelines require formed of the situation. If unsuccessful, the sponsor
judgment and knowledge of the situation to sepa- becomes involved to resolve the problem.
rate a good action from a less good action. In some organizations, the project manager com-
municates to the sponsor only through his or her
manager. In others, the project manager handles all
Project Sponsor project communications. In general, treat the spon-
The sponsor pays for the project and acts as its sor like your boss. Tell him or her anything that will
champion. A champion is one who actively sup- cause a problem, anything they should know, and
ports and sells the goals of the application to others anything that will cause the project delays.
in the organization. A champion is the 'cheerleader'
for the project.
The goals of liaison with the champion are to
User
ensure that he or she knows the status of the project, The user is the person(s) responsible for providing
understands and knows his or her role in dealing the detailed information about procedures, pro-
with politics relating to the project, and knows the cesses, and data that are required during the analy-
major problems still requiring resolution. sis of the application. They also work with the SE
The major duty of the champion is to deal with and project manager in performing the feasibility
the political issues surrounding the project that analysis, developing the financial and organizational
the project manager cannot deal with. Politics are assessments of user departments for the feasibility
in every organization, and politics relate to organi- study.
68 CHAPTER 3 Project Management
FROM: J. B. Berns
Progress
We have resolved the testing problems between batch and on-line by going to a two-shift
programming environment. The on-line programmers are working from 6 A.M. to 2 P.M. and
the batch programmers are working from 2 P.M. to 10 P.M. This is not an ideal situation, but it
is working at the moment.
We are still two weeks behind the schedule for programming progress, and we may not be
able to make up the time, but we should not lose any more time.
The on-line screen navigation test began two days ago and is going smoothly. Several
minor spelling problems have been found, but no logic problems have been found. George
Lucas should complete the user acceptance of the screen navigation and screen designs
within three days if no other problems surface.
Problems
The decode table for warehouse location, due 5/12/94 from George Lucas, is still not deliv-
ered yet. This is going to delay testing of the on-line inventory allocation programs begin-
ning in ten days if we do not have it. Is there another person we can contact to get this
information?
Operations found what appears to be a bug in one of the CICS modules. When a screen
call is made, two bytes of the information are lost. We are double-checking all modules to
ensure that it is not an application problem. Jim Connelly is calling IBM today to see if they
have a fix for the problem. At the moment, this is not causing any delays to testing. But it
will cause delays beginning next week if the problem is not resolved. The delays will be to
all on-line modules calling screens and will amount to the time per module to code a work-
around for the unresolved problem. This should be about one hour each for a total of
120 hours. We hope this delay can be avoided; everyone possible is working on the prob-
lem, including two experts from our company whom we called in last night as a free service
to ICIA.
Project manager-user communication includes advance. The kinds of problems a team might suffer
both planned and unplanned status meetings, writ- from no access may delay documentation but does
ten communications for status, analysis, interview not delay the work of analysis. In the worst case, the
results, documentation, and walk-throughs of appli- work can be done manually.
cation requirements as specified by the project team. During design, the database administrator must
Timing of user communications differs with the type have access and resources allocated for the definition
of communication, but is most often daily until the and population of a test database. This must also be
application begins programming and testing. Then, a negotiated well in advance.
minimum of weekly personal contact should main- During implementation, old data must be con-
tain the relationship. verted to the new format and environment, programs
In general, tell the user everything that might must be placed in production, and users begin using
affect them, the project, or the schedule negatively; the application. At this time, the operations depart-
do not tell them anything else. ment assumes responsibility for running the appli-
cation. This responsibility must also be planned and
negotiated in advance.
IS Management When programming and testing begin, all project
IS managers, like most managers, want to know members need access to compilers, test database,
progress, problems and their solutions, warnings of editors, and, possibly, testing tools to work on their
lateness, and political issues. They do not want to programs. Absence of resources at this time can
handle all problems for their managers, nor do they severely delay project completion. For each day of
appreciate finding out a project will be late the week person-time lost, there can be one day of project
before it is due. Tell your manager anything that delivery time lost. Timing, type, and volume of ac-
might get him or her in trouble, that they need to cess are all negotiated items. Advance negotiation
know, or that might impact the project negatively. should begin at least one month prior to the need.
Always expect to propose solutions and argue if you Most operations managers will tell you they want to
think your solution is better than their's. Always know about a demand for their resources as soon as
accept their solution if it is mandated, unless it is you can identify the demand and the date needed.
unethical or illegal. Most operations managers will also tell you they
want all requirements at once. So you should be pre-
pared to discuss analysis, design, and implementa-
Technical Staff tion needs before much work takes place.
Technical staff here means the project team. Always In general, operations managers need to know
be open with them. Keep them current on progress, what the project needs from them and when. They
problems and resolutions, and any information that also should be sent progress reports and told of any
affects their ability to do their job. Praise quality problems that affect the use of their resources.
work. Practice team building using common sense,
like having small victory parties at the end of phases,
sharing birthdays, or announcing promotions.
Vendors
A vendor is any company, not your own, from
which you obtain hardware, software, services, or
Operations information. If the application is installed in an ex-
Operations affect the project differently depend- isting environment, probably no vendor contacts are
ing on the phase. In early phases, word processing needed. If, however, acquisition of software, hard-
and PCs must be available for documentation. ware, or both is planned, there are three types of con-
Computer-aided software engineering tool access tact with the vendor that take place. The first is
might be required. Timing, type, and needs of ac- proposal communication, the second is for negotia-
cess should be planned and negotiated well in tions, and the last is customer support.
70 CHAPTER 3 Project Management
A Request for Proposal (RFP) (see Chapter 16) information, and project status that might change
is a document developed by the PM and SE to solicit any of these requirements.
bids from potential vendors. Vendors are asked to In addition, you also have needs of these teams.
respond with an estimate of service and price within If any of the organizations is performing work
some number of days (e.g., 30). All bids received by you need to complete your project, then you need
the cut-off date are reviewed. Proposal communica- the same things from them that they need from you.
tions are usually limited to information about the pro- You need to know exactly what they will do for you
posal. RFPs are accepted and responded to by vendor and how it will be transmitted to your project, whom
marketing staff with some technical assistance. Proj- to contact, and task status that might affect your
ect manager contact is with the marketer. schedule.
Part of the RFP process is the development of a To summarize, many other groups and depart-
list of required features for the item being bid upon. ments in the organization need to have liaison activ-
This list should have priorities and weights assigned ities with a project. It is the project manager's job to
to it during the proposal stage for use during the provide that liaison with communications tailored
analysis. Bids are rated on the requirements then to the needs of the other organization.
compared to see which vendor most closely meets
the needs of the application.
When a vendor is selected, a contract must be PERSONNEL _ _ _ _ __
negotiated. Negotiation may be with the marketer, ~ANAGEMENT _ _ _ __
but might also be with a financial person or with the
marketer's manager. Similarly, the project manager For personnel management, the project manager
might do all or some of the negotiation with assis- hires, fires, coaches, motivates, plans, trains, and
tance from a financial person or his or her manager. evaluates project team members.
Negotiations deal with price, time period of the con-
tract, number of sites, number of users, type of
license, guarantees in case the vendor goes out of
Hiring
business, warrantees, and so on. There is no one way Hiring is usually coordinated through a personnel
to negotiate, and most often, all negotiations are office that oversees all IS hiring, not just one proj-
turned over to legal staff for completion of contract ect. Newspaper advertisements can be more cost-
terms. It is important never to commit to any terms effective, general, and get a better response when
until they are seen and approved by some manager coordinated for all projects. The personnel office
in the organization. Frequently, contracts have far- receives the responses and filters obviously unqual-
reaching implications that an individual project man- ified applications out from the pool of applicants.
ager may not know. Then, working with the project manager, the per-
sonnel department screens the applicants and
arranges project interviews.
Other Project Teams As in most things, timing is important. Ads take
from one to two weeks to get approved and placed.
and Departments Receipt of resumes usually takes the same amount of
Other IS organizations that might need project time. Interviewing is time consuming and can take
communications include a database administration another one to two weeks for each hire. Then, offers
group, other project teams, and a quality assurance are made and salary negotiations completed. The
group. Other departments might include law, or elapsed time to hire someone might be seven weeks
audit. In all cases, the communication is similar. or longer.
These groups need to know what their relationship In addition, scheduling interviews may mean
to your project is, how soon and what type of sup- early-morning, evening, or lunch-time work. People
port you need, who to contact for questions and searching for a job who already have one may not
Personnel Management 71
want to take vacation time for an interview. If the are the basis for any future legal action by the
person appears qualified, the project manager is employee.
expected to shift his or her schedule to fit the needs If the work is performed satisfactorily, probation
of the applicant. ends. If not, the person is terminated. Termina-
tion from a project does not necessarily require ter-
mination from a company. If a person is ill-suited to
Firing a particular project, she or he might still be a valu-
You may not agree, but keeping a person in a job able employee. A good project manager will first try
for which they are unsuited does more damage to to place the person somewhere else in the organiza-
the manager, the person, and the project than you tion. If the person is terminated from the com-
might think. Project managers are damaged because pany, the company can try to help them find another
they think of little else and agonize over the de- job through an out-placement service or by provid-
cision much longer than necessary. People usu- ing company resources (a desk and phone away
ally know if they are going to be terminated because from the project) until a job is found. If the person
they did not complete their specified tasks. They is terminated for antisocial behavior, an addic-
should have been told, in writing, before the termi- tion, or for some other nontechnical problem,
nation date. the project manager might help them seek profes-
Prolonging a termination is damaging to the per- sional help.
son being fired because it gives them a false sense
of hope, makes them lose confidence in the person
not following through on their described actions, and
Motivating
also allows them to influence other project members Motivation has personal and professional aspects.
negatively. Professional motivation arises from a desire to do a
Finally, procrastination on firing is damaging to good job. People are motivated to do a good job
the project because the longer the termination is when they are treated like a professional and given
delayed, the more likely the person being terminated meaningful, interesting work that includes some dis-
will begin talking of his or her situation to other proj- cretionary decision making and some creative de-
ect members and disrupting work. As more people sign.
find out, more time is spent speculating on the situ- Personal motivation arises from a desire to
ation. Less work gets done and the staff eventually improve one's position in life. Position in life is
loses confidence in the project manager. defined individually and may mean earning more
No one gets into trouble overnight. Usually there money, buying a bigger house, becoming an analyst,
is a period during which a problem is known, but it or becoming a manager, and so on.
might be corrected before any real problems arise. Project management style is the determining
It is at this time that the project manager should sit factor of personal motivation. A project manager
down with the person and talk about the situation. who facilitates participation, fosters controlled risk-
Legally, everyone in this situation is entitled to at taking, and allows people to grow as individuals will
least one warning letter which is also placed in their gain undying loyalty from his or her staff. A project
personnel file. This is followed by a letter of repri- manager who treats the staff as stupid, lazy, and
mand stating that performance is substandard with unmotivated might obtain desired behaviors from
reasons for that judgment. The letter also states that them, but it will be through intimidation and
the person is on probation and will be terminated by coercion.
a specified date unless some actions are taken. The The proj ect manager needs to know the proj-
actions are then listed. If the person does the as- ect team members individually in order to tailor
signed work satisfactorily, they are off probation. All reward systems and assignments to help them reach
of these communications are in writing, monitored their goals. Project manager commitment to help-
and approved by personnel and the IS manager, and ing team members reach personal goals determines
72 CHAPTER 3 Project Management
how professionally motivated the team members ure to meet work requirements. These should also be
will be. made known to everyone on the project.
There are three aspects to motivation. First, the
project work itself can be used to further profes-
sional goals that include doing novel work and Career Path Planning
advancing to new levels of seniority, experience, or Motivating is an immediate activity of the project
responsibility. Second, the project manager must be manager, but all employees and managers should be
careful to tailor reward and pt iishment systems to encouraged to develop longer range aspirations, as
fit the tasks, being unbiased in terms of importance well. The project manager should help plan, with
of individual contributions to the work. Third, the each individual, the tasks from this project that can
individual professional must make a commitment to be used to further his or her career.
doing something extra to gain the reward, either The project manager should discuss goals and
on-the-job or on his or her own time. career paths at the beginning of the project and at
Take, for instance, a mainframe Cobol program- least annually during performance reviews after that.
mer who wants to move to a personal computer LAN The discussion should include a frank assessment
environment using C++. The project has relaxed of current perceptions of the individual's verbal,
deadlines and the project manager might be able to organizational, and professional skills, as well as
help the person, but some commitment from the pro- helping the person plan courses, assignments, or
grammer is needed. The project manager recom- opportunities to improve his or her performance.
mends that the person find, attend, and pass a C++ There should be direct ties from performance to
course for which the company will pay. Then, the rewards. Any time an individual does something sig-
person will be assigned a task in the desired envi- nificant enough to be mentioned on an appraisal, he
ronment. If the task is successful, more tasks will or she should be told and either praised or counseled
follow. If the task is not successful, the situation will to change.
be reassessed.
Professional motivation might also come from
fostering development of association ties outside of Training
work. Meetings or user groups of vendors, l profes-
sional associations, 2 or other professional groups The purpose of project training is to specifically
related to work duties might be paid for by the com- address weaknesses of staff in techniques, technol-
pany to foster professional motivation. ogy, or tools used on the project. The SE and any
Motivation also has a negative side. The actions project leaders are directly responsible for identify-
that would be taken should the person fail to do their ing training needs. The project manager is responsi-
job competently must also be known. There should ble for obtaining the training for the individual(s)
be company policies about quality and quantity of who need it. A senior mentor for the trained skill
work that are also included as part of job descrip- should be assigned to monitor progress in the devel-
tions. In the absence of company policy, the project opment of the skill, once training is complete.
manager should adopt rules, with the knowledge and Nonrelated training, as discussed above, may also
consent of their manager, about punishments for fail- be authorized by the project manager depending on
employee need, rewards, and fit with employee
goals.
1 Guide and Share are IBM mainframe user groups with over
10,000 members each. DECus is the Digital Equipment users
group. In these huge groups, there are subgroups with inter-
ests in every software package, language, and development
Evaluating
environment offered by the vendor. Evaluations are annual assessments of the person
2 The Association for Computing Machinery (ACM) is one from both professional and organizational perspec-
example. tives. Evaluations are written and usually are signed
Personnel Management 73
by the reviewed person and the reviewer. Quality examples are required to demonstrate very high and
and quantity of work assignment are the professional very low quality work.
assessments and are the most important aspects of Project managers evaluate communications and
junior level work. Junior staff, having no business human relations. Assessments of both relating verbal
experience, are monitored most closely for their abil- and written communication skills are developed.
ity to do their work. Competence for the assigned Communication skills are related to specific project
jobs is determined, and the more competent, the assignments and to other project activities, such as
faster the person is promoted. walk-throughs, that are not major assignments.
As people become more senior, quality and quan- Communication evaluation includes grammar,
tity of assigned work becomes assumed and organiz- speed, persuasiveness, clarity, and brevity. The per-
ing, motivating, communications, and interpersonal son's ability to develop and deliver a presentation,
skills become more important. The non task specific and actual experiences doing these are described.
skills are viewed from an organizational perspective. Another area of assessment is interpersonal
More emphasis is placed on the ability to persuade, relationships with project manager, senior staff
manage, motivate, and communicate with others, members, peers, others in the department, and users.
thus describing a good manager. Additional comments might discuss specific inci-
Promotion for most senior people is to the man- dents that vary from the general assessment and that
agerial ranks. In some companies, the importance might highlight a need for improvement, or identify
of very senior, technical experts, is recognized. In a particular skill. For instance, a person with good
those companies, equal emphasis is placed on the negotiating skills might be identified by their arbi-
professional and organizational assessments. Tech- tration of a disagreement between two other project
nical staff can aspire to the senior technical positions members.
without having to sacrifice their technical expertise Work absences are mentioned in terms of total
in the bargain. days missed, number of absences, and type of ab-
The usual performance evaluation contains sence. If there are company policies about absences
sections for assignments, communications and inter- and they are exceeded, a comment about the extent
personal relations, absences, planning and organiza- to which absences affected work might be added.
tion, supervision, delegation, motivation, training, The ability of the person to meet deadlines, main-
and special considerations. Each of these is de- tain an accurate status of the project, and need spe-
scribed briefly. cial communications due to absences are all
The assignments section contains a brief descrip- described. Extraordinary situations causing a long
tion of four or five major assignments with expecta- absence, such as emergency surgery, are included.
tions on quality and quantity of work for each as well For planning and organization, accuracy, detail,
as a brief paragraph assessing the extent to which the independence of work, and cooperation with other
assignment was met. Quality and quantity of work affected groups are all assessed. In addition, the per-
are intangible and frequently subjective assessments, son's adherence to their own plans is discussed. Do
but there are always expectations of the amount of they use it properly as a road map, or is it a rigid rule
work a person should do, and of the extent to which from which no straying is allowed, or is it ignored
reworking is needed. In addition, the individual's job and treated as a task done for management?
description should give guidance on expectations for Delegation is the extent to which the work is
work quality and quantity. Finally, the extent to shifted from the manager to subordinates. Issues
which the person needs to be monitored and assisted rated are how well work assignments match people's
is an indicator of the extent to which they can work skills, allow monitoring to ensure completion,
independently and competently at their job. The dis- provide for personal and career improvement of
cussion of quality and quantity should be presented subordinates.
in terms of job description, manager expectations, Managerial style is assessed in terms of group
and extent to which expectations are met. Specific motivation. Does the project manager obtain
74 CHAPTER 3 Project Management
commitment from staff with enthusiasm, discom- by task over the period are tallied by row and column
fort, unhappiness, or anger? Does the manager ask totals. This type of reporting allows the project man-
or command? How successful is the strategy and ager to easily see for each person weekend work,
what must the manager do to change unsuccess- how many hours are spent on each activity over a
ful strategies? Are tactics altered to fit the person period, and how many effective work hours there are
being managed, or is everyone treated the same per day.
way? Are people treated fairly or is favoritism In addition, each person should write a short
prevalent? progress report. The report summarizes progress in
Can the manager motivate others to learn new qualitative terms, identifies problems, issues, errors,
skills? To what extent does the manager provide or other conflicts that might delay the work. If a task
needy staff with training, either formal or informal, will be later than its schedule date, the reason for
on techniques, technology, and tools? If formal train- lateness must be explained. The project manager and
ing is given by the person being rated, summaries SE both review the reports and time sheets to decide
of student ratings of quality and quantity of training if problems need further action. A sample progress
should be presented. The person's ability to pro- memo is shown as Figure 3-8.
vide mentoring and quality of mentoring might be The SE and project manager map actual progress
addressed. of each person against the planned times. When
Finally, there is usually a section for the project progress looks slow, the project manager asks the
manager to recommend future assignments, training, person specifically if there are problems, if there are
or other professional activities for further develop- enough resources, for example, test shots, and if the
ment of the individual. person thinks they can meet the deadline. If the task
appears to have been underestimated, the schedule is
checked to see if changing the time allotted will
MONITOR _ _ _ _ _ __ cause completion delays. Similar tasks are checked
to see if they are also underestimated. The cumula-
AND CONTROL _ _ _ __ tive effect of changes is checked to see if completion
is in jeopardy. If it is, the project manager discusses
Status Monitoring the problem with his or her manager and they
decide on the proper course of action.
and Reporting The best policy is to address potential problems
The rationale of the planned application develop- early, before they become big problems. If a person
ment is that you monitor the plan to communicate cannot finish work because of too many assign-
activity status and interim checkpoints to clients. ments, then reassign some of the work to another
The overall goal-meeting the project installation person. If they have not got enough testing time,
date-is the end point of a lengthy complex set of arrange for more time. Active management prevents
processes. Without the plan, knowing whether or not many problems.
the installation date will be met is difficult. Status Problem follow-up includes determining the
monitoring is the comparison of planned and severity and impact, planning an alternative
actual work to identify problems. Project control is course of action, modifying the plan as required,
the decisions and actions taken based on the proj- and continuing to monitor the problem until it is
ect's status. resolved or no longer has an impact on the deliv-
In a planned approach, project team members ery date.
report time spent on each activity for some period. Tell the client about problems that may not be
The sample time sheet (see Figure 3-7), allows solved so they are prepared for delays if they become
breakdowns for several tasks listed across the top of inevitable. When changes become needed, tell the
the form and hours worked on the task reported by client about changes to planned dates even when
day of the month. Totals by day of the month and they do not change the completion date.
Monitor and Control 75
Project: _ _ _ _ _ _ _ _ _ _ __ Month:
Name:
Activities
Day of Total
Month for Day
1/16
2/17
3/18
4/19
5/20
6/21
7/22
8/23
9/24
10/25
11/26
12/27
13/28
14/29
15/30
31
Total
TO: J. B. Berns
FROM: M. Vogt
Progress
We completed our screen design and navigation testing 10/7/94 and turned the modules
over to George Lucas for user acceptance. He requested changes to several items:
1. The location of the total at the bottom of the screen is moved left five spaces.
2. The PF key assignment for PF3, which we were using to END any process. He would
like END to be PF24. We explained that this is not a good design because the operator
needs more key strokes (and hence is more likely to err) for PF24. Also, this is a very
time-consuming change, about 10 hours, and that he should have mentioned his prefer-
ence during the reviews. He decided to think about it and talk to some real operators
before making a firm decision.
The other testing is progressing well. I am almost done testing the entire order process,
except for inventory allocation. I need the warehouse codes from George by next week if
I am to continue testing the programs.
Problems
The warehouse codes which were promised some months ago are getting to be on the criti-
cal path. If I do not have them by next week, I cannot continue to test the inventory alloca-
tion portion of the application. I can assign my own code scheme, then change it to the real
one if I have to, but I would like to avoid the double work.
The kinds of problems that occur and the activi- Are users being interviewed giving accurate,
ties the project manager monitors change over the complete information?
course of the development. For instance, during the Are users participating as expected?
definition of the project scope, the project manager Are there any apparent political issues to be
monitors the following: addressed?
Does the scope look right? That is, does the
Is the client cooperative? current definition appear to include relevant
Are all the stockholders identified and involved? activities?
Monitor and Control 77
By analysis, the project manager knows most do. The project manager is constantly vigilant
users and how they work, should have identified that the requirements are the users. One problem
potential political problems and dealt with them, and many projects have is that the user wants a plain
should be comfortable that the project scope is cor- functional application but the analysts design a high-
rect. The activities monitored turn toward the project priced application with the user functions, but with
team, and include the following: many unnecessary features, or 'bells and whistles,'
as well. This problem, if it occurs, must be dealt with
Do all analysts know the scope of activity and before analysis ends or extraneous functions will
work within it? be in the resulting application. When over-design
Is the analysts' work emphasis on what and not problems surface, it is important to try to trace
how? them to specific analysts for retraining in providing
Are users participating as expected? their services.
Are all project members pulling their weight? In design, the emphasis shifts to monitoring the
Is everyone interested and happy in their job? rate, type, and scope of changes from the users. If the
Is there any friction between team members, or business is volatile, requirements change may
between team members and users? become a constant problem. Change management
Does everyone know what they and all others procedures should be developed and used. At this
are doing? point, the project manager's worries include the
Is there constant feedback-correction with users following:
on interview results?
Are team members beginning to understand the Do the analysts know the application?
users' business and situation? Are the team Is the translation to operational environment
members objective and not trying to force correct and complete?
their own ideas on the users? Are walk-throughs finding errors? Are errors
Are walk-throughs finding errors and are they being resolved?
getting resolved? Are users participating as expected? Are users
Are documents created looking complete? Does properly involved with screen design, test
the user agree? design, acceptance criteria definition?
Is the analysis accurately addressing the prob- Are all project members pulling their weight?
lems of the user? Are team members analyz- Is everyone interested and happy in their job?
ing and describing exactly what is needed Is there any friction between team members,
without embellishment? or between team members and users?
Is typing turnaround, printing of word-processed Does everyone know what they and all others
documents, copying, or other clerical support are doing?
acceptable? Are all team members aware of their changing
Does communication between teams and be- responsibilities, and are they comfortable
tween teams and users appear to be satis- with and able to do design tasks?
factory? Does communication between teams and
Is the project on time? What is the status of between teams and users appear to be satis-
critical path tasks? Has the critical path factory?
changed because of tasks that finished early? Is the project on time? What is the status of
Where are the biggest problems right now? How critical path tasks? Has the critical path
can we alleviate the problems? changed because of tasks that finished early?
What do we not know that might hurt us in Where are the biggest problems right now?
design? How can we alleviate the problems?
What do we not know that might hurt us in
The functional requirements that result from programming? Is the implementation
analysis should describe what the application will environment suitable for this application?
78 CHAPTER 3 Project Management
Can the database management software Is there constant feedback-correction with users
accommodate this application? on suspected errors?
Are walk-throughs productive, finding errors?
The number of project team members usually
Are errors getting resolved?
increases for programming to do parallel develop-
Does the system level test really prove that the
ment as much as possible. The communication over-
functions are all accounted for?
head necessary to know everyone's status and for
Does the integration test verify all interconnec-
them to know the project status increases. The prob-
tions? How can it be leveraged to prove the
lems in the programming and unit testing stage
reliability of the interconnections during the
tend to focus on communications and programmer
system test?
performance.
What do we not know about the operational
Does everyone understand how their work fits environment that might hurt the project?
into the project? Does everyone know their Is the database software working properly? Are
critical-path status? Are all current project back-up and recovery procedures adequate
members pulling their weight? Does every- for testing?
one know what they and all others are doing? How can we use the integration and system tests
Is testing time sufficient? Is terminal access to develop a regression test package?
sufficient? Is documentation being finalized? Is everyone
Does everyone know the technologies they are working to capacity? Should we start letting
using sufficiently to perform independently? programmers go to other projects? If we let a
Are junior staff paired with senior mentors? key person go, who can take their place when
Are users requesting further changes? a problem occurs?
Are users participating as expected in test
Finally, testing is complete, the application
design, user documentation development,
appears ready, and the user is ready to work. There
conversion, and training?
should have been a plan for actually implementing
Is there constant feedback-correction with users
the operational application that eases the user into
on suspected errors?
use without too much trauma. The easing-in period
Are prototypes being used as much as possible
gives the project team some time to fix errors found
to demonstrate how the application will
in production without excessive pressure. The
work?
issues now center on getting the application to work
Are walk-throughs productive, finding errors?
in its intended environment for its intended users.
Are errors getting resolved?
The questions include the following:
While programming and unit testing are proceed-
Is the site prepared adequately? Is air condi-
ing, tests for integration and system level concerns
tioning sufficient? Are lighting and
are being developed. The database is being estab-
ergonomic design sufficient?
lished and checked out. The operational environment
Are users properly trained and ready to do
is being prepared. Concern shifts from getting the
work?
application expressed in code to getting it working
Are work cycles and evaluation of results identi-
correctly. The kinds of questions a project manager
fied sufficiently to allow implementation and
might have are the following:
verification of results?
Are all current project members pulling their When errors are found, are they getting
weight? Does everyone know what they and resolved?
all others are doing? Are users taking charge as expected?
Is testing time sufficient? Is terminal access Are all current project members pulling their
sufficient? weight? Does everyone have enough
Are users requesting further changes? Are users work to do? Can people be freed to other
participating as expected in testing? projects?
Automated Support Tools for Project Management 79
Is communication between teams and between their resolutions, and other issues as they occur dur-
teams and users appearing satisfactory? Are ing the development.
users told whenever major problems occur?
Are they participating in the decision making AUTOMATED _ _ _ _ __
about error resolution?
SUPPORT TOOLS _ _ _ __
Many of the questions above are technical in
nature and would be referred to the SE to monitor. FOR PROJECT _ _ _ _ __
The project manager is like a mother hen and is sup- ~ANAGEMENT _ _ _ ___
posed to worry about everything. Obviously, if the
plan addresses the activities as it should, many of the Project management support tools have increased in
answers to the above sets of questions are found in sophistication and performance since the mid-1980s
weekly progress reports of team members. Compil- when the first PC-based tools arrived. The tools in
ing the individual progress reports and project prog- this section support project planning, task assign-
ress reports in a project log allows the manager and ment and monitoring, estimation tools, and sched-
any of the staff to review decisions, problems and uling tools (see Table 3-5). Key tool capabilities
not considered here include word processing, The project manager is solely responsible for
spreadsheets, calendars, or interfaces to electronic most people-related aspects of projects. The three
mail (these are considered useful for all organiza- main tasks of the project manager are organizational
tion members). Other tools that are used by a pro- liaison, employee management, and project monitor-
ject manager but are discussed in other sections of ing and control. Organizational liaison includes cre-
the text are for configuration management, quality ating working relationships with other organizations
control, and metrics. and departments, resolving project-related problems
regardless of their nature, and reconciling the project
design with expectations of others. Employee man-
SUMMARY ________~___ agement includes working with Personnel to hire,
fire, and staff the project. Employee management
The project manager role is frequently separate and also includes individual employee monitoring to
distinct from that of the software engineer. The soft- help them evaluate, set, and attain career goals. Proj-
ware engineer is generally responsible for technical ect monitoring and control is the other major proj-
aspects of project work. Some tasks are joint, com- ect management activity. Monitoring means to trace
plementary activities shared by project managers the progress of project work and compare it to bud-
and software engineers. For these joint activities, geted time and resources to maintain progress. Con-
the software engineer contributes technical skills, trol includes deciding and implementing project
and the project manager contributes organizational changes when progress is not satisfactory. Project
skills. changes might include change of job assignments,
Study Questions 81
introduction of training, or change to schedules, some alternatives for reporting task progress and
and plans. time spent be?
2. Write an honest appraisal of yourself for the
work you have done in school toward your cur-
REFERENCES ____________ rent degree. Give specific examples of good and,
maybe, poor work. Rate your knowledge and
Abdel-Hamid, Tarek, and Stuart E. Madnick, Software
skills gained in terms of a schedule that ends
Project Dynamics: An Integrated Approach. Engle-
when you graduate.
wood Cliffs, NJ: Prentice Hall, 1991.
Gilbreath, R. D., Winning at Project Management: What 3. Discuss the following comment: "It is impor-
Works, What Fails and Why. NY: John Wiley and tant for a project manager to have been a
Sons, 1986. programmer and an analyst. Otherwise, the
Gildersleeve, Thomas R., Data Processing Project Man- manager has no feel for the problems and
agement. New York: Van Nostrand Reinhold Com- their severity."
pany, 1974.
Glass, Robert L., Software Conflict: Essays on the Art
and Science of Software Engineering. Englewood STUDY QUESTIONS _ _ _ _-
Cliffs, NJ: Prentice Hall, Yourdon Press, 1991.
Cleland, D. I., and William R. King, Systems Analysis 1. Define the following terms:
and Project Management. NY: McGraw-Hill, champion critical path heuristic
1983. liaison project plan
King, William R., and D. I. Cleland (eds.), Project Man- 2. When and why are the software engineer and
agement Handbook, 2nd ed. NY: Van Nostrand Rein- project manager roles split?
hold, 1988. 3. Describe the project manager's role in
Pfeffer, Jeffrey, Organizations and Organization Theory.
planning.
Boston: Pitman, 1982.
4. Describe a general planning methodology.
Rogerson, Simon, Project Skills Handbook. Lund,
Sweden: Chartwell-Bratt, 1989.
5. What kinds of reviews are done on project doc-
umentation? Why are they necessary?
6. What are five types of operations resources that
KEy TERMS ________ might be needed on a project?
7. What is the minimum lead time recommended
champion project control for resource requests?
complimentary activities project plan 8. What is an RFP and when is it used?
critical path request for proposal 9. What is the purpose of a task dependency
evaluations (RFP) chart?
heuristic sponsor 10. What is a critical path and why is it
implementation status monitoring
important?
environment task dependency
11. Should a plan be finalized and cast in
implementation strategy diagram
interface user
concrete?
liaison vendor 12. List four types of assumptions made during
personnel management planning and describe why each is important.
13. Why should project team members submit time
sheets?
EXERCISES _________ 14. Describe how to assign staff to tasks. Why is
the process rarely this simple?
1. List and discuss three advantages and three dis- 15. Describe the heuristics for assigning staff to
advantages to project team members using time projects.
sheets to report work activities. What might 16. Should planned overtime be in a schedule?
82 CHAPTER 3 Project Management
DATA GATHERING
FOR APPLICATION ----------------~--------------
--------------------------~-----
DEVELOPMENT-------------------- .. --------~-----
83
84 CHAPTER 4 Data Gathering Application Development
Age
Job Title at Time of Raise
Social Security Number Job Salary
Address
Performance Reviewer
Current Job Title
Performance Rating
Personal Information
Social Security Number
Name
Address
Date of Birth
I
I 1
Job Information
Dependent Information Job Title
Dependent Date of Birth Job Department
Dependent Name Job Begin Date
Dependent Relationship Job End Date
Job Salary
I J
position the person held in the company (see Figure ing is a social construction; that is, the people in
4-2). The other option is that salary changes are de- the organization have a collectively shared defini-
pendent on performance reviews and the hierarchy tion of how some term, policy, or action is really
would be extended another level. interpreted.
Semantics is important in applications develop-
ment and in the applications themselves. If people
Completeness use the same terms, but have different meanings for
Information varies in completeness, the extent to the terms, misunderstandings and miscommunica-
which all desired information is present. Each ap- tions are assured. If embedded in an application,
plication type has a requisite level of data complete- semantically ambiguous data can never be processed
ness with which it deals. Transaction processing by a program without the user being aware of which
systems deal with complete and accurate informa- 'meaning' is in the data. Applications that have
tion. GDSS and DSS deal with less complete infor- semantically mixed data then rely on the training and
mation. EIS, expert systems, or other AI applications longevity of employees for proper interpretation of
have the highest levels of incompleteness with the data. If these key employees leave, the ability to
which they must cope. correctly interpret the meaning of the data is lost.
In applications dealing with incomplete informa- Losing the meaning of information can be expensive
tion, the challenge to you is to decide when the to the company and can result in lawsuits due to
information is complete enough to be useful. Some- improper handling of information.
times this decision is made by the user, other times An example of semantic problems can be seen in
it is made within the application and there need to a large insurance company. The company uses the
be rules defining complete enough. term 'institution' to refer to its major clients for
retirement funds. The problem is that 'institution'
means different things to different people in the
Ambiguity company. In one meeting, specifically convened to
Ambiguity is a property of data such that it is vague define 'institution,' 17 definitions surfaced. The
in meaning or is subject to multiple meanings. Since problem with semantic differences is not that 16 of
ambiguity deals with meaning, it is closely related to the 17 definitions are wrong. The problem is that all
semantics. An example of ambiguity is to ask the 17 definitions are right, depending on the context of
following query: their use. It is the SEs job to unravel the spaghetti
of such definitions to get at the real meaning of terms
PRINT SALES FOR JULY IN NEW YORK
that are not well defined at the corporate level. Un-
In this query, New York can mean New York State or raveling the meaning of the term 'institution' took
New York City; both answers would be correct. Ob- about 20 person-months over a two-year period to
vious problems will occur to a person who asks that get the user community to reach consensus on the
request for one context (the state) and gets an answer corporate definition of the term 'institution.'
for the other context (the city). Contextual cues help
SEs to define the one correct interpretation of am-
biguous items; further problems arise because of
Volume
multiple semantic interpretations within a single Volume is the number of business events the sys-
context. For that reason, semantics is discussed next. tem must cope with in some period. The volume of
new or changed customers is estimated on a monthly
or annual basis whereas the volume of transactions
Semantics for business operation is usually measured in volume
Semantics is the study of development and change per day or hour, and peak volume. Peak volume is
in the meaning of words. In business applications, the number of transactions or business events to be
semantics is the meaning attached to words. Mean- processed during the busiest period. The peak period
Data Collection Techniques 87
might be annual and last several months, as with tax assignment, questionnaires, review of internal
preparation. The peak might be measured in seconds and outside documents, and review of software.
and minutes, for example, to meet a Federal Reserve Each has a use for which it is best served, and each
Bank closing deadline. has limitations to the amount and type of informa-
Volume of data is a source of complexity because tion that can be got from the technique. The tech-
the amount of time required to process a single nique strengths and weaknesses are summarized
transaction can become critical to having adequate in Table 4-2, which is referenced throughout
response time when processing large volumes. Inter- this section.
active, on-line applications can be simple or ex- In general, you always want to validate the infor-
tremely complex simply because of volume. For mation received from any source through trian-
instance, the ABC rental application will actually gulation. Triangulation is obtaining the same
process less than 1,000 transactions per day. Contrast information from multiple sources. You might ask
this volume with a credit card validation application the same question in several interviews, compare
that might service 50,000 credit check requests per questionnaire responses to each item, or check
hour. Credit card validation is simple processing; in-house and external documents for similar infor-
servicing 50,000 transactions per hour is complex. mation. When a discrepancy is found, you reverify it
Applications that mix on-line and batch process- with the original and triangulated sources as much as
ing using software that requires the two types of possible. If the information is critical to the applica-
processes to be distinct, requires careful attention to tion being correctly developed, put the definitions,
the amount of time necessary to accommodate the explanations, or other information in writing and
volumes for both types of processing. For instance, have it approved by the users separately from the
the personnel application at a large oil company was other documentation. Next, we discuss each data
designed for 20 hours of on-line processing with collection technique.
global access, and four hours of batch reporting.
When the system went 'live,' the on-line processing
worked like a charm because it had been tested,
Single Interview
retested, and overtested. The batch portion, for An interview is a gathering of a small number of
which individual program tests had been conducted, people for a fixed period and with a specific purpose.
required about 18 hours because of the volume of Interviews with one or two users at a time are the
processing. After several weeks, the users were fed most popular method of requirements elicitation. In
up because printed reports had been defined as the an interview, questions are varied to obtain specific
means of distributing query results, and they had or general answers. You can get at people's feelings,
none. The solution required an additional expendi- motivations, and attitudes toward other departments,
ture of over $200,000 to redevelop all reports as the management, the application, or any other entity
pseudo-on-line tasks that could run while the inter- of interest (see Table 4-2). Types of interviews are
active processes were running. Simple attention to determined by the type of information desired.
the volume of work for batch processing would have Interviews should always be conducted such that
identified this problem long before it cost $200,000 both participants feel satisfied with the results. This
to fix. means that there are steps that lead to good inter-
views, and that inattention to one or more steps is
likely to result in a poor interview. The steps are
DATA COLLECTION_-----'--_ _ summarized in Table 4-3. Meeting at the conve-
TECHNIQUES _ _ _ _ __ nience of the interviewee sets a tone of cooperation.
Being prepared means both knowing who you are in-
There are seven techniques we use for data gathering terviewing so you don't make any embarrassing
during application development. They are inter- statements and having the first few questions pre-
views, group meetings, observation, temporary job pared, even if you don't know all the questions.
88 CHAPTER 4 Data Gathering Application Development
Strengths Weaknesses
Group Meetings
Strengths Weaknesses
Observation
Strengths Weaknesses
Surface unarticulated procedures, decision criteria, Might not be representative time period
reasoning processes
Not biased by opinion Behavior might be changed as a result of being observed
Observer gets good problem domain understanding Time consuming
Review Software
Strengths Weaknesses
Strengths Weaknesses
Good for multicultural companies to surface Might not add useful information to what is already
biases, or requirements and design features that known
should be customized to fit local conventions
Temporary Assignment
Strengths Weaknesses
Good to learn current context, terminology, May not include representative work activities or
procedures, problems time period
Bases for questions you might not otherwise ask Time consuming
May bias future design work
Strengths Weaknesses
Good for learning history and politics May bias future design work
Explains current context Saves interviewluser time
Good for understanding current application Not useful for obtaining attitudes or motivations
Strengths Weaknesses
TABLE 4-3 Steps to Conducting a them for accuracy. If you do notes, try to get them
Successful Interview back for review within 48 hours. Also, have the in-
terviewee commit to the review by a specific date to
1. Make an appointment that is at the convenience of the
aid in your time planning. If you say you will fol-
interviewee.
low up with some activity, make sure you do.
2. Prepare the interview; know the interviewee.
3. Be on time.
Interviews use two types of questions: open-
4. Have a planned beginning to the interview. ended and closed-ended. An open-ended question
a. Introduce yourself and your role on the project. is one that asks for a multisentence response. Open-
b. Use open-ended general questions to begin the ended questions are good for eliciting descriptions of
discussion. current and proposed application functions, and for
c. Be interested in all responses, pay attention. identifying feelings, opinions, and expectations
5. Have a planned middle to the interview. about a proposed application. They can also be used
a. Combine open-ended and closed-ended questions to obtain any lengthy or explanatory answers. An
to obtain the information you want. example of open-ended question openings are: "Can
b. Follow-up comments by probing for more detail. you tell me about ... " or "What do you think about
c. Provide feedback to the interviewee in the form of
... " or "Can you describe how you use ... ".
comments, such as, "Let me tell you what I think
you mean, ... "
A closed-ended question is one which asks for
d. Limit your notetaking to avoid distracting the a yes/no or specific answer. Closed-ended questions
interviewee. are good for eliciting factual information or forcing
6. Have a planned closing to the interview. people to take a position on a sensitive issue. An
a. Summarize what you have heard. Ask for correc- example of a closed-ended question is: "Do you use
tions as needed. the monthly report?" A 'yes' response might be
b. Request feedback, note validation, or other actions followed by an open-ended question, "Can you ex-
of interviewee. plain how?"
• Give him or her a date by which they will The questions can be ordered in such a way that
receive information for review. the interview might be structured or unstructured
• Ask him or her for a date by which the review (see Table 4-4). A structured interview is one in
should be complete. which the interviewer has an agenda of items to
c. If a follow-up interview is scheduled, confirm the
cover, specific questions to ask, and specific infor-
date and time. mation desired. A mix of open and closed questions
is used to elicit details of interest. For instance, the
interview might start with "Describe the current
rental process." The respondent would describe the
A good interview has a beginning, middle, and process, most often using general terms. The inter-
end. In the beginning, you introduce yourself and put viewer might then ask specific questions, such as,
the interviewee at ease. Begin with general questions "What is the daily volume of rentals?" Each struc-
that are inoffensive and not likely to evoke an emo- tured interview is basically the same because the
tional response. Pay attention to answers both to get same questions are asked in the same sequence. Tal-
cues for other questions, and to get cues on the hon- lying the responses is fairly easy because of the
esty and attitude of the interviewee. In the middle, be structure.
businesslike and stick to the subject. Get all the in- An unstructured interview is one in which the
formation you came for, using the techniques you interview unfolds and is directed by responses of
chose in advance. If some interesting side informa- the interviewee. The questions tend to be mostly
tion emerges, ask if you can talk about it later and open-ended. There is no set agenda, so the inter-
then do that. In closing, summarize what you have viewer, who knows the information desired, uses the
heard and tell the interviewee what happens next. responses from the open-ended questions to develop
You may write notes and ask him or her to review ever more specific questions about the topics. The
Data Collection Techniques 91
Structured Unstructured
Uses uniform wording of questions for all Provides greater flexibility in question wording to suit
respondents respondent
Easy to administer and evaluate Can be difficult to conduct because interviewer must listen
carefully to develop questions about issues that arise spon-
taneously from answers to questions
More objective evaluation of respondents May surface otherwise overlooked information
and answers to questions
Requires little training Requires practice
Results in shorter interviews
Weaknesses
Structured Unstructured
Cost of preparation can be high May waste respondent and interviewer time
Respondents do not always accept high level of Interviewer bias in questions or reporting of results is
structure and its mechanical posing of questions is more likely
High level of structure is not suited to all Extraneous information must be culled through
situations
Reduces spontaneity and ability of interviewer Analysis and interpretation of results may be lengthy
to follow up on comments of interviewee
Takes more time to collect essential facts
same questions used above as examples for the tured and focused as the information you need to
structured interview might also be used in an un- complete the analysis also gets more specific.
structured interview; the difference is that above, User interview results should always be commu-
they are determined as a 'script' in advance. In an nicated back to the interviewee in a short period of
unstructured situation, the questions flow from the time. The interviewee should be given a deadline
conversation. for their review. If the person and/or information are
Structured interviews are most useful when you critical to the application design being correct, you
know the information desired in advance of the in- should ask for comments even after the deadline is
terview (see Table 4-4). Conversely, unstructured in- missed. If the person is not key in the development,
terviews are most useful when you cannot anticipate the deadline date signifies a period during which you
the topics or specific outcome. A typical series of in- will accept changes, after the date you continue
terviews with a user client begins with unstructured work, assuming the information is correct.
interviews to give you an understanding of the prob- It is good practice to develop diagram( s) as part
lem domain. The interviews get progressively struc- of the interview documentation. At the beginning of
92 CHAPTER 4 Data Gathering Application Development
the next interview session, you discuss the dia- playing' if you are 'friendly' than if you are viewed
gram(s) with the user and give him or her any writ- as distant, overly-objective, or noninterested.
ten notes to verify at a later time. You get immediate
feedback on the accuracy of the graphic and your
understanding of the application. The benefits of this
Meetings
approach are both technical and psychological. From Meetings are gatherings of three or more people for
a technical perspective, you are constantly verifying a fixed period to discuss a small number of topics
what you have been told. By the time the analysis and sometimes to reach consensus decisions. Meet-
is complete, both you and the client have confi- ings can both complement and replace interviews.
dence that the depicted application processing is They complement interviews by allowing a group
correct and complete. From a psychological per- verification of individual interview results. They can
spective, you increase user confidence in your ana- replace interviews by providing a forum for users to
lytical ability by demonstrating your problem collectively work out the requirements and alterna-
understanding. Each time you improve the diagram tives for an application. Thus, meetings can be use-
and deepen the analysis, you also increase user con- ful for choosing between alternatives, verifying
fidence that you will build an application that findings, and for soliciting application ideas and
answers his or her need. requirements.
Interviews are useful for obtaining both qualita- Meetings can also be a colossal waste of time (see
tive and quantitative information (see Table 4-2). Table 4-2). In general, the larger the meeting, the
The types of qualitative information are opinions, fewer the decisions and the longer they take. There-
beliefs, attitudes, policies, and narrative descriptions. fore, before having a meeting, a meeting plan should
The types of quantitative information include fre- be developed. The agenda should be defined and cir-
quencies, numbers, and quantities of items to be culated in advance to all participants. The number
tracked or used in the application. of topics should be kept to between one and five. The
Interviews, and other forms of data collection, meeting should be for a fixed period with specific
can give you misleading, inaccurate, politically mo- checkpoints for decisions required. In general, meet-
tivated, or irrelevant information (see Table 4-2). ings should be no longer than two hours to maintain
You need to learn to read the person's body language the attention of the participants. The agenda should
and behavior to decide on further needs for the same be followed and the meeting moved along by the
information. Table 4-5 lists respondent behaviors project manager or SE, whoever is running the meet-
you might see in an interview and the actions you ing. Minutes should be generated and circulated to
might take in dealing with the behaviors. summarize the discussion and decisions. Any
For instance, if you suspect the interviewee of follow-up items should identify the responsible
lying or 'selectively remembering' information, try person(s) and a date by which the item should
to cross-check the answers with other, more reliable be resolved.
sources. If the interview information is found to be Meetings are useful for surfacing requirements,
false, ask the interviewee to please explain the dif- reaching consensus, and obtaining both detailed and
ferences between his or her answers and the other summary information (see Table 4-2). If decisions
information. The session does not need to be a con- are desired, it is important to ask the decision makers
frontation, rather, it is a simple request for explana- to attend and to tell them in advance of the goals
tion. Be careful not to accuse or condemn, simply try for the meeting. If the wrong people participate, time
to get the correct information. is wasted and the decisions are not made at the
Persistence and triangulation are key to getting meeting.
complete, accurate information. You are not required Joint application development (lAD) is a spe-
to become 'friends' with the application users, cial form of meeting in which users and technicians
but interviews are smoother, yield more informa- meet continuously over several days to identify ap-
tion for the time spent, and usually have less' game- plication requirements (see Figure 4-3). Before a
Data Collection Techniques 93
Guesses at answers rather than admit ignorance After the interview, cross-check answers
Tries to tell interviewer what she or he wants to Avoid questions with implied answers. Cross-check
hear rather than correct facts answers
Gives irrelevant information Be persistent in bringing the discussion to the desired topic
Stops talking when the interviewer takes notes Do not take notes at this interview. Write notes as soon
as the interview is done. Ask only the most important
questions. Have more than one interview to get all
information.
Rushes through the interview Suggest coming back later
Wants no change because she or he likes the Encourage elaboration of present work environment and
current work environment good aspects. Use the information to define what gets kept
from the current method.
Shows resentment; withholds information or Begin the interview with personal chitchat on a topic of
answers guardedly interest to the interviewee. After the person starts talking,
work into the interview.
Is not cooperative, refusing to give information Get the information elsewhere. Ask this person, "Would
you mind verifying what someone else tells me about this
topic?"
If the answer is no, do not use this person as an informa-
tion source.
Gripes about the job, pay, associates, supervisors, Listen for clues. Be noncommittal in your comments. An
or treatment example might be, "You seem to have lots of problems
here; maybe the application proposed might solve some of
the problems." Try to move the interview to the desired
topic.
Acts like a techno-junkie, advocating state-of- Listen for the information you are looking for. Do not
the art everything become involved in a campaign for technology that does
not fit the needs of the application.
JAD session, users are trained in the techniques used fine application requirements, and to accelerate the
to document requirements, in particular, diagrams process of development. Several studies show that
for data and processes are taught. Then, in prepara- JAD can compress an analysis phase from three
tion for the JAD session, the users document their months into about three weeks, with comparable
own jobs using the techniques and collecting copies results. The advantage of such sessions is that users'
of all forms, inputs, reports, memos, faxes, and so commitment is concentrated into the short period of
forth used in performing their job. time. The disadvantage is that users might allow
A JAD session lasts from 3 to 8 days, and from interruptions to divert their attendance at JAD meet-
7 to 10 hours per day. The purpose of the sessions is ings, thus not meeting the objective. JAD is dis-
to get all the interested parties in one place, to de- cussed in more detail in the Introduction to Part II.
94 CHAPTER 4 Data Gathering Application Development
of use and number of functions used. Asking the TABLE 4-6 Guidelines for Questionnaire
question, "How well do you use the CASE tool?" Development
might obtain a subjective assessment based on the
individual's self-perception. If they perceive them- 1. Determine what facts are desired and which people
selves as skilled, they might answer that they are are best qualified to provide them.
extensive users. If they perceive themselves as 2. For each fact, select either an open-ended or
close-ended question. Write several questions and
novices, they might answer that they do not use the
choose the one or two that most clearly ask for the
tool extensively. A better set of questions would be information.
"How often do you use the CASE tool?" and "How 3. Group questions by topic area, type of question, or
many functions of the tool do you use? Please list the some context-specific criteria.
functions you use." These questions specifically ask 4. Examine the questionnaire for problems:
for numbers which are objective and not tied to an
• More than two questions asking the same informa-
individual's self-perception. The list of functions
tion
verifies the numbers and provides the most specific
• Ambiguous questions
answer possible. • Questions for which respondents might not have
Some guidelines for developing questionnaires the answer
are summarized in Table 4-6 and discussed here. • Questions that bias the response
First, determine the information to be collected, • Questions that are open to interpretation by job
what facts are required, and what feelings, lists of function, level of organization, etc.
items, or nonfactual information is desired. Group • Responses that are not comprehensive of all possi-
the items by type of information obtained, type of ble answers
questions to be asked, or by topic area. Choose a • Confusing ordering of questions or responses
grouping that makes sense for the specific project. 5. Fix any problems identified above.
For each piece of information, choose the type of 6. Test the questionnaire on a small group of people
question that best obtains the desired response. Se- (e.g., 5-10). Ask for both comments on the questions
lect open-ended questions for general, lists, and non- and answers to the questions.
factual information. Select closed-ended questions to 7. Analyze the comments and fix wording ambiguities,
elicit specific, factual information, or single answers. biases, word problems, etc. as identified by the
Compose a question for each item. For a closed- comments.
8. Analyze the responses to ensure that they are the
ended question, develop a response scale. The five-
type desired.
response Likert-like scale is the most frequently
9. If the information is different than you expected,
used. The low and high ends of the scale indicate the questions might not be direct enough and need
the poles of responses, for instance, Totally Disagree rewording. If you don't get useful information that
and Totally Agree. The middle response is usually you don't already know, reexamine the need for
neutral, for instance, Neither Agree Nor Disagree. the questionnaire.
Examine the question and ask yourself if it has any 10. Make final edits, print in easy-to-read type. Prepare a
words that might not be interpreted as you mean cover letter.
them. What happens if the respondent does not know 11. Distribute the questionnaire, addressing the cover
the answer to your question? Do you need a response letter to the person by name. Include specific instruc-
that says, I Don't Know? Is a preferred response hid- tions about returning the questionnaire. Provide a
self-addressed, stamped envelope if mailing is
den in the question? Are the response choices com-
needed.
plete and ordered properly? Does the question have
the same meaning for every department and possible
respondent? If the answers to any of these questions
indicate a problem, reword the question to remove one or more items. If you are doing statistical analy-
the problem. sis of the answers, you might want similar questions
If you have several questions that ask similar to see if the responses are also similar (i.e., are cor-
information, examine the possibility of eliminating related). If you are simply tallying the responses and
Data Collection Techniques 97
acting on the information, try to use one question cation can provide valuable insight into what work
for each piece of information needed. The minimal- is done.
ist approach keeps the questionnaire shorter and eas- The term documents refers to written policy
ier to tally. manuals, regulations, and standard operating proce-
Pretest the questionnaire on a small group of rep- dures that organizations provide as a guide for man-
resentative respondents. Ask them to give you feed- agers and employees. Document types include those
back on all of the items that they don't understand, that describe organization structure, goals, and work.
that they think are ambiguous, badly worded, or Examples of each document type follow:
have responses that do not fit the item. Also ask them
to complete the questionnaire. The answers of this Policies
group should highlight any unexpected responses Procedures
that, whether the group identified a problem or not, User manuals
mean that the question was not interpreted as in- Strategy and mission statements
tended. If the pretest responses do not provide you Organization charts
with new information needed to develop the project, Job descriptions
the questionnaire might not be needed or might not Performance standards
ask the right questions. Reexamine the need for a Delegation of authority
questionnaire and revise it as needed. Finally, change Chart of accounts
the questionnaire based on the feedback from the test Budgets
group. The pretest and revision activities increase Schedules
the validity of the questionnaire. Forecasts
Provide a cover letter for the questionnaire that Any long- or short-range plans
briefly describes the purpose and type of information Memos
sought. Give the respondent a deadline for complet- Meeting minutes
ing the questionnaire that is not too distant. For Employee training documents
instance, three days is better than two weeks. The Employee manuals
more distant the due date, the less likely the ques- Transaction files, e.g., time sheets, expense
tionnaire will be completed. Include information records
about respondent confidentiality and voluntary ques- Legal documents, e.g., copyrights, patents,
tionnaire completion, if they are appropriate. Ideally, trademarks, etc.
the questionnaire is anonymous and voluntary. To Historical reports
the extent possible, address the letter to the individ- Financial statements
ual respondent. Reference files, e.g., customers, employees,
Give the respondent directions about returning products, vendors
the completed questionnaire. If mailing is required, Documents are not always internal to a company.
provide a stamped, self-addressed envelope. If External documents that might be useful include
interoffice mail is used, provide your mail stop technical publications, research reports, public sur-
address. If you will pick up responses, tell the person veys, and regulatory information. Examples of ex-
where and when to have the questionnaire ready for ternal documents follow:
pickup.
Research reports on industry trends, technology
trends, technological advances, etc.
Document Review Professional publications with salary surveys,
New applications rarely spring from nothing. There marketing surveys, or product development
is almost always a current way of doing work that is information
guided by policies, procedures, or application sys- IRS or American Institute of CPA reports on
tems. Study of the documentation used to teach new taxes, workmen's compensation, affirmative
employees, to guide daily work, or to use an appli- action, financial reporting, etc.
98 CHAPTER 4 Data Gathering Application Development
Temporary job assignments are similar to obser- Software provides past, and possibly cur-
vation in having a high degree of uncertainty asso- rent, information that is structured because it is
ciated with the information obtained (see Table 4-7). automated. The ambiguity should be low to me-
The information tends to be current, unstructured, dium, and semantics should be fixed since the
and incomplete depending on the period of work. application imbeds definitions of data and pro-
Ambiguity varies from low to medium depending cesses in code. Information on volumes may be
on how well-defined and structured the work is. present but should be cross-checked using other
Semantic content might vary depending on the methods.
shared definitions in the work group.
Documents provide unstructured, incomplete
informations from which no relevant volume infor- Data Type and
mation is likely. The time orientation differs whether
the documents are internal or external to the com-
Application Type
pany (see Table 4-7). Internal documents are mostly Application types are transaction processing (TPS),
oriented to the past or current situation. External query, decision support (DSS), group decision sup-
documents are mostly oriented to current or future port (GDSS), executive information (EIS), and ex-
topics. The semantics of external documents on ma- pert systems (ES). Each of these has one or more
ture technologies or topics tend to be relatively fixed predominate datatype characteristics that identifies
while that of internal documents might vary by its application. Table 4-8 shows all applications
department or division. categorized for all data types. Here we discuss only
100 CHAPTER 4 Data Gathering Application Development
the data types that differentiate between application might all be analyzed and tied together to develop
types. an answer.
TPS contain predominantly known, current, GDSS are meeting facilitation tools for groups
structured, complete information (see Table 4-8). of people. GDSS tools operate in a structured man-
Recall that TPS are the operational applications of a ner working on data that is unstructured, current, and
company. To control and maintain records of cur- future-oriented. GDSS mostly deal with data that is
rent operations, you must have known, structured, incomplete and contains semantic and other ambigu-
current, and complete information. ities (see Table 4-8). The tools themselves are com-
Query applications have similar characteristics plete, unambiguous, and so forth, but the meeting
to TPS with the difference that they might concen- information they process is not.
trate on historical information in addition to current EIS are future-oriented applications that allow
information (see Table 4-8). Queries are questions executives to scan the environment and identify
posed of data to find problems and solutions, and trends, economic changes, or other industry activity
to analyze, summarize, and report on data. To per- that affect their governance of a company. EIS deal
form summaries and reports with confidence, the mostly with 'messy' data that is unstructured,
data must be structured, complete, and interpreted incomplete, ambiguous, and contains variable
consistently being both unambiguous and of fixed semantics (see Table 4-8). Interpretation is always a
semantics. problem with such data, which is why executives
DSS are statistical analysis tools that allow who excel at reading the environment are highly
development of information that aids the decision compensated.
process. The type of data that identifies DSS so Last, expert systems manage and reason through
that all time frames might be represented, may semistructured, incomplete, ambiguous, and variable
be incomplete, ambiguous, have variable semantics semantic data (see Table 4-8). Experts and ESs take
and medium to high volume (see Table 4-8). DSS random, unstructured information and impose a
might be used, for instance, in analyzing which of structure on it. They reason through how to inter-
two variations on a given product might enjoy pret the data to remove ambiguity and to fix the
the larger market share. To do this analysis, past semantics. Therefore, even though the data coming
sales, current sales, and sales trends in the industry into the application might have these fuzzy char-
Data Collection and Application Type 101
Interview X* X X X X X
Meeting X X X X X X
Observation X X X Limited Limited X
Questionnaire X X X
Temporary job
assignment X X X
Internal documents X X X Limited
External documents X X X X X X
Software review X X X Limited Limited Limited
acteristics, the data processing is actually highly sibility analysis. Also, if the screen requires, for
structured. instance, colors or different types of screen arrange-
ments, questionnaires might be useful for present-
ing a small set of alternatives from which the actual
Data Collection Technique users choose.
DSS also are shown as having a use for all data
and Application Type collection techniques, but not all techniques are
Finally, in discussing different data types, we desire practical in all cases (see Table 4-9). DSS are gen-
to know which data collection techniques are best erally developed for use by people in jobs with a sig-
for each application type. By combining the infor- nificant amount of discretion in what they do and
mation in Tables 4-7 and 4-8, we develop Table how they do it. Therefore, observing or working
4-9 to summarize data collection techniques for each with one or two people as representative may result
application type. The table entry in boldface shows in a biased view of the application requirements for
the principle method of data collection for each a general purpose DSS. Even for a custom DSS,
technique. observation and job assignments might both be
TPS and query applications can profit from impractical if the SE does not know enough about
the use of all techniques. Meetings and interviews the job being supported to interpret what she or he
predominate because they elicit the broadest range observes. The same holds true of documents. Docu-
of responses in the shortest time (see Table 4-9). ments, such as statistical reports, might be useful
Observation and temporary job assignment are for providing samples of the types of analyses
particularly useful in obtaining background informa- desired in a DSS. Other documents, such as poli-
tion about the current problem domain, but need to cies, procedures, and so on, are not likely to be rele-
be used with caution so as not to prejudice the design vant to the application. For general purpose DSS
of the application. Questionnaires are useful when with a large number of users, questionnaires are a
the number of people to be interviewed is over 50. useful way to identify the range of problems and
Also, questionnaires are useful in identifying analysis techniques required in the DSS. This infor-
characteristics of users that determine, for instance, mation might be followed by interviews or meetings
training required of users during organizational fea- to determine DSS details.
102 CHAPTER 4 Data Gathering Application Development
GDSS are usually custom-built suites of software be mostly to identify the market, vendors, and prod-
packages that provide different types of support for ucts. Interviews are most likely to be used to deter-
automated meetings. As such, the SE working on a mine executives' information needs and preferred
GDSS environment needs to know the types of delivery platforms.
issues, number of participants, as well as types of Finally, SEs use interviews, observation, and
reasoning and group consensus techniques desired. external documents the most in developing expert
GDSS components are neither common knowledge systems (see Table 4-9). Experts frequently can talk
nor frequently used; you might build one GDSS in about external aspects of their jobs, the physical cues
a career. Therefore, significant time would be spent they use as inputs, and the result of their reasoning
finding out about the market,vendors, and GDSS and how it is applied to the business. They are just as
components. External documents on vendor prod- frequently unable to discuss their reasoning pro-
ucts are useful in developing questions that elicit the cesses and how they put the cues together to make
required information. After knowledge of the market sense of unstructured situations. Experts, by defini-
is obtained, interviews and meetings are useful to tion of the term expert, have so internalized their
determine the specific requirements and to review, work that they just do it. They don't think con-
with users, what the GDSS can and cannot do. Other sciously about how they are doing what they do.
methods might have some limited value. For in- Therefore, observation, in particular, the use of pro-
stance, observation of an actual meeting that might tocol analysis, is useful in getting information the
be automated would be useful for the SE to gain expert might not be able to articulate. Protocol
insight about how a tool might work. Internal docu- analysis is time-consuming and indefinite because
ments that provide information about meetings that you, the SE, are inferring a reasoning process from
the GDSS is expected to provide would also be actions taken. At best, the protocol analysis gives
useful. Both of these techniques, observation and you questions to ask about the work that assist the
document review, have a specific limited role in pro- experts in discussing aspects of work they ordinar-
viding the information needed to build a GDSS. Any ily cannot. Thus, observation is interleaved with in-
software review that is done would be review of terviews to discuss what is observed. As the process
other company's GDSS facilities or of vendor prod- continues, structure is imposed on both the data and
ucts, rather than review of in-house software. the problems to begin to develop the ES. The process
EIS are similar to GDSS in the rarity and general of obtaining an expert's reasoning processes is called
lack of knowledge about what an EIS is. EIS are not knowledge elicitation. The process of structuring
standard applications with a screen for data entry of the unstructured data and reasoning information is
some type and reports that are displayed. EIS are called knowledge engineering. Knowledge engi-
information presentation facilities that can be struc- neering is an activity that is difficult to learn and re-
tured with menus and selection tools, but may dis- quires training through an apprenticeship approach
play document pages, newspaper articles, book in which the trainee works with an expert knowledge
abstracts, summary reports, and so on. EIS are usu- engineer.
ally built for a small number of users, which elimi-
nates the use of questionnaires. EIS are custom and
one-of-a-kind environments for which past docu- PROFESSIONALISM _ _ __
ments or software will be of limited value. Obser- AND ETHICS _ _ _ _ __
vation is most likely limited because executives
would be uncomfortable in being observed. Tempo- A profession is defined as a job requiring advanced
rary job assignment is not possible because you can- training. Computer information systems develop-
not just 'be an executive' for a week or two. This ment and any job dealing with information tech-
leaves external documents, interviews, and meetings nologies qualify as professions. Professionalism is
as the most likely techniques for data collection (see acting in accordance with the highest expectations of
Table 4-9). As with GDSS, external documents will a professional group. Those expectations are codi-
Professionalism and Ethics 103
fied in professional codes of ethics for various orga- ethics terms and relate ethics to IS professions. Any-
nizations. The organizations relating most closely thing that is unethical is also unprofessional, but the
to IS professions are the Association of Computing reverse is not true. Professionalism is a broader sub-
Machinery (ACM) and Data Processing Manage- ject than ethical behavior. In fact, the early name for
ment Association (DPMA). Both organizations have codes of ethics was' codes of professional behavior.'
ethical conduct codes and the codes are similar. The Ethics is in the section on data collection because
most widely publicized code for the Association for many of the issues are concerned with user relations
Computing Machinery [1990], follows: and are most evident in data collection activities.
So, what is ethics? Ethics is the branch of phi-
1. The developer shall act with integrity at all
losophy that studies moral judgment and reasoning.
times.
A dilemma is any situation requiring a choice
a. The developer shall qualify an opinion out-
between two unpleasant alternatives. Therefore, an
side his or her area of competence.
ethical dilemma is any situation in which a decision
b. The developer shall not falsify his or her
results in unpleasant consequences requiring moral
qualifications.
reasoning. The addition of information technologies
c. The developer shall not knowingly issue false
to organizations presents novel, little understood
statements about the present or expected sta-
opportunities for unethical behavior that are rarely
tus of a system.
discussed in texts.
d. The developer shall not misuse confidential
Ethics is an issue of growing interest as it relates
or proprietary information.
to information technologies. You, as users and
e. The developer will remain sensitive to and
developers of ITs, are sometimes in particular cir-
will reveal potential conflicts of interest.
cumstances that subject you to dilemmas that need to
2. The developer should constantly strive to in-
be reasoned through to reach an ethical decision.
crease his or her competence in the profession.
One problem with ethics is that it is misunderstood
a. A developer will diligently attempt to de-
as religious upbringing and the application of reli-
velop systems that perform their intended
gious thought to real life situations. In fact, that is
functions and satisfy the organization's
incorrect. Ethical decisions and reasoning are based
needs.
on philosophies of rights, equity, and utility, that is,
b. A developer will help his or her colleagues
the greatest good for the greatest number of people.
develop professionally.
Ethics requires evaluation of alternatives, requiring
3. A developer shall accept only assignments for
only belief in the equality and dignity of man. Next,
which there is reasonable expectation of meeting
we discuss ethics as it relates to different aspects of
the goals of the system.
data collection and user interactions in application
4. A developer should use his or her special knowl-
development. Then, a procedure for reasoning that is
edge to advance the health, privacy, and general
likely to lead to ethical decisions is presented for
welfare of the public and society.
your use.
a. A developer should always consider the indi-
vidual's right to privacy when working with
data. Ethical Project Behavior
b. A developer should refrain from participating
in a project in which he or she feels there will Confidentiality
be undesirable consequences for individuals,
Always be trustworthy of information told in confi-
organization, or society as a whole.
dence. In fact, assume that any interview informa-
If you read the ACM Code of Ethics carefully, tion is in confidence, unless the person being
note that it contains ethical topics and professional- interviewed is specifically told that it is 'on the
ism topics. To separate out what is professional con- record.' Besides being unethical, telling 'tales out
duct from what is ethical conduct, we first define of school' will eventually return to hurt your career.
104 CHAPTER 4 Data Gathering Application Development
If you think some information gained in privacy something is rightfully yours, so does the client!
should be shared, ask if the interviewee minds if you company and you can feel ethical about taking it. For
discuss it. With permission, the bounds of confiden- instance, technical, user, or operational documenta-
tiality are removed and you are free to discuss the tion, screen designs, data dictionary, program code,
information. vendor literature, or other products that you develop
The exception to this rule occurs when a person or gather in the course of development are all subject
confides in you about an illegal act. You are legally to ownership confusion. If you work for a consulting
bound to report any illegal activity to the managers, company and develop a proprietary application, like
company authorities, and police, if no action is ABC's rental system, you have no right to sell the
taken. By law, if you do not report illegal acts, you processing to other companies. This right is nego-
are an accessory to the act and are also libel to tiable and belongs only to the client unless that right
legal action. is specifically itemized in the contract. Be clear
about ownership and you are less likely to be fired or
Privacy sued over ownership rights.
The expertise that you gain from working on a
Experts have a right to know when their experience
project is intellectual property. Expertise is yours
and knowledge are being used in an application. The
unless you sign a contract to the contrary. However,
basic rule is treat others as you would like to be
it is unethical to use your company-specific knowl-
treated. Would you like it if the company observed
edge for personal, noncompetitor, or competitor
your use of computers and built systems based on
financial gain unless you have an agreement with
it? Especially in building expert systems there are
your employer about such use. Usually employers
ethical issues about ownership of expertise. There
ask that you not divulge proprietary information, but
should be no observation, in person or by computer,
the definition of proprietary may be open to inter-
without permission. No one should be coerced into
pretation. Also, employers can bar you from using
cooperation. Participation should be voluntary.
information for one to two years if they can prove
that it might hurt their business. The best course of
Ownership
action is to get such issues in the open and decided in
Computers are now so much a part of corporate life advance so no conflict occurs.
that we tend to get confused about who owns the
resources. On an intellectual level, most people rec-
Politics
ognize that the company that owns the computers
also owns the computer time. But, in a given situa- Try to never be mixed up in a political battle. This
tion, most people feel that if the resource is not used is easier than it sounds, especially if you are the SE
it is wasted, and that computer time is like the ether, or project manager. Politics is the science of man-
a free resource that is there for the taking. Most agement often driven by personal motivation. In
executives do not feel the same way, whether or not organizations, most people have the company's
there is a policy about computer resource use. interest in mind when they make decisions; everyone
Find out, in advance, the company policy or is also assumed to at least consider their personal sit-
owner feelings about personal use of computing uation in decisions, as well. Some people put per-
resources, then follow their guidance. Actions like sonal improvement ahead of all other considerations,
running a program for a friend, doing personal fi- even to the detriment of the company. Extreme self-
nances, keeping track of the baseball team, and so on ish motivation without regard to the outcome for
mayor may not be ethical, depending on how the others or the company is unethical.
company feels about the use of its resources. In a political battle, the politician(s) try to ma-
Who owns work and work-related products nipulate the project results to improve their position
should be spelled out in detail so that if you feel in the company. Political maneuvering might take
Professionalism and Ethics 105
different forms: stalling, lying, artificial require- people say the project manager is always account-
ments, false cooperation, or different public and pri- able. Some say the analysts and SEs. Some say no
vate statements. You, as the SE or PM, must become one. The short answer is that everyone is responsi-
sensitive to such actions and learn how to diffuse ble for and should be made accountable for his own
them. The tactics are manifested in the discussion work and its integration into the project whole.
of interviewee actions and interviewer reactions in Do not talk to your manager, client, or your
Table 4-5. employees about work problems that do not relate
to project completion. This is just good business.
Managers and clients want answers and solutions,
Courtesy
not problems. Therefore, they should be informed
It is not necessary to tell every project problem to the of status and problems that might someday affect
user. You are ethically bound to discuss problems them, but should otherwise be left alone. A manager
that might impact schedule, budget, or accuracy. doesn't want to know how Suzie in the typing pool
When to tell a user about problems requires common or Carl in the copy room butchered your work. You
sense. You should tell them early enough to warn deal with it and forget it. If you have a problem with
them that the problem is coming, and late enough not the quality of someone's work who does not report
to have been a whistleblower for nothing. Never wait to you, mention it to that person, and if unresolved,
until the last minute when nothing can be done to talk to their manager. The less accusatory and more
fix the problem, or all project participants lose cred- factual you can be, the less like a whiner and com-
ibility. Always solicit user assistance in problem res- plainer you appear. Be sure you can back up any
olution once they are told. The purpose of weekly accusations you make.
status meetings is to provide status and identify Do not tell the client or your manager about your
problems and their anticipated resolution. These personal problems unless you have a personal rela-
problems always foreshadow schedule and budget tionship. Personal problems can always be blamed
problems when they remain outstanding for a long for everything that goes wrong, but that is neither
period. A problem outstanding several months with adult nor ethical. Henry Ford's famous quote,
no solution in sight will probably impact the sched- "Never complain, never explain," comes to mind
ule and budget. In keeping the user up-to-date on here. Your job at work is to work, so just do it.
technical problems you indirectly apprise them of Do not get emotionally involved with the user. If
potential cost and budget overruns. there is a budding relationship, it can wait until the
project is complete. Emotional involvements are
easy to fall into when you are together 10 to 15 hours
Personal Manner and Responsibility
a day for months at a time. They also are prone to
When people work on a project with others, they collapse as soon as a new project begins and you and
sometimes lose sight of their contribution as stand- they both work with others 10 to 15 hours a day.
ing on its own for quality review. Somehow the Emotional attachments cloud judgment and do not
notions of 'on time, within budget, and accurate' belong in the office.
have meaning to the project but not to the individ- Never intentionally mislead. Never lie. Never
ual who is coding and testing a module. One role of give false impressions, false perceptions, or any
the PM and SEs is to instill the sense of responsibil- information that might cause users to infer a better,
ity in every person. Each person should know their bigger, more functional application than you plan to
tasks, budget, expected resource use, and due date. deliver. Users will form their opinions based on what
Each person should be held accountable for meet- you and their managers tell them. Don't oversell the
ing their deadlines and for having no errors in the application and what it can do for their job. Also, if a
code. Accountability is easy to displace in project downsizing is taking place at the same time, don't
work; who is responsible becomes diffuse. Some falsely give people hope that their jobs will be saved
106 CHAPTER 4 Data Gathering Application Development
when they might not. You don't raise alarms, but you alternatives untenable. Cross them off the list. Once
don't give false hope either. a type of conduct crosses over into governance by
laws, it is no longer an ethical issue, but becomes a
legal one. Always obey the laws of the country you
Ethical Reasoning are in and the country you represent. For instance,
When you feel you are confronted with a problem bribery is a way of life in many countries, but not in
that requires ethical reasoning, you need some way the United States. Therefore, you are legally bound
to identify all potential stakeholders, to evaluate the not to use bribery in business when you work for an
alternative courses of action, and to reason through American firm.
the alternatives. One such method is presented here Policies and procedures of companies are similar
as a way to initiate reflection on your own thinking in codifying conduct, but do not hold the same strin-
about the way you reason through tough problems. gency of penalty for their transgression. Violation
This is certainly not the only method of problem of policies is usually a fireable offense, meaning you
reasoning. lose your job when you violate a policy. Procedures
are less stringent, but are expected to be followed.
Identify Stakeholders You might receive a letter of reprimand for not fol-
lowing a procedure exactly.
First, identify who might benefit or suffer from your
Guidelines, such as the professional code of
decision. This action identifies stakeholders, people
ethics listed above, also provide heuristics about
who have a stake in the outcome of your action. This
conduct to help you in governing your work behav-
is a difficult task, especially with computer use when
ior. There is no direct penalty in not following a code
you might not know the stakeholders personally.
of ethics. You might be sued or fired, but the pun-
Stakeholders might be stockholders of a company,
ishment is not from the professional organization.
the company itself, your boss, you, the user com-
munity, the user/client for the application, society, or
people subject to direct or indirect connection to the
Reason Through Negative
application. For instance, space shuttle astronauts, Outcome Alternatives
patients in a hospital, people who live near the plant For the possible courses of action remaining on your
in which the application will run, e-mail recipients, list, reason through each by asking key negative
report users, governments, data entry clerks and their questions. If the answer to any of these negative out-
managers, all might be stakeholders. come questions is yes, remove the alternative action
from the list.
Identify Actions Stakeholders Are the rights of any person or group violated by
Would Choose this action? Consider the right to privacy, ownership
of information about individuals' buying habits, pay-
Then, identify the action each stakeholder would
ment habits, income, tax status, and so on. Consider
prefer you to take and why. This task defines all pos-
the rights to company privacy of customer, financial,
sible actions. Begin with yourself. What do you want
personnel, medical, and other proprietary inform a -
to do? Why do you think this is the best decision?
tion. Ask if the lack of security and access controls,
Answer these questions from the perspective of each
for instance, subject the database to casual brows-
stakeholder group. Putting yourself in each stake-
ing by system users. If such browsing could result
holder group's position requires objectivity and dis-
in a violation of privacy to customers, it should be
tance from the problem.
prevented.
Does taking this action result in inequitable treat-
Eliminate Alternatives
ment of a person or group? Equitable treatment
Next, determine if there are any policies, procedures, requires judgment of equality. In multinational com-
laws, or other guidelines that make one or more panies, inequity might be seen as a business deci-
Summary 107
sion. For instance, many US corporations initially If only negative outcomes are possible, does tak-
got into international business by dumping their sec- ing this action result in the least harm to all stake-
ond rate quality goods in other markets. Was this holders? If this is the case, who suffers and what type
ethical? The answer is in the manner in which it was of injury? If the stakeholder is warned in advance,
done. If the goods were sold as second quality, there can the problem be averted?
is no issue. If the goods were sold as first quality,
the companies basically lied and were unethical. Select a Course of Action
Companies might be subject to inequity because
When all the pros and cons of each alternative have
of their internal staff quality, too. Does the company
been identified, select the alternative that produces
lose money because of the inefficiency of design? A
the greatest good for the greatest number of people,
manager, for instance, might insist on using a par-
that does not violate anyone's rights, and that results
ticular software because he knows it, even though it
in the most equitable decision, with all stakehold-
is not efficient for the task. The manager is making
ers' equity considered.
a trade-off of current knowledge versus cost and
time for learning a new product, that can cross the
line into unethical behavior when it costs the com-
pany tangible amounts of money. Using mainframes SUMMARY ________~___
which rent for millions instead of networks that cost
thousands could be construed as unethical when net- Data gathering is done during every phase of appli-
works are not even considered because of a lack of cation development, but serves different purposes
expertise. In other words, making a business deci- in each phase. The types of data collected depends
sion to stay with a significantly more expensive on the type application and phase of development.
alternative after considering all alternatives, is ethi- Data types refer to the characteristics of data for
cal. Avoiding a comparison of alternatives or mak- time-orientation, structure, completeness, ambiguity,
ing a decision because of technical ignorance is semantics, and volume. Attention to data types in
not ethical. selection of data collection technique is less likely to
Does taking this action have the potential of plac- cause errors and more likely to find errors than inat-
ing a person or company in jeopardy financially, tention to data type. The cost of errors rises dramat-
physically, legally, or morally? Hospital applications ically the later in the development process it is
that hook patients to computerized monitors, trans- found. Time orientation of data refers to past, pres-
portation industry applications that affect safety of ent, or future data requirements for an application.
planes and cars, power plant applications that deal Data structure refers to the extent to which data can
with monitoring power-generation equipment, and be classified. Data completeness is the extent to
so forth, are all potentially life-threatening. We need which desired information is present. Ambiguous
such applications, but their design and maintenance data have unclear or multiple meanings; companies
must be of the highest possible quality to pose the strive for unambiguous definitions for data. Data
least risk to human life. If corners are cut on analy- semantics are the meanings, we as organization
sis, design, or testing, lives can be lost. employees, give to data. Volume is the numbers of
each item of interest in an application. Volumes can
have widely varying time orientations. SEs must
Reason Through Neutral and attend to peak as well as average volume.
Several data collection techniques were dis-
Positive Outcome Alternatives
cussed, including interviews, group meetings,
For remaining actions, ask key positive outcome questionnaires, observation, temporary job assign-
questions to select the best alternative. Does taking ment, review of internal and external documents,
this action result in the best possible outcome for all and review of software. Interviews are meetings
stakeholders? What is the result of taking no action? between two or three people for obtaining any type
108 CHAPTER 4 Data Gathering Application Development
of information. Interviews can be structured or documents are important in unique GDSS and EIS
unstructured. Questions asked can be open-ended or development. Questionnaires are most useful in DSS
closed-ended. for general use in a company, for surveying user
Group meetings include four or more people preferences for design options, or for obtaining
and can substitute for interviews or can be used to detailed information about the application from a
validate interview findings. Joint application devel- large number of people.
opment meetings are a special type of meeting
specifically convened to develop application re-
quirements. Special training and planning are
required for JAD sessions. Both interviews and KEy TERMS _________
meetings require attention to an agenda and time
period. closed-ended question meetings
Observation is the monitoring of one or more per- data ambiguity observation
sons' work. Observation is useful for learning a data completeness open-ended question
problem domain and is most often used in expert data semantics peak volume
system development. A data analysis technique data structure politics
called protocol analysis is used to infer the reasoning data time-orientation profession
data volume professionalism
processes of experts from detailed manuscripts of
dilemma protocol
their actions during a period. document questionnaire
Temporary job assignment is an alternative ethical dilemma reliability
means of gaining problem domain experience ethics semantics
for nonmanagerial, nonexecutive jobs. Question- intellectual property stakeholder
naires are structured forms of interviews conducted interview structured interview
on many people, usually more than 50. Statistical joint application triangulation
techniques are frequently used in analyzing ques- development (JAD) unstructured interview
tionnaire results. Reliability and validity of the ques- knowledge elicitation validity
tions are issues to be considered in questionnaire knowledge engineering
development.
Document review is useful in gaining background
information about an application area. Documents
can be internal or external to the company. REFERENCES ______~____
Software review is the analysis of programs and Flaaten, Per 0., Donald J. McCubbrey, P. Declan
documentation to learn the details of a current O'Riordan, and Keith Burgess, Foundations of Busi-
application. ness Systems, 2nd ed. Fort Worth, TX: Dryden Press,
In developing the information about data collec- 1992.
tion technique related to application type, we also re- Gause, Donald C, and Gerald M.Weinberg, Exploring
lated data collection technique to data type and data Requirements Quality Before Design. NY: Dorset
type to application type. From these analyses, we House Publishing, Inc., 1989.
find that interviews and meetings are most fre- Lucas, Henry C, Jr., The Analysis, Design, and Imple-
mentation of Information Systems, 4th ed. NY:
quently used because they are the only techniques
McGraw-Hill, Inc., 1992.
useful regardless of application type. The other tech-
Mockler, Robert J., and Dorothy G. Dologite,
niques have specific purposes for each application Knowledge-based Systems: An Introduction to Expert
type. For instance, software review for TPS, tempo- Systems. NY: Macmillan Publishing Co., 1992.
rary job assignment, or observation are useful in Zahedi, Fatemah, Intelligent Systems for Business:
gaining problem domain experience. Observation is Expert Systems with Neural Networks. Belmont, CA:
most useful in expert system development. External Wadsworth Publishing, 1993.
Study Questions 109
29. What is the difference between professionalism 2. The ACM's Code of Ethics, number 2, discusses
and professional ethics? the need for developers to constantly increase
30. Discuss three of the six areas of ethical conduct competence in their profession and to help
by IS professionals. others to do likewise. Is this an ethical issue?
31. Describe an ethical dilemma you might face in Who are the stakeholders to the issue? Reason
application development work. How should it through the issues and develop your own
be dealt with? thoughts on the subject. Compare them to class-
32. Describe the reasoning process for developing mates, arguing for your position.
an ethical solution to some issue. 3. List and define the data type for all data cur-
* EXTRA-CREDIT QUESTIONS
rently identified for ABC's rental application.
Refer to Chapter 2 for the data definitions.
1. For ABC Video's rental application, we still do
not know accurate counts for volumes of rentals,
late returns, on-time returns, late fees, or cus-
tomers. How would you go about finding this
information? Be specific in identifying a data
collection technique, the number of people
involved, and the amount of time involved. At
what stage of the development process should
this information be got?
PA
--- PROJECT
-----
INITIATION ----------------------------------- .............. -------
The two chapters in this section address the activities Enterprise level planning exercises are costly, and
that take place before analysis of a specific project some companies cannot afford to spend computer
begins. Project initiation can take place in several resources on such studies. In these companies, appli-
different ways. First, it can be part of a larger enter- cation development projects are initiated via a
prise reengineering effort. Second, a project might direct request from a user. Also, companies that do
be initiated as part of an information systems plan- enterprise level plans might desire to reconfirm rec-
ning effort. Third, a project might be initiated based ommendations that might be two or three years old.
on a user request for a specific project. All three For direct initiation and for reconfirmation of rec-
methods of project initiation are equally feasible and ommendations, a user memo to the Information Sys-
equally useful in beginning an application develop- tems Manager or to an IS Steering Committee can
ment project. initiate project assessment. Such an assessment is
Chapter 5 addresses the first two project initiation called a feasibility study.
efforts. The main discussion is how to do a reengi- Chapter 6 details the activities involved in a fea-
neering design of an organization and plan applica- sibility study. A feasibility study is performed to
tions and technologies to support the redesign. assess the financial, technological, and organiza-
Enterprise level planning, such as an information tional readiness of the company for the application.
systems plan, is described as a subset of activities Feasibility is an important analysis that is usually
that focus on applications only and are an abbrevi- conducted on individual application projects rather
ated reengineering study. Most researchers and in- than on a whole group of applications, such as might
dustry experts, such as James Martin, recommend be identified in an ISP or organizational reengineer-
that at least an information systems plan (ISP) is a ing project. The feasibility analysis determines the
worthwhile planning activity in existing organiza- extent to which new technologies, skills, or training
tions. Both reengineering and ISPs result in plans for are required by the user and developer staffs and
multiple applications which are prioritized for assesses the ability of the company to pay for the
development. development project.
111
112 PART II Project Initiation
Part of the technical feasibility is to define a concepts is made and may (or may not) be accepted
direction for the application development through an at the completion of the feasibility study. Even
evaluation of technical development alternatives. though the concept need not be cast in concrete at
For instance, an application might be on-line or real- this time, it helps to have a sense of the operational
time; it might be on a standalone PC, on a PC con- environment for conducting the analysis phase of
nected to a local area network, or on terminals the project.
attached to a mainframe; it might use a 4GL data- A risk assessment should be performed as part of
base software such as Orac1e™ or a full-service feasibility analysis. The risk assessment identifies
database such as IMS DB/DC. 1 Likely alternatives technical, personnel, and financial problems that
are evaluated to determine the extent to which func- could hinder the successful completion of the proj-
tional requirements would be supported, and to ect. For each risk defined, two types of plans are
determine any alternative-specific benefits that developed. First, a contingency plan to deal with the
might be present. A recommendation for technical problem if it should occur is defined. Second, imme-
diate steps to minimize the probability of the risk's.
1 Oracle ™ is a trademark of the Oracle Corporation. IMS occurrence are planned and taken.
DBIDC is a product of IBM Corporation.
CHAPT ER5
ORGANIZATIONAL ________-----
REENGINEERING
AND ENTERPRISE _ _ _ _ _ _ _.--------
PLANNING _ _ _ _ _ _~_ _~-
113
114 CHAPTER 5 Organizational Reengineering and Enterprise Planning
the clerk does a large number of related activities enterprise architecture is an abstract summary of
that present a complete view of a small number of some organizational component's design. The orga-
customers. The move is away from an assembly line nizational strategy is the basis for deciding where the
approach and toward self-sufficient workers or work organization wants to be in three to five years. When
groups. matched to the organizational strategy, the architec-
The first reengineering improvement for case- tures provide the foundation for deciding priorities
workers comes from job redesign. If the 80-20 rule for implementing the strategy.
is applied to most businesses, 80% of the transac- The organization process architecture identifies
tions in the business are the norm, and 20% are the major functions of the organization, the activities
exceptions. Organizations are typically designed to that define the functions, and the processes that
handle exceptions well. The 80% of their work that accomplish the activities. Examples of each of these
is normal tends to take much longer than needed. levels are shown in Figure 5-2. It does not detail the
One goal of reengineering is to increase handling procedures for how to do each task.
speed and quality of handling for the 80% of nor- During reengineering analysis, the entire process
mal transactions by an order of magnitude, for architecture is reevaluated for its support in achiev-
instance, by at least 10 times. A second goal is to ing organizational goals. For processes that survive
decrease the number of exceptions to as close to zero the analysis, the organization is redesigned. Theories
as possible. For instance, at Ford, one way to prevent of interdependence, linking mechanisms, and orga-
errors in the receipt of goods from vendors was to nization design are applied to structuring work
accept only complete, exact shipments. Any item groups in the reengineered organization. 2 These the-
that did not match an order item caused the entire or- ories are not new. Rather, theorists and practitioners
der to be returned. Vendors got the message quickly have talked about them for years with little move-
that Ford would not accept their shoddy work prac- ment of theory into practice. Over the same years,
tices any more and were forced to revise their pro- information technologies matured sufficiently to
cedures as well. support the integration and data sharing required of
Empowerment of the caseworkers comes from the information organization. In the early 1990s, a
job redesign, removal of errors from the process, and ground swell of changing companies became an
from the use of any and all information and tech- avalanche, with many companies trying to imple-
nologies that assist them in performing their job. ment the theories using information technologies to
Information technologies enable reengineering. In- support the revised organization.
formation technologies (IT) are any technologies The second architecture, data architecture, iden-
that support the storage, retrieval, organization, man- tifies the enduring, stable data entities (people,
agement, or processing of data. A technology plan places, organization, events, and applications) that
and goals should be developed and managed at the are critical to the organization maintaining itself as
organization level. a going concern. IS theories of information modeling
In addition, data, the raw material for informa- and information systems planning are used in data
tion, requires recognition and organizational com- analysis. In particular, entity-relationship modeling
mitment as a corporate resource. As a corporate is used for documenting data and its relationships.
resource, data requires the same careful planning and Entity-process analysis is used to design subject area
ongoing management as cash-on-hand, office equip- databases. Entity-application analysis and process-
ment, or personnel. Data must be managed at the application analysis are used to define automation
corporate level as a key asset of the organization. requirements. These analyses originated in IBM's
To manage and plan for the organization struc-
ture, its data, and its technology, enterprise level
2 Interdependence theory is Thompson's [1967]. Galbraith
(i.e., the entire organization is the enterprise) plans [1976] and Galbraith and Nathansen [1979] propose linking
must be devised. These plans, or 'architectures,' mechanisms with some organization design. Other organiza-
provide a snapshot of the current organization. An tion design work is listed in the references.
116 CHAPTER 5 Organizational Reengineering and Enterprise Planning
information systems planning (lSP) methodology 1. Management commitment, usually from the
and are expanded in reengineering. CEO or top manager of the organization.
The network architecture identifies all locations 2. Formally articulated organizational mission,
of work and their communications requirements. goals, and objectives.
It is the basis for deciding telecommunications 3. Full commitment of the reengineering
support. team.
Finally, the te~hnology architecture contains 4. Training and support for the reengineering
information about platforms [e.g., mainframe, local team.
area network (LAN), or personal computer (PC)], 5. The desire to change the organization and
special-purpose technologies (e.g., multimedia, its culture.
imaging, e-mail) and the locations of each. By map-
In addition to the necessary conditions, reengineer-
ping the network and technology architectures, orga-
ing assumes the following:
nization level technology changes can be identified.
New technologies, such as imaging, can be evalu- 1. Nothing escapes review. The reengineering
ated and positioned to provide the most leverage to team has as its mission to evaluate the orga-
the organization. nization, including its structure, jobs, data,
Successful reengineering is not assured. Neces- processes, and technology. Recommendations
sary conditions, or absolute prerequisites, for reengi- in any of the five areas of assessment may
neering include: be made.
Planning Reengineering Projects 117
2. Enlarging jobs and empowering job holders Ford Motor Company, for instance, turned around
as caseworkers rather than as assembly line their losing company when introducing their 'Qual-
workers is desirable. ity is number one' program. They compared their
3. Business and IS organizations must become organization to others, including Japanese firms, and
partners in the redesign and technology found they had many more people performing simi-
empowerment. lar functions. In some cases, like the accounting
4. In improving quality of processes, elimina- area, the difference was more than 10 to I in num-
tion of errors via elimination of functions and bers of people. Ford threw away the book about how
superfluous processes is desirable. accounting should be done, eliminated parochial
5. There are no technology constraints. Recom- interests about where decisions should be made,
mendations will be made without regard to made data sharing from databases universal, and
current budgetary, organizational, or other reduced their staff by over 60%. The result of the
constraints. Implementation planners, based extensive changes is happier people with more skills
on recommendations and manager's priori- used in a given job. Individual jobs are done faster
ties, will attend to constraints. and more cheaply with almost no errors.
6. Data shareability is desired. While normaliz- The philosophy of reengineering is to define
ing data within an application environment stakeholders' goals and then exceed them. The phi-
minimizes redundancy in an application, min- losophy is based on the idea that change can be
imizing organizational data redundancy via good. Companies must scan the business horizon
data administration and across applications is and actively change the organization as needed to
the real goal. Building subject area data bases lower costs, and to improve, speed, and increase the
and providing data access based on need quality of service(s) in meeting its mission. They
rather than on organization structure is the must be equally proactive about discontinuing ser-
means to achieving organizationally mini- vices, departments, applications, or technologies that
mized data redundancy. no longer relate to organizational goals and objec-
tives. In short, the organization must be proactive
This assumption of no constraints may not be rather than reactive about all aspects of its operation.
realistic in that politics and survival of participants
can subvert the desired objectivity in a reengineering
project. One of the management challenges in re- PLANNING _ _ _ _ _ __
engineering is to prevent politics from preventing
the needed change. REENGINEERING _ _ _ __
Industry leaders and successful turnaround PROJECTS ____________
companies who now thrive provide the motivation
for sweeping change. These companies are orga- Schedules for reengineering projects can be based on
nized differently from their competition. Industry several different scenarios. The goal of all scenarios
leaders today tend to have fewer departments, fewer is the same: redesign of organization, jobs, pro-
layers of management, and fewer people doing anal- cesses, data, and supporting technologies. A sec-
ogous jobs than their competition. Their success is ondary goal is that all redesign planning be
partly organizational and partly cultural. These completed in a short period of time. The short period
successful companies succeed because they define should be within four months from the time the team
their market in terms of what their customers want is formed until all recommendations are presented to
and demand, then they exceed those expectations. the senior manager sponsor(s).
Because these companies do not have excess struc- Reengineering projects can be completed faster
ture, they are flexible to continuously reeval- or slower depending on several factors. First is the
uate what they are doing and how well they are amount of actual time spent by each team member.
doing it. Ideally, all team members should be relieved of their
118 CHAPTER 5 Organizational Reengineering and Enterprise Planning
current duties and assigned full time to the reengi- then, the level of effort approach assumes an incom-
neering effort. In reality, the best managers, who you plete analysis.
want on the team, also are the most needed to run the The assumption here is that error-prone and bot-
current business. So, part-time or short duration full- tleneck processes are the targeted activities. While a
time commitments might have to suffice. high-level description of the entire enterprise is pos-
In all cases, one to four senior IS staff (i.e., con- sible, only the problem activities are actually in the
sultants, senior analysts, software engineers, or proj- level-of-effort study.
ect managers) are assigned full time to the project. Scenarios for three levels of user manager partic-
Much of the work performed during the reengineer- ipation are provided in Figures 5-3 through 5-5. Fig-
ing project is identical to that performed as part of an ure 5-3 shows a short burst of participation, similar
information systems planning exercise. IS staff who to a joint requirements planning (JRP). 3 In this sce-
already know ISP only need to learn several types nario, users and analysts are trained and go off-site
of matrix analysis and organizational design to be for an intensive 4- 8 days (depending on the size of
fully capable of performing the reengineering work. the organization) of requirements, data, process, and
The second major factor in determining the entity-process analysis. An alternative that mini-
amount of time is the size of the organization being mizes the amount of time managers are absent from
analyzed. A 100-person, five-department organiza- work is to hold the JRP meetings over one or two
tion can be analyzed easily within four months. A weekends. More than 90% of the data gathering can
10,000-person, 200-department with four hierarchic be completed using the JRP approach. In this sce-
levels can also be analyzed within four months, but nario, most of the analyses are done by the full-time
requires more people and more discipline to the project staff, but are presented for review and deci-
team. A good rule of thumb is to have one person for sions to the user-team participants. In no case do
every 10-15 departments or every 100 jobs. the IS staff make the decisions and recommenda-
Four months is the time most authors recommend tions alone.
for completion of the entire reengineering project, The second scenario assumes constant part-time
from inception to development of the implementa- participation over time (see Figure 5-4). In this sce-
tion plan. The actual pilot testing and implemen- nario, user managers are available for meetings,
tation of the changes might take several years interviews, and analysis sessions 1-3 hours each
to complete. There are several good reasons for a day. They must be committed to participating and
short time schedule. First, managers cannot suspend must not waver from participation, or the project will
their work indefinitely and run a company, too. If falter. Notice the dotted lines for all activities. The
several people are allocated full time it drains the dotted lines imply a part-time, longer activity. The
management resource. Second, with a mentality ori- full-time IS staff actually do most of the legwork,
ented to quarterly results in the United States, most interviews, and preparation for analyses. But, once
managers will not wait longer than that to prepare for again, the decisions are made by the user managers,
change. Third, the project is bound to be known not the IS staff.
throughout the organization soon after it begins. The final scenario assumes full-time commitment
When reorganizations are imminent, work is re- for the duration of the project (see Figure 5-5). With
placed by gossip and worry. The shorter the time full-time users and full-time IS staff, the length of
of the reengineering study, the less lost work to the the project can be as short as three weeks and, for
organization. large organizations (e.g., 1,000 people, 50 depart-
When the end date is mandated, the team does the ments), as long as 16 weeks. Table 5-1 shows the
amount of work they can accomplish within the time major tasks and activities with expected percentages
constraint. This approach to work is called 'level of of effort for each task.
effort.' With a level of effort approach, the team
works at capacity up to the deadline and, what does 3 JRP is an innovation of IBM Corporation. It is fully discussed
not get done, does not get done. For large projects, in the introduction to Part II.
Reengineering Methodology 119
Weeks
111111111122222
123456789012345678901123
~
Identify Sponsor
~
Assign Staff
~~
Scope Project
Create Schedule ~~
1- 1-1- -
Gather Information
~
Develop Data Architecture ~
P:;
Develop Process Architecture ~
Part-Time Activity
Full-Time Activity
All of those particular steps are iterative and require is a senior level manager who will pay for and
three to five weeks to complete. A detailed descrip- champion the project. A champion is an individual
tion of each reengineering step follows. with commitment, enthusiasm, credibility, and in-
fluence who can act as a 'cheerleader' for the project
and its outcomes. The sponsor is the overall project
manager for the reengineering project and must have
Identify Project Sponsor the authority, fortitude, and desire to change the
The first step of reengineering is to enlist or be en- organization and its work, based on the recommen-
listed by the project sponsor. The project sponsor dations from the reengineering analyses.
Reengineering Methodology 121
Weeks
111111111122222
123456789012345678901123
Identify Sponsor
Assign Staff
Scope Project
Create Schedule
Gather Information
Develop Analysis
Legend:
Part-Time Activity
Full-Time Activity
Assign Staff be assigned to the project full time for its entire
duration.
Three or four user area, senior, or middle managers All team members should attend ~ reengineer-
should be assigned to the reengineering project for ing workshop or class together to fully acquaint
a period not to exceed four months. At least one them with the techniques and goals of the activity.
month of the initial commitment should be full time; The individuals assigned must have commitment to
the remainder of the work may require only part- this work. They must be senior enough and good
time commitment. Two or three senior IS managers, enough at their own jobs to have instant credibility
or SEs, or data administrators, or consultants should within their organization. Without both of these
122 CHAPTER 5 Organizational Reengineering and Enterprise Planning
TABLE 5- 1 Percentage of Reengineering do their work. Control over data creation equals data
Effort by Task self-sufficiency.
The second criteria is user commitment. User
Activity % Effort commitment means that the managers participating
in the reengineering project must be committed to
Obtain sponsor N/A changing the organization. This is not as difficult as
Initiate project N/A it might sound. Few people enjoy their job when
they know it is inefficient and hampered by ineffec-
Assign staff N/A
tive organization or systems designs. When the best
Scope project 2-5% managers in an organization that needs change are
(Concurrent with next two 2 Days assigned, they become enthusiastic about the pros-
activities)
pect of designing the work groups to fit the work.
Develop schedule 2-5% Because their positions in the company are not at
3-5 Days risk, there is little reluctance to participate.
Identify mission statement 2-5% Determining data self-sufficiency requires de-
1 Day velopment of a quick entity-relationship diagram
Gather data 20-25% (ERD), process hierarchy, and entity/process
3-4 Weeks matrix. The results should be about 80% complete
Develop process architecture 6-10% and address the major entities and processes. The
3 Days-1 Week analysis of the matrix is to determine where data are
Develop data architecture 6-15% created, nothing else. If data are not created within
3 Days-1 Week the organization, the amount of data and the creat-
ing (or originating) organization are identified and
Develop and analyze entity/ 20-25%
process matrix 3-4 Weeks added to the study. In addition, the amount of data
for all entities created within the organization must
Develop implementation plan 20-25%
3-4 Weeks be identified to determine the percentage of data self-
sufficiency. The percentage is derived from the for-
Develop technology 6-10%
architecture mula shown as Figure 5-7.
3 Days-1 Week
The inputs to the formula (I) identify a count of
Total duration 100% transactions or other work items generated within
12-17 Weeks
the target reengineering organization. The outside
work (0) represents a count of transactions or other
work items coming into the department from else-
where in the organization. Outside work is not sub-
ject to review or error reduction, and the goal is to
requirements, the target of four months for the total keep it to a minimum in the study. In Figure 5-7, the
effort is doubtful. target organization generates 75% of its own data
and is, therefore, data self-sufficient enough to ben-
efit from reengineering.
Scope the Project Less than 70% data sufficiency implies too
The key criteria for properly scoping a reengineering narrow a scope because of too great a data depen-
project are data self-sufficiency and user commit- dency on outside organizations. Lack of data self-
ment. Data self-sufficiency is defined as 70% (or sufficiency artificially constrains (or may mask
more) of data used in performing the business func- potential) elimination of errors, organizations, or
tions that must originate within the subject organi- levels of management that are not needed. If the
zation. The goal of scoping is to identify a group of scope is too narrow, the analysts present the infor-
departments that create their own information and mation to the sponsor and request a broadened scope
are not dependent on other departments for data to to include the information-creating organization(s).
Reengineering Methodology 123
1111111
1234567890123456
Identify Sponsor c
Assign Staff
Scope Project
Create Schedule
Gather Information
Develop NetworklTechnology
Architectures
Develop Analyses
be allotted as a percent of the project total shown include customers, vendors, stockholders, owners,
in parentheses (see Table 5-1). Each task is assigned and boards of directors.
to a team member who is held a<;countable for Identify critical success factors for determining
the work. that goals are met. A critical success factor (eSF)
defines some essential process, data, event, or
action that must be present for the outcome to be
Identify Mission Statement realized. For instance, if the goals in Figure 5-8 are
Identify the mission statement for the organization desired, a eSF might be Ensure that sales staff are
with quantified goals for measurement. A mIssion fully trained in locating movie information.
statement is a short paragraph summarizing the The last step of critical success factor analysis is
overall purpose of the organization. The details of to decide what information is required to measure
the document should include goals and objectives, goal success. In the example, goals relate to sales.
along with determinants of success (i.e., critical The eSF also relates to 'training.' Success measures
success factors) for each, with required data for mea- for sales and for sales staff knowledge of how to find
suring the extent to which the goals are met (i.e., movie information are required. Periodic evaluation
means-end analysis). with training for ill-informed sales staff is one way.
If the organization has no mission statement, Management needs to know evaluations that have
or has no quantified goals and objectives, do taken place and misinformed staff who have been
not attempt to develop these for the organiza- retrained. If the same person(s) are being retrained,
tion. Disband the reengineering group and have the management intervention might be warranted.
managers work on perfecting the mission, goals, Intangible goal measurement is just as important
and objectives before reconvening the reengineer- as tangible goal measurement. An intangible goal
ing effort. might be increased customer satisfaction. To mea-
Goals should have a three- to five-year horizon sure this, an outside polling company can canvass
and should be specifically measurable (i.e., quanti- customers and ask different recall or direct questions
fied) (see example in Figure 5-8). There should be about their satisfaction with the company's services.
at least one goal for each sentence in the mission Recall-type questions are of the form: Which vendor
statement. Goals relate to stakeholders who are peo- that you work with has the best customer service?
ple affected by the outcome. Some stakeholders Direct questioris are of the form: Rate the customer
service of company x.
The next step is to link each eSF, critical infor-
mation measure, and goal to functions, processes,
Increase the number of new customers by 5% each technology and data in the organization. If this step
year for five years. calmot be completed yet, defer completion of this
Increase sales to existing customers by 8% per year
task until information gathering is complete. If new
for five years. entities or processes are defined through eSF analy-
sis, add them to the list for reengineering analysis.
Increase number of rentals per store visit by providing
an expert system to assist in selecting movies for
rental.
What are the major steps to accomplishing each white-collar, blue-collar, or clerical staff. Treat the
process? sessions as fact-finding, not fault-finding. Address
Which processes/procedures are required to all the topic areas for which information is required.
accomplish the mission, goals, and If you think you are getting incomplete or false
objectives? information, cross-check, or triangulate, the infor-
What data are used as input? Where does it mation by asking the same questions of multiple
come from? Who enters or creates data? uses sources. For instance, Manager A says his major
or retrieves data? changes or updates data? problem is caused by erroneous data received from
deletes data? Manager B's area, and Manager B did not identify
How is the input transformed by the process to the problem in your first discussion. Return to Man-
produce the results? That is, what do you ager Band reinterview him or her, specifically dis-
do when you do your job? cussing data quality as a problem identified by the
What data are passed between processes? What other area.
is the current storage media for the data (e.g., To validate the complete findings, make a group
computer, fax, paper, verbal, memo, etc.)? presentation to all interviewees for final confirma-
Are the different types of data that you need for tion that the information is accurate and complete.
your job used sequentially or in parallel?
Could you describe the procedure?
Where are time lags in your job during which
Summary of the Architectures
you are waiting for someone else to give you In this section, we expand Zachman's4 information
work or information? How do you deal with systems architecture (ISA) framework to describe
these lags? how to express the reengineering information in
Where are quality problems? How do you deal terms of architectures. The four architectures of
with errors? What is the source of each type interest in reengineering are data, process, network,
of problem? Where (in which process or and technology. First, we define the framework
outside organization) is each problem and information presented at each level. Then, re-
detected? Where are quality problems within engineering information is translated into the four
the procedures you use to do your job? How architectures.
do you try to guard against these problems?
What would you do differently if you could Conceptual Levels of the Architecture
design your own job? How might computer
The information systems architecture (lSA) de-
technologies help you? Suppose you have all
scribes distinct architectures relating business con-
the new computer and other technologies
text to application context. The five levels are
available for your job's use. What technology
described in general terms below and are summa-
would you use and how?
rized in Figure 5-9. Only the first two levels, scoping
and enterprise analysis, are used in reengineering.
Information might come from forms, screens, re-
Information systems application development
ports, phone messages, fax messages, automated
and organizational redesign are complex engineering
applications, policy and procedure books, and so
activities that are similar to constructing a building
on. The people actually doing the work provide this
or an airplane. The ISA describes the intellectual
information.
levels of detail needed for complex engineering
Most information is obtained through an inter-
view format. Interviews should be individual or in
4 John Zachman [1987]. Zachman's architecture discusses data,
small groups (groups should have members who
process, and network. ISA does not yet include a technology
share common goals to minimize political conflicts). architecture. This idea is from reengineering consulting which
All middle and senior managers for the Qrgani~ation requires a view of the technology as a basis for technology
should be interviewed in addition to representative redesign.
126 CHAPTER 5 Organizational Reengineering and Enterprise Planning
Scope
Sponsor I
I
I
I
I
I
I
Function = Group : Entity = Class of Node = Bus. Technology = Platform
of Activities : Business Thing Location + Special Equipment
I
I
I I I
-------------r----------------r----------------I----------------,-----------------
I I I
I I I
: Process : Entity Relationship I Logistics Technology
: Hierarchy : Diagram Network Network
I I
I I
I
I
I
I
I
Enterprise I
I
User I
network domain describes the organization from a technology, process, and data scopes to initiate the
geographic perspective. The technology domain reengineering effort. Example 5-1 shows a mission
describes the organization of work from a technol- statement for ABC Video and how it might be trans-
ogy platform perspective. lated to identify the scope of the four domains. At
the scope level, we should know the major entities of
interest to the organization and the business func-
Translating Information tions and their activities.
The network and technology domains mayor
into Architecture may not be mentioned in the mission statement. The
There are two levels of architecture we describe in sponsor or user participants define these when they
this section for reengineering: the scope and the are not in the mission statement. The network scope
enterprise model. defines the location of work for each activity. The
technology scope defines technology platform by
location. Because ABC has only one location and
Scope
no technology, it is a simple example. Another ex-
In reengineering, we assume that the mission state- ample here is for a plastics subsidiary of a large
ment fully expresses the scope of the organization. international company. Figure 5-11 shows existing
The mission statement is translated into network hardware platforms listed by location. In Figure
Reengineering Methodology 129
Location 1 location 1
Mid-Size Computer Finance-3 products at this location
LAN 1-25 PCs Accounting-All products
LAN 2-15 PCs Customer Service-All products
LAN 3-42 PCs Product Management-3 products
Location 2 Personnel/Payroll
Location 4 R&D
Location 5 Location 5
Mainframe Corporate Headquarters
FIGURE 5-11 Plastics Company Hardware FIGURE 5-12 Plastics Company Activity
Platform Scope by Location
5-12, the activities from the process hierarchy are match a current function or strategy, management
reused and identified by location. determines if the goal will, in fact, be met. The goals
At this point in reengineering, if the mission are translated into strategies which, in tum, are trans-
statement were suspect in its completeness, a stake- lated into work. The intention of stakeholder analy-
holder analysis might be developed to determine if sis is that rational, reasonable goals should have both
all constituents of the organization are represented. strategic and organizational functions that relate to
If they are not, the mission statement would be the attainment of goals. Even if goals are omitted
redrafted to include missing constituencies. While from the final strategy, at least all stakeholders and
this redrafting takes place, the reengineering study their desires are identified and considered.
ceases operation. A stakeholder is any person who
interfaces with, works for, or otherwise is impacted
Enterprise Models
by an organization. Stakeholders include the owner,
managers, employees, suppliers, customers, credi- At the enterprise level, the USer managers work
tors, government, community, and competitors. with information systems (IS) project repre-
Ideally, representative stakeholders from each group sentatives to define busiriess areas in logical terms.
should review the strategy and offer suggestions for The principle business modeling activities include
improvement. entity-relationship diagrams (ERD) for data,
When stakeholders are identified, the goals of functional decomposition diagrams for work pro-
each stakeholder are defined and related to the orga- cesses, a network diagram of process communi-
nization's functions and strategies. If a goal does not cation needs, and a technology network diagram
130 CHAPTER 5 Organizational Reengineering and Enterprise Planning
Monitor
Place Order
Order
Call Vendor to
Verify Availability Call Vendor
and Price and Inquire
or Reconcile
showing technology deployment. The ERD docu- PROCESS ARCHITECTURE. Process architec-
ments major data types and their interrelationships. ture development is concurrent with data gathering.
The functional decomposition identifies business The time recommended in Table 5-1 is for comple-
functions and their component activities and work tion and validation of the information. The decom-
processes. The network architecture shows the loca- position first identifies business functions, then the
tion of work and intraorganizational communication component activities and their processes. Figure
requirements. The technology architecture shows the 5-13 shows an example. A business function is a
hardware platforms by location and the telecommu- group of on-going activities that accomplish some
nication linkages between them. All four architec- complete job that is within the mission of the enter-
tures are developed piecemeal as information prise. Functions are general and fit most organiza-
becomes known. (ERD and functional decomposi- tions. For instance, accounting and personnel are
tions are discussed in detail in Chapter 9 and are only found in most organizations regardless of industry or
summarized here.) business type. At the next level of detail, an activity
Reengineering Methodology 131
/
I \ \ \
I \ \ \
I \
\ \ / / \
~ _
I
:L ____________ I
------'
Location 3 Location 4 Location 5
described in this section is of the current organiza- define any of these levels. For ABC Video, we
tion. During reengineering, if the changes recom- would choose the function level because there is
mended affect the locations of work or the activities only one work location. For the plastics company ex-
of work, then the network architecture is redrawn to ample (see Figure 5-15), the activity level is chosen
mirror the recommended organization. When the because functions located in more than one place
changes are presented to the sponsor for approval, may not include the same activities at all locations.
the old network and recommended network archi- Using the activity level gives a further level of detail,
tectures should be contrasted to highlight the atld accuracy, to the work. If the company were very
changes. decentralized and diverse, the analysis could be at
The process hierarchy defined functions, activi- the process level.
ties, and processes. The network architecture could For the architecture, each activity is placed in a
Reengineering Methodology 133
I I I I
:1~N41--i---~~~-I--r~-~:Y;
I I SIZE I SIZE I
I I I I
II II IPC'S I II ILAN 51 II
I I I I
I
I
I
I
ICAM I
CADI I
I
ICAM I
CADI I
I
Legend:
- - - = Permanent Link
- - - - = Dial-Up Link
circle within a square identifying a location (see Fig- racy of the information presented. No further analy-
ure 5-15). The circles are connected when the activ- sis, and no suggestions on the analysis, should be
ities require communication to complete their work. discussed at this meeting.
Processes =
Identify Items
& Vendors R R CRU
Call Vendor to
Verify Avail/Price RU RU
Send Invoices to
Accountant RD RD
entities they share in common. Because the average entity. This matrix gets its nickname from those
data/process matrix has about 400 entries, affinity functions; it is a CRUD Matrix.
analysis is best accomplished through an automated Affinity analysis relates processes by their re-
tool, such as ADWTM.5 sponsibility in creating shared entity information.
A matrix of processes from the process hier- The create responsibility for 80+% entities shared
archy diagram and data entities from the entity- between processes shows high affinity. An affinity
relationship diagram is created. The processes are matrix is iteratively refined by affinity groups or
written in rows down the left side and data entities processes with entity creation responsibility. In a
across the top (see Figure 5-17). Use the lowest typical 20 x 20 matrix with 400 cells, five to seven
level processes, such that all elemental processes affinity clusters will emerge. Affinity clusters may
for the organization and application area are pres- contain processes from several current organiza-
ent. When writing the process name, append a tions; organizational location of responsibility is not
prefix to identify the activity and function from the of interest in this exercise.
hierarchy diagram. Several clusters may overlap. This is normal and
In each cell, identify the functions each process is not a cause for worry. If only one cluster emerges,
allowed to perform on data. Possible functions are clustering continues with analysis of update respon-
create (C), retrieve (R), update (U), and delete (D). sibility, and, if necessary, delete and retrieval re-
One or more of the letters, as defined by the current sponsibility. When a reasonable number of clusters
organizational responsibilities, are entered for each emerges, the next step begins. A reasonable number
may be one to five clusters for a small organization,
5 ADW is a trademark of Knowledgeware, Inc., Atlanta, Ga. such as ABC, or six to nine for a large organization.
Reengineering Methodology 135
Figure 5-18 shows affinity clusters for ABC. A Next, for processes that are candidates for elimi-
first analysis of create responsibility would place nation, determine if they also create, update, or
Create & Mail Order in a group and Identify Items & delete data. What is the relationship of this process
Vendors in a group without classifying the other to 'close' processes? Is it in a sequence with other
entities. The final clusters shown in the figure processes? If so, can those processes take on its data
emerge after also analyzing update, delete, and responsibilities (thus enlarging the scope of the
retrieval responsibility. The lines highlight the clus- process)? If the eliminated process also stands alone,
ters and simplify diagram interpretation; they do not where else is the data used? If the answer is no-
necessarily include all actions in the clusters. where, mark the data for elimination. [Plan to return
Notice that the Call Vendor to Verify . .. process to the individual(s) who identified either the process
overlaps both clusters. It is placed in the second clus- or the data to confirm that you have not missed some
ter because it also updates Vendor information. information linking the process or data to the mis-
The next step is to analyze organizational ade- sion.] If data is created by the process marked for
quacy. Each process is individually analyzed first to elimination, but updated and deleted elsewhere, can
ensure process-goal correspondence. If the process is the other processes assimilate data creation? What
specifically tied to the organization goals, objectives, other information will those processes now need in
and mission, mark it for retention. If the process is order to be able to create the entity? Ask similar
not tied to the organization goals, objectives, and questions for updating and deleting the data.
mission, either link it to goals or objectives, or mark Next, analyze the current organization design.
it for elimination. First, is each data entity created only in one process?
Processes =
Create & Mail Order CRUD CRUD CRU R R
Verify Receipts
against Order RU RU RU R
Send Invoices to
Accountant RD RD
Identify Items
& Vendors R R CRU
Call Vendor to
Verity Avail/Price RU RU
If not, is there some business reason why two will provide the best organizational support. The rea-
processes are creating the same data? Or is there his- son for this is that subject areas, data entities, and
torically introduced redundancy? If the former, attributes are all fairly static. With well designed
continue the analysis. If the latter, combine the data, the processing can change without affecting
processes and eventually redo the affinity analysis. the database.
Second, are the processes that cluster together in the First, use entity clusters to define subject area
same department? If so, the organization need not databases. Check that each entity is also linked to at
change. If not, then realign the organization bound- least one goal or objective. If an entity is not linked,
aries to have all processes that create the same data either establish the correspondence, or mark it for
reporting to the same manager. Expand the scope of elimination. Conversely, analyze the processes
the pro-cesses to include as much of the create-up- which use the entity. If this is the only data used by
date-delete processing as possible. Needs for re- the process, but the process is tied to some goal,
trieval or access affect future plans rather than this determine the presence of data to measure progress
decsion process. toward the goal and, if needed, add a new entity to
When the process analysis is complete, the the list; otherwise, if the related process also stands
remaining processes are all critical to the organiza- alone, mark both the entity and the process for
tion mission. The next task is to tentatively redefine elimination.
jobs within the context of the remaining processes. The subject area databases defined by affinity
The goals of job redesign are to enlarge and enrich analysis should be mapped to current, automated
the jobs, and to eliminate interprocess dependencies applications. If the subject areas are completely
through job design. Interprocess dependency is elim- automated and the applications are integrated, no
inated or reduced by the caseworker approach to changes are needed. Rarely is this the case. Usually
job design and by expanding data access to all who several applications process pieces of subject area
use it. data and both manual and automated usage of data
To define a job, begin with the processes in a is required. The only integration is through the expe-
function. Add processes to the job until either the rience of users who know where to go for informa-
skill mix or activity served changes. Then, define tion they need.
another job until either the skill mix or activity Redefine applications to support each subject area
changes. Continue to define jobs until all processes of data. Define application changes for process
are assigned. There may be jobs that span activities changes that reduce problems. Define ad hoc query
but they should be exceptional. facilities for all jobs requiring retrieval access to
After jobs are completely defined, map them to data. Assume on-line processing for most applica-
functions by their affinity, that is, in terms of their tion work. Identify and recommend technologies that
data creation and usage. Do not pay attention to the streamline and speed information storage and deliv-
number or types of jobs reporting to functions at this ery. Based on the problems and solutions identified,
point. Again, concentrate on eliminating errors, determine the potential impact of applications for
paper, and dependencies. When all jobs are mapped meeting goals. Prioritize applications for develop-
to activities, the first phase of organization redesign ment to achieve the greatest impacts first.
is complete. The next phase takes place during the
implementation planning.
Network/Technology Design
The second analysis and redesign that results
from process/data analysis is for subject area data- Before either the network or the technology designs
bases and applications to support them. This is a are done, the receptiveness of the sponsor and man-
more subjective analysis than job redesign because agers to the changes in jobs and applications should
there is no theory of application development and be verified. If they support the work to date, the net-
how to size applications. The current thought is that work and technology analyses can continue. If they
applications that support well-defined subject areas do not support the job redesign or are reluctant about
Reengineering Methodology 137
application suggestions, those aspects of the reengi- ager, or some similar title). Explanations of the
neering must be defined acceptably before this applications mapping to technology platforms
analysis. should be in business terms but based on sound
There is no theory of network or technology understanding of the technology involved.
design at the enterprise level. Rather, we have rules An example of network/technology redesign for
of thumb that must be evaluated in each business the plastics company example is provided. The plas-
context. First, if the job redesign and process analy- tics company architectures in Figures 5-15 and 5-16
sis substantially change the activities being per- are used to create the revised network in Figure
formed in the organization, the enterprise network 5-19. One obvious problem is that organizations that
model should be recast in terms of the revisions. need to communicate for work are not electronically
Next, if locations are significantly different, the tech- connected. This suggests a network change to inter-
nology model should be redrawn to reflect revised connect all interdependent activities. This change
locations. means that the LANs that are only connected
When the two network diagrams are acceptable, through a star configuration in Location 1 might be
they are compared and analyzed to recommend new connected via a backbone to the midsize computer.
and changed technologies for supporting the new Backbones in each location with multiple LANs can
organization. be connected to provide intra-location communica-
Using the technologies identified as needed to tions, freeing the larger machines for inter-location
fully support jobs, develop an overview of the tech- connection and data processing. With this type of
nology for the organization. Classify types of appli- network design, everyone in the company can com-
cations on mainframes, local area networks (LANs), municate with everyone else.
and stand-alone personal computers. Classification After this cursory analysis, we next look at the
should identify applications by size, 'corporateness' technologies used for subject databases and appli-
of data, data sharing requirements, specialized tech- cations. First, the subject databases are added to the
nology required, and number of users. technology map. If pieces of databases are scattered,
Across the organization, rationalize the use of integrate them or determine distribution require-
technology resources, minimizing the overall ments. This type of recommendation should be
cost to the organization. If new technologies are coordinated with the applications recommendations
recommended, develop estimates of implementa- which are probably similar. Recommendations about
tion costs and benefits, including average cost centralization, decentralization, federation, or distri-
per expected user employee. If possible, identify bution of both data and processes should be consid-
incremental costs for expanding the user base ered. Changes in all infrastructure software such as
once the technology is installed. Include training telecommunications monitors, database manage-
costs in the estimates. Identify and recommend pos- ment software, terminal interfaces, and so forth
sible uses for technologies to reduce incremental should be considered for each activity at each loca-
costs of use. tion. Advantages and disadvantages of all technolo-
This activity is one in which the IS representa- gies, current and proposed, should be developed and
tives have the most value added during reengineer- an estimated cost-benefit analysis developed.
ing. Being technology literate, IS representatives can In the plastics company example, software and
work with their technology planners to determine applications are added to the network/technology
possible technologies for consideration that have not analysis shown in Figure 5-20. Order information is
been identified before. The IS people should take the only available at Location 1, even though all sales
lead in the rationalization of technologies. Deciding and product management organizations (Locations 1
the type of applications that belong on various plat- and 2) require access. These data differences in what
forms for the organization requires the know ledge currently exists to what is required show the type of
and guidance of the IS steering committee or the IS findings in network/technology analysis. To deter-
director (i.e., Chief Information Officer, MIS Man- mine the best course of action, more information
138 CHAPTER 5 Organizational Reengineering and Enterprise Planning
Current I
I
I
Applications I
I
I
Customer Financial R&D Scheduling I Accounting
I
Maintenance Management R&D Consolidation
Manufacturing:
Order (local only) Manufacturing Control Accounting
Processing Payroll (local only)
Personnel (local only) Financial
Management Management
Payroll (Loca- (local only)
tions 1, 2, 3) Payroll
Accounting (local only)
Financial
Management
(local only)
Required
Applications
Legend:
= Permanent Link
= Dial-Up Link
I
Operatingl
Database
Software
Legend:
= Permanent Link
= Dial-Up Link
might be requested of the locations. For instance, tics manufacturing, the answer is no. So, imaging or
do they need up-to-the-minute information? Why or other micro-forms management hardware and soft-
why not? The answer to this question determines the ware are not considered.
need to redevelop the applications as on-line rather Specific operating environments should be con-
than batch. If the locations need up-to-the-minute in- sidered next. If the networks are used to pass elec-
formation, on-line applications are required. Let's tronic mail and data files back and forth, the
say that the sales and product management informa- operating environments do not necessarily have to
tion users need orders only as of the previous close be the same. If, however, on-line query and file shar-
of business and that customer service agents in ing across environments is desired, the network
Location 1 would like up-to-the-minute information operating systems and database management soft-
because most changes are made the same day. This ware probably should be the same to simplify user
information about needs gives the reengineering access. This type of decision is aided by develop-
team the details they need to make intelligent rec- ment of a cost-benefit analysis for data access using
ommendations about application changes. In this consistent software. What is cost of change? What
case, either on-line order entry with retrieval, or the is the risk and cost of not changing? How much
entire application as on-line might be acceptable added time is required, per request, to formulate and
alternatives. obtain information with no change, and with
Next, consider new technologies to manage paper change? The answers to these questions are used to
and work flow. For instance, do using groups need determine the redesigned operating environment.
facsimiles of the paper forms? In some industries, In the plastics example, the current environment
such as insurance, the answer would be yes. In plas- down-loads information nightly from Location 1 to
140 CHAPTER 5 Organizational Reengineering and Enterprise Planning
Locations 2 and 4. The managers at those locations We define jobs as including related job skills for sim-
would like access to interim data if the applications ilar, related data. For each job, list the processes,
are moved to an on-line environment. In other data, and skills required of an incumbent. When the
words, they want the access if the data are more cur- subject area database changes, create a new job, but
rent. Customer service needs current information. keep as a goal that each job should do some 'whole
We decide to move to the on-line environment and thing,' have decision power, access to all needed
provide networkwide access to data and services on data, and be self-contained. Keep in mind that con-
the net. If the network operating systems (NOS) and straints on job identification are data self-sufficiency,
data bases are incompatible with this idea, they process self-sufficiency, and minimal coupling to
would need to be replaced and made compatible. other jobs and processes.
To summarize, the network and technology archi- For each job, identify the processes and entities.
tectures are superimposed and compared to decide Identify the technologies that would achieve the job
company changes. Then, technology requests and objectives with the utmost speed and accuracy. Use
application and software recommendations are suggestions (and return for more specific informa-
superimposed on the revised technology diagram. tion if necessary) from interviewees about technol-
Evaluation of requests, suggested changes from IS, ogy that might be used. At this point, do not worry
and recommendations from the organization design about capital expenditures for technology. Keep
team takes place by analyzing each change. Change technology information for the technology/network
evaluation includes cost-benefit analysis, develop- analysis.
ment of advantages and disadvantages of change, Question all current methods of work and all
and issue analysis with information supplied by process dependencies. For instance, do you need
potential users. paper copies of orders? By law, you need records of
orders, not paper orders. Devise schemes that elim-
inate paper, eliminate creation of paper, and elimi-
Implementation Planning nate any handling of paper. Replace paper with
technology whenever the information must be re-
Once the analysis and recommendations are com-
tained for legal or governmental compliance.
plete and tentatively approved, a plan to prioritize
Concentrate on implementing change to eliminate
and sequence the changes is developed. A reengi-
all identified problems. Relate each process and
neering study is of limited use if there is no road map
entity to one or more problems identified; determine
for how to attain the recommendations based on
how to improve quality of process and eliminate the
where the organization is today. Implementation
errors. Finally, concentrate on eliminating depen-
planning designs the map. The steps of this phase
dencies between functions and between processes.
are:
Interfunctional dependency is minimized by elimi-
1. Develop job descriptions. nating physical interactions or replacing them with
2. Define the organization. technology based interactions. For instance, elimi-
3. Plan information technology. nate shipping papers by providing the shipping
4. Plan training. department with access to the order database.
5. Plan implementation. For each job within each process, write job de-
scriptions to align job goals with the corporate goals
and objectives. The outcome of this exercise is
Define Job Descriptions
to give every individual the means-management
This is a first-cut at describing the new positions. structure, data, and technology-of meeting those
The jobs still require human resources evaluation goals. Give every individual, at every level, specific
and refinement during the next stage: implementa- measurable responsibilities. Recommend changes
tion. To develop jobs, we reanalyze the tentative job to the compensation plans to relate compensation to
descriptions, attending to data needs for each job. meeting/exceeding of objectives and goals.
Reengineering Methodology 141
For each newly clustered, enlarged job, analyze dent in that they all use purchase order data. Yet all
its relationships with other jobs to minimize inter- these job types have different job skills; that is, they
job linkages. Reanalyze each job to ensure data and each make different decisions and perform different
process self-sufficiency. Finally, define defect-free actions based on their access to the purchase order
work procedures. If errors must be dealt with, information. A reciprocally interdependent depart-
describe where they might occur and their proper ment is a hospital intensive care ward in which many
handling. specialists with different skills and knowledge all
work toward the same goal of patient recovery.
To group jobs, three methods of organization
Define the Organization
design deal with the three types of interdependence.
A first-cut organization structure will have three lay- If the jobs relate to each other sequentially, cluster
ers: CEO, functional managers, and everyone else. jobs with similar skills together. Affinity groupings
The implication is that self-directed work teams of processes and entities are used to decide skill
with either a limited hierarchy or a matrix manage- requirements. Clusters may be sequentially depen-
ment organization will result. Other organizational dent with jobs within each cluster providing different
forms can result but are not specifically defined in skills. Plan to provide shared database access to link
any of the reengineering methodologies. The steps to clusters; this minimizes paper movement and en-
developing a new organization design are: map jobs sures data access.
to functions, analyze relationships between jobs For example, look at the bank loan department
placing jobs in clusters or work groups, based on again. Bank loan department processes are sequen-
data self-sufficiency, process self-sufficiency and tially related after the loan is made. Once the loan
minimal coupling of clusters, and determine the commences, records are established and payments
location of work (in large organizations some jobs are received, posted, and analyzed. In an assembly
are centralized, some decentralized, and some cen- line approach, these processes are different jobs. In a
tralized with replication in the remote locations). If caseworker approach, all of these processes are
the first-cut does not result in a completely irrational within one job. Caseworkers could conceivably
organization design, it might be accepted as it is for monitor loans for any customer, but usually have a
trial. If there are too many different clusters (use case 'load' that is defined by alphabetic groupings of
5-7 as the rule) or too many different jobs in a clus- last initial of loan-maker names or some similar
ter (use 5-15 as the rule), additional reevaluation scheme.
might be required. If the processes have pooled interdependence,
Grouping of jobs is based on their interdepen- then job clusters contain one job type. For pooled
dence. There are three types of interdependence in interdependence, use subject area data as the decid-
organizations: pooled, sequential, and reciprocal. ing factor on when to create a new job. Each job,
Pooled interdependence is a relatively indepen- cluster, or group should have its own data self-
dent, low level of interaction between depart- sufficiency.
ments or jobs. Sequential interdependence defines If the jobs are reciprocally interdependent and
a serial relationship between departments or jobs. pass work back and forth, or need discussion on
Reciprocal interdependence defines highly interre- details regularly during the performance of work,
lated activities that are worked on jointly by multiple design work groups in the same way you designed
units requiring feedback and constant adjustment. jobs. That is, design work groups to include all skills
For instance, a bank loan department might be needed to perform one activity or function. Find all
viewed as relatively independent (i.e., pooled) from of the jobs that reciprocally share information; then,
other parts of a bank in that they need customer define the set of different jobs that would comprise
information received from the customer for their a work group. Try to keep groups small with under
decision with no other units involved. Purchasing, 12 different jobs represented. For instance, engi-
receiving, and payables are sequentially interdepen- neers, raw materials purchasing, manufacturing, and
142 CHAPTER 5 Organizational Reengineering and Enterprise Planning
quality control may all need access to the same Using the original process/entity matrix, identify
design drawings, specifications, and components the extent and type of automation for each process/
lists. They may be able to identify alternatives, make data cell. Types of automation for processes include
decisions, and improve quality simply by sharing full or partial, and batch, on-line, or real-time. These
responsibility for finished products. These job types matrices may not be 100% complete, but are used
would be clustered in work groups (i.e., quality to guide the implementation planning process by
circles). providing a summary of planned changes.
Plan Training
Plan Information Technology
Develop a training plan to upgrade skill levels to
The next step is to redefine the IS environment. The meet new performance requirements, recommending
rationale for deciding priorities is to correct the ma- how current jobs can be mapped onto the new jobs.
jor problems first, and/or meet the goals/objectives This should be a skeleton plan defining sequencing
with the largest impact on net income. The steps to of training and approaches-outside company,
develop an IS redevelopment plan are: inside company, phased by department, phased over
time, and so on. Actual training details cannot be
1. Compile all subject area database and appli- complete until human resources' redefinition and
cation changes, redevelopment, enhancement formalization of job descriptions and levels, and
requirements. estimates of number of people to be trained for each
2. Compile all technology and network infra- job are known. The plan should be sufficiently
structure requirements. detailed to allow a pilot test of the training and new
3. Map technology and network needs to data- work approach before its complete deployment.
base and application needs.
4. Define software reengineering projects. Plan Implementation
5. Define new application development
projects. Develop an implementation plan that reflects some
6. Determine priorities for all projects. phased approach to changing the organization. The
7. Develop a plan for two years of development number of people in anyone job type might be dif-
and reengineering work. Develop a tentative ficult to determine if the jobs are very different from
3-5 year plan for the remaining projects. the present. Moving from the assembly line to the
caseworker or group work approaches changes the
To develop the technology plan, create three entire equation; more, rather than less, people might
matrices: technology/process, process/entity, and an actually be needed. Human resources might be able
entity/technology matrix. The technologies are all to assist in this type of estimating. If estimates of
those identified by interviewees and team members numbers of people in caseworker jobs are too vague,
as potentially useful in the organization. Complete a pilot study can be conducted to facilitate estimating
each matrix. In each cell of the process/technology of total personnel needs.
matrix, enter whether the technology speeds deliv- When the mapping is complete, summarize the
ery, improves accuracy, improves service, or lowers recommended changes and determine how they can
cost. Enter all improvements that apply. This matrix be implemented. The possible approaches are pilot
is used to determine priorities for change. organization, phased implementation (by function,
In the entity/technology matrix identify which location, business priority, or application), or total
data entities are already fully or partially automated cut-over. Develop timing of changes. If the changes
and the type of automation. Types of automation are expected to take more than six months, deter-
include file, application database, or subject area mine how the organization, processes, data, or tech-
database. nology can be streamlined, changed, added to, or
Summary 143
eliminated now to provide immediate improvement duplication of activities may be found. When this
and correction of some problem(s). occurs, an effective technique for showing duplica-
tion, for example, is to draw shadow boxes, behind
the process (or activity or function) duplicated.
ENTERPRISE _ _ _ _ __ Then, on each box, identify the organization having
the responsibility, one box for each organization.
ANALYSIS _ _ _ _ _ __ This effectively communicates organizational over-
WITHOUT _ _ _ _ _ __ lap without a need for additional comment, and is
less inflammatory than verbal or text descriptions
ORGANIZATION _ _ _ __ because it is presenting organizational facts.
DESIGN _ _ _ _ _ _ __
Even without the extensive organization and tech- AUTOMATED _ _ _ _ __
nology redesign of reengineering, an enterprise
analysis helps managers establish applications prior- SUPPORT TOOLS FOR _ __
ities and develop a plan for introducing new applica- ORGANIZATIONAL _ _ __
tions and technologies into their organizations.
The same analyses for entities and processes are REENGINEERING _ _ _ __
performed. Current automation of the affinity clus- AND ENTERPRISE _ _ _ __
ters are summarized on the diagram. Recommended
changes are mapped to organization goals and strate- ANALYSIS _ _ _ _ _ __
gies to decide priorities for change. The changes
The tools needed to support organization reengi-
from enterprise analysis are incremental and relate to
neering are similar to those for project plan-
applications and subject area databases. Sweeping
ning, but include process hierarchy diagrams,
technology and network reassessment are miss-
entity-relationship diagrams, network architectures,
ing from this activity. Likewise, organization prob-
and technology architectures. Many tools support
lems and finding obsolete functions are not goals of
one or more of these requirements. Few tools on the
this analysis.
market currently support all of these requirements.
When organization problems are identified, they
The automated support tools are summarized in
can be referred to the sponsor for consideration. One
Table 5-2.
example of organization problems is identified from
the entity/process matrix after affinity analysis is
performed. Each process should have a prefix identi- SUMMARY _ _ _ _ _ _ _ __
fying its original function and activity relationships.
If the function/activity prefix for each creating pro- Reengineering of an organization reevaluates
cess for each entity is not the same, an anomaly is data, processes, technologies, and communications
found in that multiple managers have responsibility needs to ensure that an enterprise meets its goals
for creating the same data. The idea is that processes as stated in its mission statement. The activities
which do share responsibility for creating some of reengineering include the data collection, analy-
entity should report to the same manager. The same sis, and development of recommendations to meet
manager can minimize conflicts and maximize organizational goals through radical redesign
coordination and control over data creation. of work.
A second type of organization problem is found Reengineering is intended to alter the shape and
in the process hierarchy diagram. Because the dia- operations of an organization. Frequently, organiza-
gram is built to describe its information without tions and managers do not want sweeping change.
regard to current organization, some overlap or When incremental change is desired, enterprise level
144 CHAPTER 5 Organizational Reengineering and Enterprise Planning
analysis uses a subset of the analyses of reengineer- Dunckel, Jacqueline, Good Ethics, Good Business: Your
ing to develop applications and subject area database Plan for Success. North Vancouver, British Columbia:
development recommendations. Self-Counsel Press, 1989.
French, W. L., and C. H. Bell, Jr., Organization Develop-
ment. Englewood Cliffs, N.J.: Prentice-Hall, Inc., 1984.
REFERENCES ____________ Galbraith, Jay R., and Daniel A. Nathanson, Strategy
Implementation: The Role of Structure and Process.
Davenport, Thomas H., Process Innovation: Reengineer- St. Paul, MN: West Publishing Co., 1978.
ing Work through Information Technology. Boston, Galbraith, J. R., Organization Design. Reading, MA:
MA: Harvard Business School Press, 1993. Addison-Wesley Publishing Co., 1977.
References 145
Greiner, L. E., and R O. Metzger, Consulting to Man- Hammer, M., "Reengineering work: Don't automate,
agement. Englewood Cliffs, NJ: Prentice-Hall, Inc., obliterate," Harvard Business Review, July-August,
1983. 1990, pp. 104-112.
Hage, J., and M. Aiken, Social Change in Complex Hammer, M., "From cow paths to data paths," Computer-
Organizations. New York: Random House, 1970. world, December 25, 1989-January 1, 1990, pp. 16-17.
Hackman, J. R, ed., Groups That Work (and Those That IBM Corporation, Business Systems Planning Informa-
Don't): Creating Conditions/or Effective Teamwork. tion Systems Planning Guide, IBM Document # GE 20-
San Francisco, CA: Jossey-Bass, 1990. 0527-1, Armonck, NY, 1978, pp. 1-92.
Hackman, J. R, and G. R Oldham, Work Redesign. King, William R, "Strategy set transformation," MIS
Reading, MA: Addison-Wesley, 1980. Quarterly, March, 1978.
146 CHAPTER 5 Organizational Reengineering and Enterprise Planning
10. List three prerequisites of reengineering. Why dramatic, what is a good approach to imple-
are they necessary conditions for a successful menting change in the organization?
project? 28. How does enterprise analysis differ from orga-
11. What are four assumptions of reengineering? nizational reengineering? Are these differences
12. Why are different scheduling scenarios neces- significant? Why not do enterprise analysis
sary for the organization of reengineering only?
projects? 29. Which automated support tools provide all de-
13. What is a level-of-effort approach to work? sired functionality for reengineering support?
Why is it used with reengineering? 30. What are the functions desired of an automated
14. Why is there overlap between reengineering support tool for reengineering?
tasks? Why is overlap necessary? 31. What are the key criteria for proper scoping of
15. What is the role of the project sponsor? a reengineering project? Explain.
16. List the types and roles of people who should
be assigned to a reengineering project.
17. Why is data self-sufficiency the major criterion
* EXTRA-CREDIT QUESTIONS
1. You have been named to lead an organization
for scoping a reengineering project?
reengineering effort for a small, one-location
18. Describe a good mission statement. What
company. The company has functions for ac-
makes the difference between a good mission
counting, purchasing, inventory management,
statement and a bad one?
shipping, and sales. The business of the com-
19. How are critical success factors used in
pany is retail sales of furniture. The current
reengineering?
computer system supports the billing, shipping,
20. List five information sources and the type of
and invoicing process. No one but employees in
data that the team gets from each one.
the accounting department use or access the
21. Discuss the conceptual levels of Zachman's IS
computer at present. Develop a plan and sample
architecture. Which two relate to reengineer-
questions you might ask the employees and the
ing? Why are the others not used here?
owner for an organization reengineering project.
22. What is the purpose of mapping the two levels
2. What are factors that can cause a reengineering
of architecture into different domains? Why
project to complete faster or slower? Explain.
the domains chosen?
3. Imagine that you work in a company that has all
23. Who is a stakeholder? Why is a stakeholder
types of computer hardware and networks:
important?
mainframes, mid-size, PCs, wide-area main-
24. Describe a CRUD matrix and its use.
frame networks, and local area networks. What
25. Why is affinity analysis important? What are
are the issues in defining what data and applica-
the reengineering results that are basetl on
tions should be on each type of hardware?
affinity analysis?
Develop and discuss possible guidelines for data
26. List three rules of thumb for deyeloping the
and application location selection.
network and technology recomII1endations.
27. Why is implementation planriIng important
to a reengineering effort? When changes are
CHAPT ER6
APPLICATION - - - - - - - - - - - - - - - - - - - - - -. .________ .r--~
FEASIBILITY
ANALYSIS ----------------------------------~
AND PLANNING _ _ _ _---------,_____------.
148
Definition of Feasibility Terms 149
and the resulting cost savings are tangible benefits. specific alternative. Risks are events that would pre-
Intangible benefits are not directly measurable. For vent the completion of the alternative in the manner
instance, improved customer service through inte- or time desired.
grated database access has tangible and intangible Risk assessment determines possible sources of
benefits: events that might jeopardize completion of the
application. In general, the goal is to develop the
Tangible Benefits project on time, within budget, and without errors.
Decrease operating cost by 10% in first year Risk assessment and contingency planning help you
Increase market share by 5 % per year for three meet this goal. Contingency planning is the identi-
years fication of tasks designed to prevent risky events and
tasks to deal with the events if they should occur.
Intangible Benefits The goal is to minimize the possibility of the event
occurring, but to also have a plan just in case the
Improve company image
worst happens. Having a contingency plan prevents
Increase customer satisfaction
having to force decisions under pressure.
Improve employee job satisfaction
When the alternatives have been defined, they are
Provide faster and more accurate information to
evaluated. The number of requirements met by the
customer services representatives
approach is assessed, and the benefits and risks of
Another tangible benefit might be faster response each are weighed to identify the alternative with the
time for inquiry requests from five minutes to 15 sec- least risk and most benefit. If an alternative exists
onds. An intangible benefit from the same action that meets all required and optional requirements,
might be improved customer satisfaction. More meets all benefits, and has the least risk, it would be
satisfied customers are less likely to go elsewhere the recommended option. Most often, there is a mix
for their products, but proving that customer sat- of requirements met and risk incurred, that prevent
isfaction is improved is difficult to quantify, and selection of an alternative based on technical merits
is intangible. alone. Rather, several competing alternatives might
Also in information gathering, the business envi- be further evaluated to differentiate between them.
ronment, competitive environment, and current To decide between the alternatives, development
method of performing the work that would be plans, costs, and financial analysis are developed.
revised are described in sufficient detail to allow A project plan is a schedule of tasks and esti-
determination of appropriate changes. The functions mated completion times for application develop-
and procedures that are needed in the new applica- ment. A project plan includes tasks to be completed,
tion are identified, as are problems with current pro- tentative task assignments, staffing plans, and com-
cedures and new functions that are not part of current puter resources needed for the project. From the staff
procedures. and resource estimates, costs of development are
After the current problem domain is understood, determined. If there are multiple alternatives, the
alternative approaches to the problems are devel- costs of each are computed. The costs are used in the
oped. Alternative approaches to an application are financial analysis which occurs next.
different configurations of work, hardware, firm- Several different types of financial analysis might
ware, or software. Alternatives can begin with non- be performed; the two most common ones are cost/
automation alternatives, such as change in work benefit, and makelbuy. Cost/benefit analysis is the
flow, and progress to different platforms, software, computation of net present value for each alterna-
and designs. Usually between two and five alterna- tive. Net present value (NPV) equalizes the cost
tives are considered. Alternative definitions include estimates by accounting for the time value of money
the technology, benefits, and risks of each approach. for multiperiod investments. A make/buy analysis
A benefit, as discussed above, is some improvement chooses between alternatives for providing an item,
in the work product or process that results from a such as a software application. The make analysis
150 CHAPTER 6 Application Feasibility Analysis and Planning
estimates the cost of building a customized applica- needed. The information is incomplete with about
tion, while the buy analysis estimates the cost of pur- 95% confidence in the accuracy of the information.
chasing a package. Similarly, a budget and project plan produced at this
Other financial analyses, such as internal rate of high level of abstraction should have about an 80%
return and payback period, might also be computed. level of confidence attached to it. This means that the
Internal rate of return analysis determines the budget and time schedule are ±20% inaccurate, and
interest rate which equates cash investment outflow implies budget adjustment later in the project. In this
with positive cash flow. Payback period analysis section, we detail the actions of feasibility analysis
determines the number of years required to recover and project planning outlined in the previous section.
the cash outlays based on the projected monetary For each topic, guidelines for completing the work
benefits. are presented and followed by an example of the
After all the analyses are performed, a final rec- activity for ABC Video.
ommended alternative is defined. Technical and
monetary considerations are balanced and a recom-
mendation is based on some mix of them. For in- Gather Information
stance, a recommendation might be based on the
Guidelines for Gathering Information
fastest payback coupled with most requirements met.
Alternatively, the decision might be based on the The four major tasks during information gathering
lowest NPV and the extent to which leverage can be are:
maximized. When the alternatives are virtually equal
1. Define the business and work environments
in comparison, multiple approaches to the applica-
2. Describe current system of work
tion are presented and the user, IS managers, and
3. Identify key benefits and leverage points
project team decide together what approach is best.
4. Identify broad system requirements
This is often the case.
Finally, a feasibility document is created to sum- The activities are done in parallel rather than sequen-
marize the feasibility analysis and the recommenda- tially. As information is collected, leverage points
tion. The document is a summary of all of the and requirements emerge from discussions on which
preceding steps and analyses taken during the feasi- old procedures to keep and what new technology,
bility phase. Next, we discuss each feasibility activ- procedures, data, or interfaces are needed.
ity in detail. If an enterprise level plan exists, the data gather-
ing begins with the architectures to obtain an
overall view of the current data, processes, and tech-
FEASIBILITy _ _ _ _ __ nology of the target business area( s) (see Figure
ACTIVITIES _ _ _ _ _ __ 6-1). The process decomposition is used to identify
and match the affected jobs and tasks with those sug-
Feasibility analysis is an activity that ranges from gested by the requesting application sponsor. The
several days to several weeks in duration. In general, data architecture is used to identify what data are
a feasibility should be completed in fewer than involved and the extent to which the data are already
12 weeks; after that point, one of two problems automated. The technology architecture is checked
exists. Either the problem domain is too large and to identify hardware, software, and applications sup-
should be broken into smaller problem areas, or the porting the work functions today, and to identify
feasibility team is going into too much detail and potential platforms as operational sites for the new
should summarize at a higher level. The informa- application. For each job affected, the technology
tion at the end of feasibility should be accurate architecture matches jobs (from the process archi-
enough to allow managers to decide on the worth of tecture) with applications capabilities.
pursuing a project, but high level enough that an The architectures, if present, are the basis for
analysis phase to clarify details of requirements is obtaining information from the user departments
Feasibility Activities 151
Analysis
Identify and match Identify data and Identify potential Identify hardware,
Feasibility software, and
affected jobs extent of data operational platforms
Study Use applications
and tasks automation
involved. Recall that the methods of data gathering date and request the review within a set time. In this
(from Chapter 4) might include interviewing, docu- manner, you conclude the meeting with a commit-
ment review, observation, talking to other compa- ment from the interviewee to do the review by a cer-
nies, temporary work assignment, and questionnaire tain date.
surveys. During feasibility, interviews, document During the writing of interview materials, graph-
review, and other companies are the primary infor- ical techniques for both data and processes can be
mation sources. Although the other methods could used to synthesize the findings. The most common
be used, they take more time and elicit more detail graphical techniques are entity-relationship dia-
than required for feasibility analysis. grams (ERDs) for data, and process decomposition
Assume you are doing the information gathering and process data flow diagrams for processes
using interviews. You might work in two-person (PDFDs). Development of these diagrams is detailed
teams for interviews so that the project has a built- in Chapter 9. An older variant of PDFDs called data
in backup for every person, should someone get sick, flow diagrams (DFDs) are also used; they are de-
called on jury duty, or be reassigned. One person tailed in Chapter 7. In general, ERDs capture infor-
asks the questions while the other person acts as mation about the data entities that are within the
scribe taking notes. This method of interviewing scope of the study problem domain. An entity is any
results in fewer misconceptions and errors from for- person, place, thing, or event about which the orga-
getting than interviews by one person. At the end of nization needs to keep data. The relationships
every session, follow-up steps should be identified between entities define some business-related asso-
for both you and the interviewee. For instance, you ciation that is within the problem scope. The process
might document the interview and ask the inter- decomposition diagram depicts the organization
viewee to review and correct your documentation. tasks that are being studied. The problem area is
You commit to having the material back by a specific compared to the process hierarchy and ERD to
152 CHAPTER 6 Application Feasibility Analysis and Planning
ensure correct scoping. PDFDs summarize the pro- armies of clerks and dedication to accurate refiling.
cesses of the problem and relate them to each other, Simply applying imaging technology by itself buys
the outside world, and to data entities. marginal improvement to paper management. The
In addition to diagrams which summarize the pro- big payoff is in integrating imaging with software
cedures and data of the target problem domain, you to manage work.
also create text documents that describe the current Work flow management software is integrated
process, the aspects of the current process to be with imaging technology to schedule work for
retained, and the changes and motivation for clerks, monitor document locations, and monitor
changes. In general, text should be minimized work progress through any number of departments
because it is easily misinterpreted. Diagrams and (see Figure 6-2). All of these actions can be done
graphics are preferred to text. Lists of items are pre- without fear of losing the document because it
ferred to paragraph form text. Requirements for the is an electronic image. Printing of the image is pos-
new application should be as specific as possible. sible if a paper copy is needed by a clerk for some
For instance, a requirement might be stated 'reduce reason.
turnaround time from receipt of an order through Imaging and work flow management together can
invoicing from 14 days to 2 days.' During the sys- flatten hierarchies, reduce the number of clerks
tems analysis phase, the actual details of functions to involved in image production, and eliminate the
implement this requirement are developed. need for clerks to manage files. Staff reduction is a
As we said above, key business and application business leverage point and a benefit of the activity.
leverage points are defined during the data collection For individual jobs, frustration is reduced because
activity. Leverage points are context specific. What information can not be 'removed for use' from an
might be a leverage point in one company and image file. Clerks are more productive and their jobs
industry might be standard procedure in another can be upgraded because the emphasis now can be
company and industry. placed on understanding and interpreting the infor-
An example of leverage points is provided by mation rather than on simply collecting all the
examining imaging technology. Imaging technology information correctly. Thus, an application leverage
automates facsimiles of business forms. Image files point is present in enhancing jobs of the people in the
are databases of forms with indexes for retrieval and workflow.
linkage to data databases. Applications can be de- Leverage points identify benefits of the proposed
veloped to integrate data and image information for application. Other benefits might be present and
users at terminals. The technology provides both should be identified; they may not have a direct
business and application leverage by improving strategic impact. For instance, in keeping with the
work flow and allowing the management of paper idea that most proposed applications are to improve
flow through an organization. work, benefits about more, faster access, integrated,
The leverage provided by imaging is highest in or improved quality data might be defined. Similarly,
organizations that are information and paper inten- automation of more tasks, faster report generation,
sive, for instance, insurance and financial services. integration of processing, or improved timing of
These paper intensive industries are required, by law, response might all be benefits. Conversely, the new
to provide original document search capabilities. application might be expected to reduce staff, link-
Before imaging technology, these companies either ages between departments, work errors, and so on.
used microforms or paper, both of which have only These benefits are all tangible and measurable and
rudimentary indexing capabilities. Microforms should be identified.
require their own viewing equipment that is neither Intangible benefits are equally important, but are
intelligent, nor capable of integration to an applica- harder to quantify. Intangible benefits are indirect,
tion. Paper, if kept, is so voluminous that whole unmeasurable benefits with a high degree of uncer-
buildings are dedicated to document storage. Trying tainty. For instance, one benefit of personal work sta-
to retrieve specific documents and files requires tions with access to software has been a rethinking,
Feasibility Activities 153
DBMS Database
User
n
8) d
x
Image
Imaging Base
Software
Imaging
Hardware
by many people, of how they do their work. Tbey Now let us turn to ABC Video to discuss how to
now type their own documents directly and use sec- perform the data collection activities.
retarial support for changes and formatting. They
do their own analyses and perform many different
ABC Video Information Gathering
types of analysis that they could not do, and there-
fore never thought of doing, before they had desk- Of the methods of data gathering available, several
top computer access. This type of change is an can be eliminated immediately. First, questionnaires
indirect benefit that increases the effectiveness of a for a total of six employees would be impractical.
person's work, while the tangible benefits deal All employees are available for discussions during
mostly with efficiency improvements. Both types of nonpeak times. Also, studying documentation is
benefits are important in application qecisions. not possible because the manual methods are not
The SE works with the users to define the tangible documented. Observation and temporary work
and intangible benefits relating to a project. Benefits assignment can give some information about the cur-
identified are listed in the documentation of the pro- rent problems to be solved through automation, but
posed application, and a value is attached to each are of limited value in actually designing Ule new
one. Tangible benefits are quantifiable by determin- application.
ing the change expected to result from the new Talking to competitors is not feasible because
application. Intangible benefits usually are listed they do not want to help the competition; however,
with a possible range of benefit. In presenting this to define benefits that might accrue for the ABC
information to decision makers, you must be able to application, l<:nowledge of competitor clerical
justify why intangible benefits exist. Managers will assignments and computer systems is valuable.
ask and expect the reasoning behind any expected Observation of competitors is a good way to get
financial gains, whether tangible or intangible. some insight to the benefits Vic might get from
154 CHAPTER 6 Application Feasibility Analysis and Planning
automation. The remaining data collection method, simultaneously, provide for growth in video inven-
interviews, should be used extensively for Vic and tory, and expansion of the business to other related
the clerks to determine the work flow, problems, sale/rental items. At a summary level, the data enti-
and possibilities for the ABC application. To supple- ties in ABC rental processing are customers, video
ment the interviews, we should observe competitors inventory, and rentals. Figure 6-3 is an ERD show-
by using their services for a period of time to get ing the relationships between these entities. Also at a
information about their work assignments and summary level, the major processes of rental pro-
applications. cessing are customer maintenance, video mainte-
For ABC, we define the current environment, nance, and rent/return processing. These processes
proposed environment, leverage points, and benefits. are summarized in Figures 6-4 and 6-5.
Through Vic's interviews we find that ABC operates Figure 6-4 is a hierarchic process decomposition
in a highly competitive environment. Large chain diagram for the business, showing many more func-
video rental businesses are crowding small one-shop tions than just the rental processing. The rental pro-
businesses, like ABC, out of the market. ABC must cessing area has bold lines to highlight it from the
remain competitive to stay in business and to grow rest of the diagram. This diagram is developed at the
as Vic expects. Vic sees the future to be in services enterprise level to ensure that the correct depart-
offered to customers. In terms of video rental pro- ments and processes are accounted for in an appli-
cessing, service translates into minimal bureaucracy cation development effort.
with as many variations on service to customers Figure 6-5 is a high level process data flow dia-
as possible. gram for the rental activities only. The diagram
Currently, ABC uses a manual method of video shows the inputs, processes, and outputs of the rental
rentals. The customer chooses a video and presents activity. Inputs are rent/return requests, payments,
the video cover (or title) to a clerk. The clerk locates process requests, new customer information, and
the video, locates a rental card for the customer, and new video information. Processes are maintenance,
writes the current rental on the card. Charges for late reporting, and rental/return. At the feasibility level,
fees are computed from the card if any are owed, and this is an acceptable level of detail for data and pro-
the customer pays for the current and any late cedure knowledge and documentation.
rentals. The customer signs the rental card which is To determine leverage points for ABC's applica-
filed by the clerk. During the peak business period, tion, we examine what the application does for ABC
from 6 P.M. to 10 P.M., the rental cards are placed in a in the context of its industry and competitive envi-
pile for later refiling. Frequently, cards are misplaced ronment. To do this we ask and answer several ques-
and the customer is then not charged late fees. If a tions. First, can this application give ABC a
tape is never returned and the accompanying card is competitive position in the industry? The answer to
lost, Vic has no way to trace who has what tape(s). this question must be no. ABC is a one-shop orga-
This method is error prone and subject to whims of nization that might grow to several branches but is
clerks who have been seen changing return dates for not expected to grow to national prominence. There-
friends who return tapes late. Also, the time involved fore, the application might give ABC a presence in
in locating a given customer's rental card ranges the local market, but the application's strategic
from 30 seconds to several minutes during nonrush impact on the industry is zero.
time, and can be as high as 10 minutes during the Second, does the application give ABC competi-
peak rush time because clerks are waiting to access tive advantage in the local industry? All other things
the card file. being equal, the application could give some local
Vic's requirement for the new application is to advantage over other video stores in Dunwoody,
provide a fast, simple method of providing rental Georgia, the town where the company is located.
processing and accounting without introducing any The impact on the local industry, in terms of subur-
new bureaucracy into the process. The system must ban Atlanta, is close to zero. The other 'things' that
be on-line, accommodate at least five clerks working must be equal or better for ABC to obtain a local
Feasibility Activities 155
Customer
-I-
Requests
(D
/
Open Rental
'" "- ,....
v '-'
Refers to
I
I
Video
Copy
v
(b
Is Described by
-"-
Video
advantage include the number and variety of videos ative staffing levels. There are usually four clerks
available, desirability of the location, and attitude working in the chain store. Of the four clerks, two
of clerks to customers. For this discussion, we are at cash registers at which lines average three
assume that location, attitude and variety of videos waiting patrons during peak periods. One of the
are at least equal. other clerks roams the store assisting customers
Observation of the applications of the rival video while the other clerk processes ticket orders. There
stores is required to assess the potential impact of the are frequently lines at the ticket counter, especially
subject application. There is a national chain store when a famous rock group's tickets go on sale.
down the street, approximately .8 miles away. That Sometimes there are several hundred people on line.
store is evaluated since it is the closest competition. On average, there are 12 customers in the store at
The chain store sells and rents Nintendo TM, Sega all times, with a peak average of 20. The peak times
Genesis ™ , and computer software as well as videos; are the same as ABC's-6 P.M. to 11 P.M. Of the
plus, the chain store sells tickets to local rock con- 20 customers during peak time, about 10 people
certs and events, and sells records, CDs, and audio actually rent or purchase something. The average
tapes. Thus, the chain store is a recreational elec- age of a rental customer is about 19.
tronics store while ABC is simply a video rental Contrast this situation with ABC. Five clerks
store. work at ABC during the peak hours of 6 P.M. to
The fact that ABC is specialized and the chain 11 P.M. The remainder of the time, three clerks are on
store is general works in ABC's favor because of rel- hand. The clerks, in general, do not roam the store
156 CHAPTER 6 Application Feasibility Analysis and Planning
assisting customers; they are all behind the counter but not significantly, older than the chain store's
doing payment processing for customer rentals. The customers.
lines, if any, form in the peak times and average two So far, the company contrast neither favors nor
people per clerk. If a customer has a question, she disfavors ABC over the chain store. Next, we com-
or he waits until a clerk is free, then gets assistance pare the company's procedures for rental processing.
and rental payment at the same time. On average, The chain store requires a subscription to their com-
there are five people in the store at all times, with an pany's services that includes the presentation of a
average of 25 during the peak times. Of the 25 peak valid driver's license and credit card to establish an
customers, 18 rent videos and seven leave empty- account. To use the account, each family member is
handed. assigned their own number and given his or her own
ABC's rental 'hit rate' of .72 (i.e., 18 of 25) is ID card. The ID card is presented at the time of
much higher than the industry average of .50. 1 Their rental and paymeht of all current and past charges is
single purpose may work against them for some cus- required for a rental to take place. The presence of a
tomers who want full service electronic entertain- family member ID allows parents who get stuck pay-
ment, and may work for them for other customers ing their children's fees to track the guilty party. If
who only rent videos. The average age of an ABC two family members make rentals in the same day,
rental customer is 22. Thus, the customer is slightly, the clerk mayor may not mention that a rental
already exists to the later person. There is no proce-
dure for clerks to help customers control the num-
1 The industry average is located by doing library research on ber of rentals in one day, nor is there a way for
the industry. previous rentals to be known.
Feasibility Activities 157
Video
<::D
a:m.
oCD :J
C
....
Customer
Video
Video
Open Rental
Customer
ABC's expected rental processing is detailed in and giving them the chance to stop a rental transac-
Chapter 2. Vic's vision of ABC's rental application tion on a previously viewed video. Thus, Vic's sce-
does slightly favor ABC over the chain store. ABC nario has less bureaucracy, more service, and more
will also assign family members their own IDs, but customer-oriented clerical procedures than the chain
an ID card is not required of a customer. Rather, Vic store. These three improvements are the leverage
envisions using the telephone number as the ID and points for ABC in its local market.
asking the person for their name at the time of rental. Next, we define other noncompetitive benefits of
A list will appear on the screen of all authorized the application. The application eliminates many
renters for a given phone number with a sequential of the errors that can happen in a manual system
number the clerk selects beside each name. The pro- of work. For instance, clerks can no longer decide
cedures to accompany rental processing assume that who pays late fees by changing return dates. Cus-
customers want to know if a previous rental that day tomer cards, which can be lost, are eliminated and
has occurred. Also, Vic envisions keeping track, replaced by automated file records which can only
electronically, of the previous rentals for a family be deleted by Vic. Both videos and customers must
158 CHAPTER 6 Application Feasibility Analysis and Planning
accurate data entry, Vic figures his current losses at Develop Alternative Solutions
2% of total revenues of $500,000, or $10,000. He
feels the $10,000 estimate is about 80% accurate. The activities in developing alternatives include
Stated another way, by eliminating errors in data definitions of technical alternatives, and benefits and
entry, Vic will gain $10,000 with 80% certainty. risks of each alternative.
Thus, the benefit to be gained from more accurate
data entry is $8,000-$10,000.
Define Technical Alternatives
Table 6-1 shows the benefits from the list on
p. 156 with dollar values associated with them. For There are no specific, theory-based guidelines for
the benefits resulting in $1,000 increases in revenue, developing technical alternatives. Rather, the tech-
Vic was unsure that there was much tangible out- nical alternatives within a specific business are
come, but estimated about $3, or one rental, per day. explored to determine what is possible and practi-
For the higher dollar estimates, he worked through cal. First, define the application concept (see Table
the estimates in the same way shown above for 6-2). How up-to-date does information maintained
increased accuracy. by the application need to be? If the answer is four
160 CHAPTER 6 Application Feasibility Analysis and Planning
TABLE 6-2 Steps in Developing the concept to help in the evaluation of complexity of
Technical Alternatives design.
After the concept is developed, hardware and
• Define the overall application concept software are evaluated. If there is hardware and soft-
• Evaluate usefulness of existing hardware/software ware already installed, investigate their use first. Can
the application be developed for operation on the
• If new equipment or software is needed:
existing equipment? Can the existing software
• Determine data sharing requirements accommodate the application? Can the application
• Determine the criticality of data to the company
coexist with other applications currently used? If
• If shared or critical data, select equipment (either LAN the answers to these questions are "yes," the plat-
or mainframe) and software that allow centralized form recommended is the existing equipment and
control over data. software. If a "no" answer is given, then investigate
• If noncritical and nonshared data, select the smallest new hardware or software as needed.
equipment that allows necessary level of control. In If no hardware or software are currently used, or
multi location settings, consider decentralizing or the current equipment cannot be used to do the
distributing the application by duplicating equipment, application, select the likely hardware platforms.
application, or data in several locations. First, determine whether the application users need
• Define special hardware requirements and ensure to share information or not and how up-to-date the
that the special hardware works with the selected information must be. For instance, can copies of the
hardware/software platform(s). application run in different locations with daily
update of files, or must the users share all informa-
tion throughout the day? Second, determine the
'corporateness' of the data. How critical to the
hours or more, a batch application is sufficient. If the organization is the application data? If the company
answer is between two and four hours, interactive depends on the data to stay in business, then a more
data entry with batch updates throughout the day centralized, controlled environment is required than
might be acceptable. If the answer is in the range if the data is not critical to the company.
from seconds old to four hours, an on-line applica- The need for centralized control over data that is
tion is also sufficient. If the answer is that the system critical to the organization is one factor to con-
user must react to all transactions as they occur, a sider in recommending a platform and environment
real-time application is needed. On-line is the most for an application. The extent to which the company
frequently selected option. relies on application operability, the importance of
Next, for individual processes, determine the con- data integrity, audit trails and security, and the ability
cept at the lower level of detail. For instance, for of the environment to accommodate these needs
reporting, should answers be developed as a report are all assessed. Although there are no clear dif-
request is entered or can they be run overnight? ferences in application management between a
Some reports might need to be on-line, others might LAN and a mainframe, software does make a dif-
be run in batch mode. The volume of print, estimated ference. The levels of security, number of simul-
time for processing, and urgency of data all are used taneous users, size of database, locking of records
to select the concept for individual processes. For for simultaneous update, and many other technical
instance, an ad hoc report that generates 10,000 lines considerations differ widely across networks, oper-
of print should not be sent to a display screen; rather, ating systems, databases, and languages. When dis-
it should be printed. Also, a long report might be cre- tribution is an alternative, the centralization issue
ated at the time of the request, but sent to a print becomes even more important to evaluate and
queue for convenience of printing. The decisions resolve. Full discussion of the decision criteria for
made during feasibility are not expected to be per- distributing data and applications are deferred until
manent at this point, rather, you are estimating the Chapter 10.
Feasibility Activities 161
To determine hardware alternatives identify the have the same configuration. Multiple locations with
smallest size computer possible that can accommo- heterogeneous environments are the norm in distrib-
date the task, providing for data sharing and central- uted applications.
ized control as needed. The cheapest and smallest Hardware alone rarely determines the recom-
platforms that meet the criteria are alternatives. For mended alternative. In addition to picking hardware
hardware we then ask if any other special purpose platforms that can accommodate the needs for multi-
hardware is needed for this application. If other spe- ple, simultaneous users, you also choose the soft-
cial purpose hardware is needed, enough research on ware most likely to be used in each environment.
the hardware should be done to determine what is Again, these selections might change as the design
required and whether or not it can be used with the progresses, but their purpose during feasibility is to
identified alternatives. allow assessment of skills, training needs, cost, and
From the hardware identification activity, the application design complexity.
most likely platforms should be narrowed to two or In choosing software, you identify a program-
three. The key factors in narrowing the selected plat- ming language, database environment, and any
forms are reliability and flexibility. Portability might special software needed. Each alternative is devel-
also be important, depending on the environment. oped to solve the entire problem, meeting all re-
Reliability is the extent to which the hardware, soft- quirements and as many optional requests as
ware, and application will be operational. Flexibility possible. Only the best alternative(s) for a given
is the extent to which the hardware, software, or environment is considered. Two sets of alternatives
application can be modified easily. Hardware flexi- illustrate this statement.
bility relates to the extent to which upgrades can be The first set of alternatives is for a mainframe
made, for example the number of additional boards, environment using different operating environments.
the maximum memory upgrade, the type bus, and The first alternative (see Figure 6-7a) identifies an
type disk channel, to name a few. Software flexibil- IBM mainframe, running the MVS operating sys-
ity relates to package design and how often the ven- tem, and using IBM's DB2 for database and IMS/
dor releases updates of new functions. Application DC for telecommunications control. The second
flexibility relates to methodology, implementation alternative (see Figure 6-7b) identifies an IBM
language, and skill of the developers. Reliability and mainframe, running the conversational VM/CMS
flexibility are important issues in, for example, operating system, and using a Focus database.
selecting a PC workstation, because of the diversity Telecommunications control is hidden from the
and quantity of alternatives available. If you evaluate
five different vendors of IBM PC-compatible equip-
ment, you will have different reliabilities and flexi-
bilities for each. But even more confusing is that five
Figure 6-7a. Alternative 1
different configurations of a PC from the same
Hardware: IBM Mainframe 309x
vendor might also have five different reliabilities
Operating System: MVS
and flexibilities. Database: DB2
Portability is the extent to which the software Telecomm Control: IMS/DC
can be moved to another hardware/operating system
environment without change. The fewer changes Figure 6-7b. Alternative 2
when moving the application, the mote portable it is. Hardware: IBM Mainframe 309x
Portability is an issue when the application is devel- Operating System: VM/CMS
oped in one environment (e.g., a LAN) and is ported Database: Focus
Telecomm Control: SNA through VM
or moved to another environment for operations
(e.g., a mainframe). Portability is also important
when an application is developed in one location and FIGURE 6-7 Two Alternatives Using
is implemented in multiple locations which may not Different Software
162 CHAPTER 6 Application Feasibility Analysis and Planning
tion development. The three most common of Mur- Table 6-3 is a list of possible sources of risk. For
phy's Laws are: each item on the list, you determine the likelihood of
it occurring for this project. For instance, if you are
1. If anything can go wrong, it will. using only existing equipment, you could skip the
2. Things go wrong at the worst possible time. risks dealing with hardware installation problems.
3. Everything takes longer than it should. As. sources of risk are identified, they should be
164 CHAPTER 6 Application Feasibility Analysis and Planning
placed in a separate table and rated for likelihood of customer with video rentals with customer
occurrence for each alternative. In addition, other rental history)
possible risks for the project might be added to the 8. Provide end-of-day reports of activity by
list. For instance, if revenue for current year drops transaction with summaries by transaction
25%, the company might not be able to afford type (i.e., rental, late fees, other fees)
the project. 9. Provide for future growth of 15% per year
per file
10. Provide for future growth in number of sys-
ABC Video Alternatives tem users to be one every 18 months for five
years. A total of nine concurrent users
First, technical alternatives for developing ABC's
should be supported.
rental application are developed. Next, benefits and
11. Provide SQL compatibility for future
risks relating to each alternative are estimated.
growth and compatibility between software
To develop technical alternatives, the application
applications
requirements should be listed as follows:
12. Provide mean time between failures
1. Provide add, change, delete, inquiry (MTBF) of 1 year for hardware selection
functions for customer, video, and rental and mean time to repair (MTTR) of 1 hour
information in hardware maintenance contracts
2. Automate processing of rental transactions, 13. Provide on-line processing for all functions
including from 8 A.M. to 11 P.M. daily
• Interactive processing and data display for
ABC has specific requirements that imply an on-line
all outstanding video rentals, including
application, significant ad hoc reporting, and inter-
fees owing
active processing with immediate file update
• The maintenance of customer history of
throughout the day. Batch processing should be fea-
rentals, rental history for each video tape,
sible as a background task to on-line processing
creation and change of rental transaction
since the on-line portion of the day is so extensive
records
and there might be a problem trying to staff the batch
• Monitoring of outstanding rentals by
hours. Beginning with a hardware platform, then
customer
continuing to software and applications, the pro-
• Computation of late fees owing from
posed alternatives are defined. Only alternatives that
prior transactions
can meet all requirements should be identified; how-
• The ability to create new customers as
ever, if that is not possible, any feasible alternatives
part of rental processing
are identified and evaluated later. In ABC's case,
• The ability to add new videos to the sys-
only alternatives that can meet all requirements are
tem as part of rental processing
identified.
• Query of any rental related infor-
In a small business, the two most likely hardware
mation
platforms are multiuser minicomputers or client-
3. Minimize data entry in rental processing by server local area networks. These are considered
using bar codes or similar technology here. The competing hardware platforms are an IBM
4. Provide interactive, on-line updating capa- AS/400 minicomputer versus a token ring local area
bilities for all files network (LAN). Each of these decisions requires a
5. Provide transaction logging for database minianalysis of the alternatives in their respective
integrity environments that are beyond the scope of this text.
6. Do daily backup of all files and application To specify the LAN, for instance, requires compari-
programs son of options and costs of probabilistic versus de-
7. Provide ad hoc reporting capability for all terministic networks, cabling requirements, network
files and legal combinations of files (e.g., operating systems (NOS), network interface card
Feasibility Activities 165
TABLE 6-4 Hardware Platform Estimates l puter hardware alternative. Both alternative defini-
tions exclude software for rental processing which is
Client/Server Alternative estimated separately because the option to purchase
software versus custom development of software
Item Cost should be evaluated.
The client/server alternative is recommended to
Workstation (6) $ 4,800 1 Vic and he approves although he is concerned about
Server $ 2,000 the cost. As a small business person, his company
Software $ 3,500 nets under $1,000,000 per year and, in ABC's case,
is closer to $500,000. A rule of thumb in automa-
Cable-Shielded Twisted Pair (STP) $ 1,900
tion expenditures is to spend under 10% of net in-
Network Interface Cards (7) $ 1,000 come. Vic's concern is that the total cost may exceed
Network Operating System $ 2,500 $50,000 and his financial risk becomes a problem.
(Ethernet), 6-10 stations The remaining estimates use only the client!
Total $15,700 server solution to develop software application alter-
natives. The choices are between purchasing a soft-
Minicomputer Alternative ware package and developing a customized package
for rental processing. Mary researches available soft-
Item Cost
ware packages and finds that the cheapest one is
VidRent 2 which costs $7,500 plus $1,500 mainte-
Workstation (6) $ 4,800
nance per year (see Table 6-5). VidRent will be com-
Minicomputer $15,000 pared to building a customized applications using
Software $ 5,000 either SQL Server3 or Focus. SQL Server is selected
Plus $2001 as representing software specifically designed to
month
Cable-STP $ 1,900
2 VidRent is a fictitious name.
Total $26,700
3 SQL Server™ is a trademark of Sybase and Microsoft
Plus $2001
Corporations.
month
1Keep in mind that these are estimates for the sake of discussion
and not real dollar estimates. TABLE 6-5 Alternative Software
Packages
Maximum
(NIC), compatible software, and so on. Both hard- Number of
ware platforms can be implemented successfully in Software Initial Cost Maintenance Users
ABC's environment, can support the volume of
transactions, and can support the expected company SQL $17,500 a $1,800/year Up to 20
and applications growth. Server™
Once the platforms are identified, the hardware
LAN $12,000 $1,200/year Up to eight
cost of implementing the application on the alterna-
FOCUS™
tive platforms is estimated (see Table 6-4). From with SQL
these estimates, the most likely (e.g., the cheapest)
VidRent $ 7,500 $1,500/year Any number
two to three alternatives are selected. Also, if there is
of users on
doubt about the economic feasibility of the applica- one LAN
tion, the client/user can determine whether to con-
tinue with the analysis or not. As Table 6-4 shows, aKeep in mind that these are estimates for the sake of discussion
the client/server LAN is cheaper than the minicom- and not real dollar estimates.
166 CHAPTER 6 Application Feasibility Analysis and Planning
take advantage of client/server environments. Focus Next, consider the organizational impacts of each
is selected as representing software with which package. Mary's team requires training for either
Mary's team has extensive experience. The costs of VidRent or SOL Server. Training for SOL Server,
each alternative are completely different and provide which is supplied by the vendor, would not be
for different numbers of users. These factors are kept charged to Vic since the knowledge is useful to
in mind, but the requirements must be analyzed to the team after the rental application is complete.
determine if one software should be favored func- VidRent training, also from the vendor, would be
tionally over the others. paid by Vic. Training costs must be added to its cost
The requirements are reevaluated and rated for (see Table 6-7).
each development alternative as shown in Table Next, consider vendor reputation and market sta-
6-6. First, consider the softwares' capabilities. bility. SyBase and Microsoft, the vendors of SOL
VidRent provides neither query capabilities nor his- Server, are both relatively young companies, with
torical customer or video processing. It also cannot Microsoft the current leader in software for the PC
create new customer or video records as part of market. Focus' company, Information Builders, Inc.,
rental processing. VidRent also does not provide is over 15 years old and has enjoyed steady growth.
transaction logging. If this package were chosen, Therefore, both vendors are expected to remain
these requirements would go unmet. Through dis- viable market forces for the foreseeable future.
cussion with the vendor, Mary determines that query VidRent's vendor, VidSoft, is 5 years old and still is
processing can be done by using any software that run from the owner's home. The company has grown
can access ASCII files. Thus, the addition of steadily by selling to the single video store firms
dBase™ or Orac1e™ or some other single-user pack- such as ABC, but the owner, Mark Denton, does not
age to provide Vic with query capabilities is a cheap publicize his earnings.
alternative that adds about $1,200 to the alternative. In summary, SOL Server and Focus both meet all
This alternative is still limited in that querying would software requirements of the application; VidRent
be limited to an off-line function when the on-line could be made to provide most requirements. Cost
application was not in operation. This requirement is favors the VidRent proposal with a total esti-
caused by the record locking scheme in VidRent. mated software cost of $22,000. At this point, Vic
Also, the software package could be modified must decide how much he wants the custom fea-
by Mary's group to provide the history process- tures of his application and whether the compro-
ing desired by Vic, without violating the vendor mises on querying and ease of processing are worth
warranty. Thus, VidRent's cost increases, and it is $13,000.
capable of doing most requisite processing (see Vic and Mary discuss the alternatives frankly.
Table 6-7). Mary recommends not going with VidRent because
Both Focus and SOL Server are fully capable of of the company size, lack of features, and need for
supporting the application. Both require complete, customizing for any features not already in the pack-
custom development of the application, but both pro- age. Vic is staggered by the cost of custom software
vide application generators and have built-in query development and is inclined to purchase VidRent
capability. A quick estimate by Mary based on her and forget his grand plans. Mary reminds him that
experience and without a detailed project plan is that if he does not develop his application as envisioned,
the total development work would take about six- the competitive advantages might disappear. Vic
person months. At $150 per day, for a 26-day month, eventually decides that he does want the application
the custom software development will be about as currently defined and that he is not willing to com-
$23,400 (i.e., 6 * 150 * 26). Except for cost, there is promise his vision in any way. Therefore, only SOL
no advantage or disadvantage to either package Server and Focus alternatives are developed further
based on application requirements. SOL Server's to determine the benefits and risks of the softwares.
license allows 15 concurrent users which is more Only general benefits are evaluated for each
than Focus. alternative; there are no apparent benefits of one
Feasibility Activities 167
Provide add, change, delete, inquiry functions for Yes Yes Yes
customer, video, and rental information
Interactive processing and data display for all Yes Yes Yes
outstanding video rentals, including fees owing
On-line processing from 8 A.M. to 11 P.M. daily Yes Yes Yes
The maintenance of customer history of rentals, Yes Yes Yes
rental history for each video tape, creation, and
change of rental transaction records
Monitoring of outstanding rentals by customer On-line On-line Off-line
Computation of late fees owing from prior transactions Yes Yes Yes
The ability to create new customers as part of Yes Yes No
rental processing
The ability to add new videos to the system as part Yes Yes No
of rental processing
Query of any rental-related information On-line On-line Off-line
Minimize data entry in rental processing by using Yes Yes Yes
bar codes or similar technology
Provide immediate file update Yes Yes Yes
Provide transaction logging for database integrity Yes Yes No
Do daily backup of all files and application programs Yes Yes Yes
Provide ad hoc reporting capability for all files and Yes Yes Only with
legal combinations of files another package
Provide end-of-day reports Yes Yes Yes
Provide for growth of 15 % per year per file Yes Yes Yes
Provide for nine concurrent users 15 10 Any number
Provide SQL compatibility Yes Yes For ASCII files
Total requirements met out of 18 18 18 15
software over the other. The benefits of the applica- occurrence with a specific alternative (see Table
tion identified in an earlier step are compared to 6-9). The table of risks is repeated here with an
each proposed software alternative. As you can see analysis of the two language environments. Hard-
from Table 6-8, the benefits are identical for each ware risks apply equally to both alternatives. Soft-
implementation. ware risks vary because of differences in product
Finally, risks of the alternatives are defined. The knowledge by the development team, product
list of possible risks is customized for the applica- functionality, and expected cost, all of which favor
tion and each risk is assessed for probability of Focus.
168 CHAPTER 6 Application Feasibility Analysis and Planning
1Keep in mind that these are estimates for the sake of discussion and not real dollar estimates.
Give customers information on previous rentals the same day and on Yes Yes
videos they have previously rented
Provide data accuracy for customers, videos, rentals Yes Yes
Track and display late rentals Yes Yes
Compute and display late fees Yes Yes
Increase speed of customer and video information retrieval Yes Yes
Improve customer service Yes Yes
Provide accounting record of transactions Yes Yes
Allow tracking of transaction errors Yes Yes
Provide accurate and timely end-of-day reports Yes Yes
Decrease time for individual transactions through minimal typing Yes Yes
Increase speed and accuracy of fee processing Yes Yes
Decrease file update time Yes Yes
Improve customer satisfaction with overall rental process through Yes Yes
the above changes
Total benefits met out of 15 15 15
Feasibility Activities 169
Manager change No No
Vic quits, transfers, is replaced No No
Vic/clerks not cooperative Low Low
Once the benefits, risks, and alternatives are de- ability to perform as required for an application
fined, they are evaluated to narrow the field to one should be identified. Objective answers that may not
(or two) proposed alternative(s). be what managers want to hear are required to ade-
quately assess technical feasibility. Maintaining
objectivity is difficult when market pressure to
Evaluate Alternative Solutions develop an application exists and managers want to
develop an application.
The recommended alternatives are evaluated for
To perform technical feasibility analysis, the
technical adequacy, organizational feasibility, ex-
technical alternatives are listed and compared across
tent to which benefits are met, and severity of asso-
alternatives. Then, the application requirements are
ciated risks. In general, we select the alternative that
listed and evaluated for number of requirements met
meets the most requirements, yields the greatest ben-
across the alternatives. The alternative meeting the
efit, and has the lowest associated risk. When these
most requirements is favored during this analysis.
characteristics do not relate to the same technical
If there is a difference in the extent to which a
alternative, one or two are selected for further analy-
requirement would be met, that information is noted
sis and the remaining alternatives are eliminated
in the analysis.
from consideration. In this section, we discuss tech-
nical, organization, benefit, and risk evaluations for
narrowing the decision to one or two alternatives. Evaluate Organizational Feasibility
Organizational feasibility is the extent to which the
Evaluate Technical Feasibility organization is ready to implement the proposed
application. First, using the questions below, orga-
Technical feasibility assesses the technology, its
nization structure is assessed to define organizational
maturity in the market, its availability to the com-
changes required.
pany, and the likelihood of successful use. Techni-
cal feasibility is most important when using new Does the organization structure need to be
technologies that are leading edge. You want to be changed?
leading the competition, not bleeding, when using Do all groups that create the same information
new technologies! report to the same manager?
The key questions used to evaluate technical fea- Do user jobs require new procedures?
sibility are: Do user jobs require new work organization?
For instance, do they move from individual
Is the technology in use elsewhere?
assembly line-type arrangement to work
Is the technology used elsewhere for similar
groups?
applications?
Do users have the required level of computer
How mature is the technology?
literacy?
How much industry experience is there with this
Do users have the required level of typing
technology?
skills?
Are staff with experience using this technology
Will users require training for the new
easy to find?
application?
How does each alternative manage the applica-
Can training be done by other users?
tion sources of complexity?
Are users involved in screen design, accep-
Does the proposed alternative require any
tance test design, and/or general application
compromise of application requirements?
development?
What type of compromise and which
Does the IS staff know the problem domain?
requirement(s)?
Does the IS staff know the software being used?
Each question is evaluated for each technical alter- Does the IS staff know the operating environ-
native proposed. Any issues about a technology's ment being used?
Feasibility Activities 171
Organization structure is evaluated to determine expenses are summed to provide a single dollar-
if the people who have creation authority for data value benefit for each alternative. If there are no
all report to the same management and that all alternative-specific benefits, the number and value of
departments and jobs that will be needed in the new benefits are the same for all alternatives. If there are
application are defined or currently exist. Second, alternative-specific benefits, then one or several
expected users are evaluated to determine the extent alternatives might be preferred. These are identified
to which training is required to implement the pro- by this analysis.
posed application. For instance, some computer lit-
eracy and typing skills might be required. If users Assess Risks
must know how to turn the machine on and activate
Similar to the benefits analysis, the risks of each pro-
an application, but do not currently use computers,
posed alternative are assessed to determine the
you might need to do a short questionnaire or inter-
alternative with the least risk. First, a simple count of
view users to determine their level of computer
the risks for each alternative is done. Then, for
literacy. Any needs identified are added to the im-
alternative-specific risks, the extent to which they
plementation plan as a task (and cost) of the pro-
are likely to occur is assessed. If there are no alter-
posed application. The goal of this first type of
native-specific risks, the risks are the same for all
organization analysis is to identify user department
alternatives. When the risks are not the same, alter-
changes and user requirements for training, both of
natives with lower, less likely risks are preferred to
which must be satisfied before the organization can
alternatives with a high likelihood of occurrence. If a
effectively use the proposed application.
dollar value of exposure is assigned to the risk, it is
A second type of organizational feasibility
considered, with lower values of risk preferred to
assesses the readiness of the IS organization to
significant potential losses.
develop the proposed application. When a custom
development is being done by consultants, you eval-
Propose New Application
uate their skills with the technology and similar
problems to determine their readiness. The assess- Next, the recommended solution(s) are defined in
ment determines staff skill with the hardware, sufficient detail to allow project planning and finan-
operating environment, programming language, cial analysis. The development plans include hard-
database, and similar environments. As with the user ware, software, operating environment, development
organization, feasibility, level of expertise and train- concept, technical feasibility, organization feasibil-
ing requirements are determined. Technical staff ity, benefits, and risks.
training requirements defined during this assessment The proposal of the new application might docu-
are added to development plans for cost analysis. ment the recommendations formally to begin to
The last type of feasibility assessment, financial develop the feasibility report, or may still be an
feasibility, is performed after a plan for the recom- informal collection of information that supports the
mended alternative(s) is developed. Financial feasi- remaining analyses. The formality of this gathering
bility is discussed in a following section. of information is decided by the Project Manager
and SE, based on their confidence in their decisions.
Assess Benefits If they are fairly confident that no major changes will
take place, they might develop final versions of doc-
Benefits defined for the application in general, and
umentation and begin an informal review of their
for specific implementation alternatives, are assessed
findings and recommendations with users.
to determine which proposed alternative yields the
outcome with the highest reward to the organization.
ABC Video Evaluation of Alternatives
Benefits are tallied for each alternative. First, a
simple count of the benefits for each alternative is The alternatives first are assessed in terms of the
done. Then, for benefits assigned monetary values, technical and organizational feasibility. Then, the
the amounts of increased revenues or avoided benefits and risks of each are assessed. Based on
172 CHAPTER 6 Application Feasibility Analysis and Planning
the differences between alternatives, a recommended decides in favor of the Focus solution, but is clearly
solution is selected. unhappy with the overall cost of $50,700. Vic wants
Both packages, SOL Server and Focus, appear to continue with the planning and financial analysis
capable of providing the complete application as for the application, but is also interested in some way
envisioned by Vic. The implementation would prob- to reduce or defer the development costs of Mary's
ably be smoother with Focus given the high skill team services for customized software. In any case,
level of Mary and her staff with the product. SOL the Focus, LAN solution will be planned and evalu-
Server might have intangible benefits in that, if ated financially in detail. Before we continue with
another store were opened, the software could eas- ABC's problem, we first talk about project planning.
ily communicate between stores, having been built
specifically for distributed processing. This benefit is
not immediate, however, and the current technical
Plan the Implementation
solution favored is Focus. Focus has a longer history, Estimating Techniques
and is thus, a more mature product, has a large com-
pany backing it, provides all technical requirements Users are easy to deal with when they feel you
for current and future plans; and is cheaper than SOL understand their problem, when they think you can
Server in the example. improve their situation through automation, you
From an organization perspective, neither product can estimate how long the job will take, and you
offers any distinct advantages or disadvantages. The can estimate their costs. These are not easy items to
staff at ABC would have to learn both products. know or to develop. When users are comfortable that
Both vendors offer classes in the Atlanta area. The they can afford and use the proposed application
company does not need reorganization to accommo- within a reasonable amount of time, they become the
date the application regardless of software chosen. champions of the project, fighting for its develop-
From the perspective of Mary's staff, Focus is pre- ment in the political environment of the business.
ferred since they already have experience using it, Research shows that a champion provides a major
but she feels confident that they could also build the contribution to application development success. In
application using SOL Server if desired. this section, we discuss the last two important issues
The benefits analysis is simple in this case. The to making the user feel comfortable: planning and
benefits do not favor either implementation scenario costing the project. 4
since they all apply to both. Thus, all benefits ~re Accurate estimates are important to
expected to accrue from either implementation. • allow cost-benefit and other financial analyses
The risk analysis favors Focus over SOL Server • allow hardware/software trade-off analysis
slightly. The main difference in risk exposure is from • provide a basis for management evaluation of
the lack of usage experience of Mary's group with multiple projects
SOL Server. This lack of knowledge can only be par- • act as the basis for schedule, staffing, project
tially removed by training. Experience in using the management, and structure definition
product is really required to develop knowledge of • avoid problems such as contract renegotiation,
the 'undocumented features' and unanticipated lim- overtime, user cost increases; or project costs
itations of the software. In this case, Focus is known increases
to Mary's team and is therefore preferred.
In the example for ABC, both packages could At the feasibility level, estimates should be within
probably be used with success in developing the 20% accurate. This means that the estimates might
ABC rental application. Both softwares appear capa- be overstated or understated by 20%. Planning
ble of future growth and have apparent company sta-
bility. The cost differences favor a Focus solution, 4 All the methods in this section are based on methods
while the specific client/server orientation provides discussed in Barry Boehm's book, Software Engineering
an as yet unneeded benefit to SOL Server. Vic Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981.
Feasibility Activities 173
should be redone at the end of the analysis phase, at developed and found to be inadequate is linear (see
which time the estimates should be within 10%. Figure 6-10), multiplicative (see Figure 6-11), ana-
Again, planning at the end of design should refine lytic (see Figure 6-12), tabular (see Figure 6-13), and
the estimates to within 5%. The redefinition of costs composite, which combines the others. All but the
is one activity that meets with resistance from man- composite method are rarely used because they
agers who tend to cast in concrete the first estimate offer too simplistic a model of project work. The
they hear. Part of the Project Manager's role is to noncomposite methods do not support adjustment
educate the managers and users involved to under- of the model for expertise of staff, tools used to aid
stand that as the degree of uncertainty about project development, or other factors that might alter the
activities decreases, the certainty of time estimates time and cost of development. All algorithmic meth-
and costs increases. Therefore, the plans should be ods suffer the same fatal flaw that they rely on some
redone at the end of every major phase of activity. initial estimate that is difficult to guess and on which
The planning methods discussed in the next the accuracy of the entire estimate rests.
section are ways to generate time estimates for the There are two key variables in the Composite
person-days of project work. These are then con- Cost Model (CoCoMo): number of delivered source
verted into costs by allocating an amount of money instructions and project mode. Delivered source in-
for each person required. Ultimately, the Project structions refers to lines of code used in a produc-
Manager and SE rely on their knowledge of the tion version of an application and omits any modules
organization and salaries of individuals. Additional or programs written to support the development
costs are allocated for computer resources, acquisi- effort. Since any sizable project has thousands of
tion of hardware, software, or consultants, and other instructions, this term is expressed as thousands of
supplies needed to complete the application. delivered source instructions or KDSI. Delivered
There are many different approaches to planning instructions are those that actually are in the finished
which are discussed in the first section below. After product and excludes any code that is generated to
that, we take a practical, experience-based approach facilitate project development. For instance, in a
to developing a critical path plan. The experience- DBMS application, you frequently write programs
based estimates are then reality checked against two to do a formatted print of the file that are not part of
sets of algorithmic planning formulae. The two plan- the finished application. These modules would be
ning methods used are function points and the omitted from the estimate. The second important
CoCoMo model. Both have known flaws. By com- word is source. Source code means uncompiled,
bining planning methods rather. than using only unlinked lines of code in whatever language is used.
one, you improve the likelihood of more accurate The implication is that some compiled language such
estimates. as Cobol, Fortran, Pascal, or PLll, is used. Control
Planning methods are usually classified into cat- language code is omitted from KDSI, while the num-
egories for algorithmic methods, expert judgment, ber of Cobol statements is reduced by a factor of .33
analogy, Parkinson, price-to-win, top-down, bottom- to compensate for the high percentage of nonexe-
up, or function points. These are defined here, and cutable code.
several methods are discussed in detail because The model is based on three critical assumptions.
they are the most frequently used. Advantages and First, it assumes that KDSI can be estimated with
disadvantages of each method are summarized in some accuracy. Second, it assumes that the water-
Table 6-10. fall life cycle approach is used. Third, the language
of application development (Cobol, Pljl, APL, and
ALGORITHMIC METHODS. An algorithmic so on) is assumed to have no discernible impact on
estimating relies on one or more key formulae to the amount of effort or staffing for a project. The lat-
develop an estimate of person-power required for ter two assumptions can be corrected for by the mul-
project work. There are five types of algorithmic tipliers. The first assumption, that accurate estimates
planning methods. The sequence in which they were of KDSI are possible, is only true when projects are
174 CHAPTER 6 Application Feasibility Analysis and Planning
Top-Down System level focus Less detailed and stable than other methods
Efficient use of resources Overlooks technical complexity
*Adapted from Boehm, Barry W., Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981, p. 342.
similar over time, and accurate statistics of past proj- large in size, and uses technology that is familiar to
ect KDSI are maintained. some of the project team.
Project mode refers to a combination of size, An embedded project is one that is developed by
staff, and technology. The three main project modes contractors, is medium to very large in size, and uses
are organic, semidetached, and embedded (see Table state-of-the-art technology which is new and unfa-
6-11). An organic project is developed by in-house miliar to all project members.
staff, is small to medium in size, and uses existing, The five project sizes referenced by CoCoMo are
familiar technology. small, intermediate, medium, large, and very large.
A semidetached project is one that is developed Each size has an average number of thousands of
by in-house staff and contractors, is intermediate to source instructions to which it relates (see Table
Feasibility Activities 175
Where:
NI Number of Program operators (e.g., Add)
N2 Number of Program operands (e.g., Data Fields)
N NI +N2
S Approximately 18
N2 l:N2 usage, i.e., the number of time the operands are used in instructions
N l:NI + l:N2 usage
Example: If
NI 30
N2 1000
N NI + N2 = 30 + 1000 = 1030
S Approximately 18
N2 l:N2 usage = 2500
N l:NI + l:N2 = 1000 + 2500 = 3500
then NIN 2N log 2N / 2SN2
30 * 2500 * 3500 IOg2 1030/2 * 18 * 1000
75000 * 4.5 / 36000
9.1 Person Months
Next the multipliers are evaluated and used to know how much elapsed time the project should take
modify the person-month estimate based on project and when to phase people onto and off of the project.
specific factors (see Table 6-14). Risks, uncertain- Co CoMo provides these estimates. The second set of
ties, constraints, and staff experience are all evalu- formulae are used to estimate total development time
ated to determine their potential impact on the (TDEV) which accounts for multiple people work-
schedule. The basic person-months estimate is mul- ing on the project. (Table 6-13 also shows the algo-
tiplied by each relevant subjective multiplier to rithms used to compute development effort.) To use
adjust for project contingencies. these algorithms, you simply plug in the person-
Total months of effort is not very useful for a months value from the first formula into the TDEV
multiperson project unless there is also some way to formula matching the project mode.
Finally, the Co CoMo model includes a formula to
estimate staffing levels over time in the shape of a
TABLE 6- 14 Sample Co CoMo Multipliers Rayleigh (pronounced RAY-lee) curve. A Rayleigh
Range of curve (Figure 6-14) starts at some point above zero,
Type Variance Multiplier increases to a high point, and gradually decreases to
near zero. The formula for developing the number of
Product people at any time requires an estimate of the time of
Reliability .75-1.4 the highest staffing level for the project (see Figure
Data Base Size .94-1.16 6-14). This formula assumes a peak about one-third
Software Complexity .70-1.65 of the way into the elapsed time (TDEV).
Computer The advantages of any formula for estimating is
Execution Time 1.00-1.66 that it is objective and repeatable (see Table 6-10).
Memory Constraints 1.00-1.56 Further, they are easily understood and require little
OS Volatility .87-1.3 effort to use. The disadvantages are that the formulae
Turnaround Time .87-1.15
all require some initial estimate that is hard to
Project develop and frequently inaccurate. The formula
Modern .82-1.24 might not fit the project and may be complicated
Practice to learn.
Use of Software Tools .83-1.24
Schedule Constraints 1.10-1.23
EXPERT JUDGMENT. Expert judgment esti-
Personnel mating is a technique by which the Project Man-
Analyst Capability .71-1.46 ager and SE use their experience to guide the
Programmer Capability .70-1.42
development of the time estimates. Each task is
Application defined in terms of the program types likely to
Experience .82-1.29
result from the task. Then, using their experience,
Operating System the PM and SE assign times to each program, adding
Experience .90-1.21 design time and analysis time.
Programming For instance, assume there are 15 report pro-
Language Experience .95-1.14 grams. If a batch Cobol report interfacing with a
Rate Each Cost Driver on a scale of 0 (Not applicable) to DBMS averages one week to code and unit test,
5 (Highly applicable) 3-5 days of design, and 2-4 days of analyses, then
Multiply rating times multiplier to obtain final multiplier 15 reports will average 15 weeks for programming
Multiply MM Computation by final multiplier and one week is allocated per program. The other
phase estimates are similar. A range of 30-60 days
From Boehm, Barry W., Software Engineering Economics. of analysis and of 45-75 days for design are allo-
Englewood Cliffs, NJ: Prentice-Hall, Inc., 1981. cated for the 15 reports. Similar estimates are made
178 CHAPTER 6 Application Feasibility Analysis and Planning
1 234 5 6 7 8
# Periods
(0.15TDEV = 0.7t)2 *
O.15TDEV + O.7t) - 0.33(TDEV)2
FTEt = MM ( e
O.33(TDEV)2
where MM is man-months
TDEV is total development time
is the period for which the estimate is made
*Adapted from Boehm, 1981. FTE t is Full Time Equivalent staff in time t
for batch updates, on-line queries, on-line updates, Finally, all costs are summed to develop a total cost
and so forth. for the project.
When all program estimates are complete, the The advantages of expert judgment are the
entire group is summarized to develop a project ability to factor experience into estimates, to tailor
estimate. These are then presented as a range of estimates to assigned personnel, and to develop
estimates with the lowest number representing the estimates quickly and efficiently (see Table 6-10).
optimistic schedule, the average number represent- The disadvantages are that the estimates are no bet-
ing the most likely schedule, and the highest num- ter than the expertise of the PM and SE, they may
ber representing a pessimistic schedule. be biased, are hard to rationalize, and not objectively
Costs are similarly assigned. Each program type repeatable. That is, the experience cannot be taught
is used to define the skill level of the desired pro- to others so two PM/SE teams estimating the same
grammer. For instance, a junior programmer might project will develop different estimates for the same
be assigned to batch reports, a senior programmer problem. Finally, expert judgment is not useful in
assigned to on-line processing, and a mid-level novel situations using new technology, methodol-
programmer to on-line reports. The times for each ogy, or languages.
program type and programmer type are summed and
multiplied by the cost of that level person. Similarly, ANALOGY. Analogical estimating is similar to
the level of analyst or programmer-analyst needed applying experience. In estimating by analogy, a
for analysis and design of the tasks is estimated. recently completed similar project is selected to act
Feasibility Activities 179
as a prototype baseline for developing cost estimates not recommended. Price-to-win leads to forced user
for a current proposed project. Costs are determined compromise on application requirements to try to
based on the match or mismatch of tasks and pro- meet a cost/time estimate, gives the consulting com-
grams to the baseline. In other words, if a task is pany bad public relations, always requires staff over-
essentially the same, then the actual time of the task time, and most always results in cost overruns for
in the baseline project is used to estimate the actual both time and money.
time of the task for the proposed project. Analogy is You might ask, Why would anyone ever use
applied to time, staff skill levels, and, eventually, a price-to-win strategy? Unfortunately, historical
resource, hardware, software, and other costs. estimates by IS personnel are not very accurate
The advantage of analogy is that it is based on an unless combinations of modern techniques such as
actual, recent experience which can be studied for CoCoMo and function points are used and few prob-
specific differences and only those differences lems occur on the project. Following this logic, peo-
require new cost estimates (see Table 6-10). The dis- ple who use a price-to-win strategy usually believe
advantages of analogy are that the analogous pro- any estimate is good as long as they get the job, since
ject may not be representative of the proposed there is little relationship between real and estimated
project, constraints, techniques, or functions. Some costs anyway. Frequently, in government projects
of the disadvantages can be reduced by matching especially, the lowest bid wins the job. This logic
project functions. This technique might work in of choosing the lowest bid leads to price-to-win
large compallies with many similar projects, but is estimates. This has led to problems for several gov-
not particularly useful in small companies, unique ernment entities.
projects, or projects using new technology, method-
ology, or languages. TOP-DOWN. Used with one or more of the other
estimating techniques, top-down estimates use
PARKINSON'S LAW. Parkinson's LawS states project properties to derive an estimate. Then total
that "Work expands to fill the available time." Based cost is split among the components. After a time
on this law, any time can be allocated and that is the estimate is derived, the 40-20-40 rule is applied to
time the project will take (see Table 6-10). For the estimate. According to the rule, 40% of project
instance, there are 6 people available for 6 months, time is spent on analysis and design, 20% is spent on
therefore the project will take 36 person-months. coding and unit testing, and 40% is spent on project
This is a cynical view of estimating that reinforces testing.
poor development practices by random assignment The advantage of using a top-down approach is
of time and people. that, by focusing on global properties of the appli-
There are obvious flaws to Parkinson's Law. This cation, an estimate can be developed quickly-in a
method is likely to be grossly inaccurate in estimates day or two. Using analogy to assess global proper-
generated (see Table 6-10). If people are allocated ties, the proposed project is assumed similar to some
because they are available and not because they are other whole project. For instance, ABC's applica-
needed, their skills are likely to be wasted and the tion is an on-line database application with create,
project is more likely to be late. This method is not change, delete, and query capabilities for all data,
recommended. and an overall query facility for grouped data; sys-
tem functions include start-up, shutdown, and
PRICE-TO-WIN. Price-to-win is a consultant monthly file maintenance processing.
strategy that uses a low estimate to obtain ajob, with The major disadvantage of a top-down approach
the implication that the time and cost will later be is that the above description fits most on-line data-
renegotiated. Like Parkinson's Law, this strategy is base applications (see Table 6-10). Such a high level
focus cannot identify low level technical problems
that drive up costs. For instance, in a complex data-
5 Parkinson's Law was first published in 1957. base application, one particular data access need
180 CHAPTER 6 Application Feasibility Analysis and Planning
might require a month of design and prototyping FUNCTION POINTS. The function point method
time to prove that the concept works. This type of takes an organizational history approach to estimat-
special process would be missed in a top-down ing. Function points are a measure of complexity
estimate. Whole software components might be based on global application characteristics. A base-
missed in the global assessment that, when devel- line developed by analyzing all previous applica-
oped, account for a disproportionate amount of time tions is developed for each type application. The
and cost. On balance, top-down estimates are less baseline number of function points is divided by the
stable than more specific estimates. actual cost/time of development to get an estimate
for one function point per application type (or lan-
BOTTOM-UP. The bottom-up approach takes the guage, or person-month). New applications are ana-
opposite view of an application from the top-down lyzed to determine an estimate of the number of
approach. Using a bottom-up estimating approach, function points in the project. Then, the base time
each software component is identified and estimated, and cost estimates for one function point are multi-
often by the person who would do the development. plied by the number of estimated function points for
All individual component costs are summed to arrive the proposed application to develop a total time and
at the estimated cost of the entire software product. cost estimate.
The bottom-up approach is as likely to miss com- Function point analysis rests on the ability of the
ponents for development as the top-down approach project team to predict the inputs, outputs, queries,
(see Table 6-10). At the low level, integration work interfaces, and files. Figure 6-15 shows the counts
to combine modules and programs may not be esti- and weights assigned for each type of I/O. Each
mated or is easily underestimated. Also, the bottom- item is counted and weighted for complexity. The
up approach requires significantly more effort to weighted counts are summed.
develop because every module, progr~m, screen, Then a series of 14 questions to determine differ-
database interaction, and so on must be identified ent types of application complexity are evaluated
for estimating. on a scale of zero to five to measure increasing
The advantages of the bottom-up approach importance of the item to the application (see Table
are that the estimates are based on a more de- 6-15). The answers to the 14 questions are also
tailed understanding of the project than the other summed. The summed complexity weights and
methods, and, when estimated by the person doing weighted counts are combined in one formula shown
the work, the estimates are back~d by a profes- below to compute the total function points for a
sional's commitment. project.
# Programmed Inquiries 3 4 6
# Files / Relations 7 10 15
# Application Interfaces 5 7 10
From Pressman, Roger S., Software Engineering: A Practitioner's Approach, third edition. NY: McGraw-Hili, 1992, p. 49.
TABLE 6- 15 Function Point Questions that other methods do not. Of course, the function
and Rating Scale * point estimate has flaws similar to those of CoCoMo,
too. Function points must be calibrated for the orga-
Rating Scale from 0 (No influence) to 5 (Essential) nization based on its history of project development.
It assumes that history predicts the future. Further,
Factor Questions: it assumes similar technology and skills across proj-
1. Is reliable backup and recovery required? ects. The model assumes that methodology and
2. Are data communications required? CASE have no impact on project development time.
To summarize, there are several useful methods
3. Are any functions distributed? of project person-month or lines-of-code estimat-
4. Is performance critical? ing. The most popular are expert judgment, analogy,
5. Is operational environment volume high? CoCoMo, function points, top-down, and bottom-up.
All of these methods have advantages and disadvan-
6. Is on-line data entry required? tages. If a history of projects and function points is
7. Does on-line data entry require multiple screens or kept, that appears to be the most accurate estimat-
operations? ing technique at the moment. If function points are
8. Is on-line files update used? not calibrated to the company's history, no one esti-
mating technique is better than any other. Rather, the
9. Are queries, screens, reports, or files complex?
methods might be paired or used several at a time to
10. Is processing complex? develop estimates that are closer to reality than esti-
11. Is code design for reuse? mates developed using anyone method alone.
12. Does implementation include conversion and
Planning Guidelines
installation?
13. Are multiple installations and/or multiple organiza- In the absence of calibrated function points for ABC,
tions involved? we will discuss the use of several methods in devel-
oping a plan for an application. By combining the
14. Does application design facilitate user changes?
methods, the schedule and plan developed should
How integral is ease of use?
be better than using anyone plan on its own.
*From Pressman, Roger S., Software Engineering: A Practi- Several variations for combining estimating tech-
tioner's Approach, third edition. NY: McGraw-Hill, 1992, p. 50. niques are feasible. They are:
1. Estimate inputs, outputs, interfaces, queries,
and files according to function point
FP =Total weighted count * (.65
directions.
+ (0.1 * L(complexity adjustments)) )
2. Answer 14 questions and estimate project
Function points have become popular enough that complexity.
several companies and software packages are avail- 3. Compute function points.
able for developing function point estimates. In ad- 4. Lookup lines of code per function point (FP)
dition, tables of function points per number of lines in language table and compute total lines of
of code are also available. For instance, 100 lines of code (LOC) for the project.
Cobol is equal to 20 lines of Focus is equal to one 5. Decide the CoCoMo mode.
function point. Translating function points into lines 6. Using FP LOC as input to the CoCoMo
of code, then, requires a simple table lookup. model, compute person months of effort.
The appeal of function points is similar to that of 7. Analyze multipliers and adjust the estimate.
CoCoMo. Any algorithmic method is likely to be 8. Compute total development time and project
easy to use, understand, and repeat (see Table 6-10). staffing estimates using the other CoCoMo
An algorithm gives the appearance of objectivity formula.
182 CHAPTER 6 Application Feasibility Analysis and Planning
If the company uses function point analysis for its 3. Decide on information gathering tech-
baseline, function point planning is the first type per- nique(s) and use of lAD, prototyping, or
formed. Then, the plan can be compared to the Co- other variants to DLC.
CoMo model estimates to verify its goodness of fit. 4. Decide which products the technical project
Alternatively, the project manager can develop a top- team members will develop and which the
down plan while the SE and any other project staff users will develop.
working on the feasibility develop a bottom-up plan 5. Define dependencies and develop CPM
by using the following steps: chart.
6. Assign times to tasks and compute total
1. PM and SE together estimate the develop- project time.
ment approach and all functions in the 7. Estimate inputs, outputs, interfaces, queries,
application. and files according to function point
2. PM uses top-down analysis to develop a list directions.
of activities to be performed and the times for 8. Answer 14 questions and estimate project
each. complexity.
3. From this list, deliverable products and a 9. Compute function points.
schedule are developed. 10. Lookup lines of code per function point
4. The list is analyzed to determine task depen- (FP) in language table and compute total
dencies, and a first-cut critical path chart is lines of code (LOC) for the project.
developed. 11. Estimate productivity in LOC/month.
5. Concurrently with steps two to four, the 12. Compare FP number of person months to
SE analyzes each function bottom-up the estimated total time.
to determine the complexity, possible 13. Adjust time estimates, as required, and com-
problems, nondeliverable programs, and plete the CPM diagram by adding times.
amount of effort to be assigned to each
technical task. For instance, assume the waterfall is followed and
6. Any new tasks identified by either the PM or the phases include Feasibility, Analysis, Design,
SE are added to the plan and estimated. The Program Design, Code/Unit Test, System Testing,
SE and PM compare and adjust their time es- Acceptance Testing, and Installation. Then, list de-
timates until they agree. liverable products. Phases might have more than one
Another alternative is to combine expert judg- deliverable product. Products usually coincide with
ment, analogy, top-down, and bottom-up to develop the ending of life cycle phases. Products for these
a first set of estimates. Then, these estimates are phases include a feasibility report, functional re-
compared to the standard function point estimate for quirements specification, design specification, pro-
a reality check. If the expert estimate is more than gram specifications, plans for testing, conversion,
15 % lower than the function point estimate, then the training, and implementation, operational documen-
plan should probably be revised upward. In this sec- tation, and user documentation.
tion, we use expert judgment and analogy, using a From the choices in Chapter 4, decide the ap-
top-down approach to develop the estimate, then do proach to information gathering. If you use lAD, for
a bottom-up analysis of each piece to ensure they are instance, the amount of time allocated to analysis is
all present. less than if you use interviews over time. Decide the
The steps to developing a plan are: overall system design approach. Is prototyping
needed? How involved will users be in the develop-
1. Decide the Development Life Cycle (DLC), ment process? How extensive will user training be?
approach, and methodology. Will CASE be used? Which tool? (Some tools add
2. For each phase, list the deliverable products analysis and design time, some reduce it). How ex-
that mark completion of the phase. tensive are documents expected to be? Is on-line
Feasibility Activities 183
help software going to replace user manuals? Who is software packages allow early, most likely, and latest
responsible for planning and executing the conver- possible dates to be entered. For some software you
sion? How much data scrubbing to remove errors enter the project completion date and the software
from existing data is required? The answers to these computes the early and late dates for tasks based on
questions increase or decrease the time allocated for their durations.
each task. Extend the times to develop dates at which each
Next decide which products the technical project task is expected. A work breakdown shows the earli-
team members will develop and which the users will est start and end dates for each task, plus the latest
develop. These tasks are estimated just as the techni- start and end dates per task. The early dates assume
cal team tasks are estimated, but they are also sin- that each preceding task took the minimum esti-
gled out for several reasons. First, the dependencies mated number of days. The latest start and end dates
should clearly show the split of assignments for the assume that each preceding task took the maximum
technical team and users. Second, users should be estimated number of days.
allowed to comment on tasks for which they are Next, create the CPM chart (see Figure 6-16). List
responsible. The technical team usually takes all tasks on a piece of paper. Draw lines from later
responsibility for the tasks if the users will not tasks to early tasks on which they are dependent. By
take it. dependent tasks, we mean those tasks that cannot
Develop a list of tasks and define dependencies, be begun until information (or products or ap-
developing a critical path chart for the project. provals) from the previous task are complete. The
Assign times to tasks. Compute function points. early task feeds the later one.
Using an estimate of LOC per month per person on When the diagram is complete, compute the time
the project, compute a total project time, and com- to complete each leg of the diagram. The leg with the
pare the FP estimate to your estimate. Adjust your longest time is the critical path, that is, the tasks on
estimate as required if it is more than 15% less than which meeting the deadline for the project depends.
the FP estimate. In general, always use a higher If anyone of the critical path tasks is late, the proj-
estimate rather than a lower one. Project schedules ect will be late. When monitoring the project, the
have a way of losing time for meetings, nonproject critical tasks get priority. When assigning staff to
responsibilities, and other legitimate, but nonpro- tasks, the critical tasks should be assigned the most
ductive uses of time. experienced and skilled personnel.
Now, let's go through each step to using com- Some sensitivity analysis on critical path and on
bined techniques for estimating. To develop a critical task dependencies might be done, if using an auto-
path diagram, list the tasks on a sheet of paper. Begin mated tool for the analysis. Manual analysis is so
with high level tasks, or tasks of a single phase, time-consuming that it may not be worth the effort.
adding lower level tasks as they come to mind. The impact of different end dates is analyzed. For
Development of the task list requires some experi- instance, if the user were to mandate a date two
ence and is always done more easily by several peo- months earlier than the estimated end date, what is
ple rather than one who is likely to forget some the impact on the project and tasks? Does the criti-
critical task. The task list, in critical path method cal path change? Can other tasks, not fully analyzed,
terms, is called a work breakdown. be made more parallel? Can any dependencies be
Define durations for each task. Durations may be removed by altering the plan or tasks? If the project
an absolute number or a range of time. The critical suffers penalties (loss of revenue) from not meeting
path method recommends the identification of opti- deadlines, the risks for each task might be reassessed
mistic, likely, and pessimistic estimates. Then, the to ensure that nothing is missed. The project man-
weighted formula ((Optimistic + 4(Likely) + Pes- ager continues this type of analysis until he or she is
simistic) I 6) is applied to develop one number for comfortable with the result.
use in financial analysis and software planning tools. After the critical path is identified, staff should be
Use either method for developing the time. Planning assigned to each task to complete project planning.
184 CHAPTER 6 Application Feasibility Analysis and Planning
---------------~
Assign people to minimize the amount of slack time per function point (FP) in a table (see Figure 6-17). 6
for which they have no assignments, but allow some Estimate your productivity in LaC per month; for
slack time in case problems arise. Assign the criti- instance, 1000 LaC/Month for a 4GL is not uncom-
cal tasks first, allocating them to the best, most mon. If your company keeps statistics, use its his-
experienced people. A general rule of thumb is that, torical numbers for project type and language.
in absence of artificially short deadlines, people can Compute total person-months for the project using
be assigned to develop a whole leg of the critical the formulae in Figure 6-18. Compare the FP esti-
path. The purpose for assigning sequential tasks in mate to your estimate and adjust as needed. Don't
a leg are to leverage the knowledge gained from just blindly take the higher number. Rather, a dif-
early tasks to later tasks, and to provide each indi- ference means that information was interpreted dif-
vidual a sense of contribution to the overall project
by allowing them to take responsibility for a large
chunk of work. 6 Refer to Capers Jones' 1986 book, Programming
Productivity, for extensive tables with this information.
When the estimates are complete, develop a func-
tion point estimate, or have someone else do it in
parallel. Weight the FP estimate by the answers to
the 14 questions. Lookup the lines of code (LaC) Number of Lines of Code per Function Point *
Number of Function Points = Total Lines of Code
ferently by the two methods of estimating. See if name assigned to each task. This allows easy track-
you can find what is different and which estimate is ing of assignments and dates at which people rotate
more realistic. on anq off the project. If using an automated tool,
Use the 40-20-40 rule to check if the effort looks allocation of staff usually requires entry of the per-
like it is reasonable across the phases. Analysis/ son's name ap.d assignment of tasks by CPM ID. In
design should be about 40% of effort if manual and either case, as people are assigned to tasks, note who
55% if using CASE. Code/unit test is about 20% they are and when they begin (and end) project
effort if manual and 5% if a CASE tool generates work. Make sure you do not change the critical path
code. System testing shoulq be 30-40%. Testing by the assigmllent of personnel to overlapping or
estimates are usually low. If testing is the diff~rence, conflicting duration tasks.
ask if there is some reason to be optimistic, for Upoq co~pletion of task assignments, a Gantt
instance, a skilled programmer. If the difference Chart is developed to summarize the project. A
cannot be found, and the percentages are allocated Gantt Chart shows the entire set of project tasks,
about right, then changing your estimate is a judg- people assigned, and completion times estimated for
ment call. the development effort (see Figure 6-19). A list of
For manual allocation of staff to a project, a list of people and amount of time assigned to the project is
tasks in CPM legs should be created and a person's created for use in the costing activity.
Day
Scheduled Task 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Interviews
J. Smith SB SB S
C. Jones SB SB B
M. Mayhew SB SB S
Review and
Revise DFD
and ERD SB SB
Begin Data Dict. SB- -- --- --- --- --- -- --- --- -- --- --- --- --- -- SB
Define Problems
w/Current System SS
Define Business
Opportunities BB
Legend:
B =Barbara James, SE
S =Stan Smits, PM/SE
Where initials alternate, both Barbara and Stan p~rticipate in the activity.
ABC Video Implementation Plan rental activity with standard maintenance procedures
for the other files. Other files, which will be main-
ABC's rental application is a fairly average project tained during rental processing, include history and
with no obvious complexities, no state-of-the-art an end-of-day summary of transactions. The appli-
technologies, and a single, small organization. Mary, cation will accommodate up to ten concurrent users
the PM, and Sam, the SE, decide to use a combina- for all processing.
tion of analogy, top-down, and bottom-up and to If two people are estimating, as Sam and Mary
check their estimate with function points based on are, a good approach is to split the two types of esti-
the estimate of 25 LOC/FP for a 4GL. Before Mary mates between the individuals. Sam would do one
and Sam begin, they first decide their approach and and Mary the other. Then they compare and rational-
assumptions on which the estimates are based. ize their work.
The project is expected to be implemented on a First, we develop a function point estimate for the
Novell ethernet LAN using PCs as workstations and work. The function point estimate (see Figure 6-20)
a superserver (50 Mhz, 486-based machine). The shows that the project is not very complex in any of
software environment will be some SQL language the key inputs or outputs. The weighting questions
with custom application software. There will be four identify the on-line, interactive, and multiuser char-
main files, corresponding to the four main entities acteristics as contributing the greatest complexity to
in the ERD. The main processing centers around the application. The total function points are esti-
# Programmed Inquiries 6 4 6 18
# Files / Relations 8 7 @ 15 80
Total 148
mated at 151. Carrying the FP analysis through, at that the highest rating should be a four. This would
25/LOC per function point, there are about 3775 then reduce the FP estimate. Both Mary and Sam
LOC (i.e., 25 * 151) for the project. At a productiv- discuss their estimates, defending their reasoning
ity rate of 2000 per month, the total number of per- processes and subjecting them to criticism by their
son months for the project is about 1.9 months (i.e., partner. In the end, they confirm with Vic that he
3775/2000). The estimate of 2,000 LOC/month is a does want only minimal documentation, and they
company statistic based on the average productivity decide to split the difference on their estimates
of each of the project participants. adding a total of 90 hours to the project. Of that time,
Mary, in parallel, creates a task list which she 18 hours (20%) is allocated to code/unit test and the
converts into a work breakdown. The work break- remaining 72 hours (80%) to testing of the project.
down identifies the tasks to complete the project, and The final estimates would then show code/unit test
the optimistic, likely, and pessimistic times for each time of 73 hours (28% of total) and testing time of
task (see Table 6-16). The most likely time for each 110 hours (42% of total). While these percentages
task is then computed and a total time for the are now slightly skewed away from analysis and
project is estimated. design, which is now 30% of the total, these per-
At this point, the two sets of estimates should be centages are in line with the 4GL need to do less
compared. The FP estimate suggests 1.9 person- analysis and design. The total estimated project time
months, while the work breakdown estimate of used in the financial estimates will be 262 hours or
172 hours translates into slightly under one month 1.5 person-months.
(25 days). The FP estimate is almost twice as high. The final work breakdown is converted into a
Let's see where the differences might lie. At the end CPM diagram to identify the critical path of work
of Table 6-16, the total times for each phase are (see Figure 6-21 for the Analysis CPM). Based on
shown with percentages of the total computed for the critical path, contingencies are planned to
each number. The percentages do not follow the ensure meeting of the schedule. Figure 6-22 is a
40-20-40 rule closely. The realistic estimate shows Gantt chart for analysis showing how Mary and Sam
46% of time for analysis and design, 32% for cod- split their responsibilities.
ing and unit testing, and 22% for system testing. The If project planning software were used, the CPM
estimate for system testing is low relative to the rule is built first, then selection of an option converts the
while the other estimates are somewhat inflated. CPM into the work breakdown. To create either dia-
Mary knows she and Sam are the only two people gram, the tasks and durations must be known.
who are expected to work on the project and she Sophisticated software supports the insertion of a
based her estimates on their ability to debug and test start date for the project and, based on the optimistic
quickly. But even she cannot defend this low number and pessimistic task durations, and on the depen-
to Sam. Sam also points out that, if Vic wants much dencies from the CPM, the software computes all the
documentation, her estimates for all the tasks might dates for the project.
be low. Mary has assumed that Vic, being a small
company owner, will opt for less documentation to
save on the expense.
On the other hand, Sam identified several com- Evaluate Financial Feasibility
plexities with which Mary takes issue, in particular
Financial Feasibility Analysis
with the difficulty of on-line update and the difficulty
of interactive programming. Both of these were Financial feasibility analysis evaluates the firm's
given a '5' rating of complexity. Mary feels that if ability to pay for a project, and compares recom-
the application were on a mainframe and using mended alternatives to determine which is more
mainframe software and tools, the fives would be economically attractive. In general, projects are eco-
justified. Since the application platform is a LAN nomically feasible when the sum of all IS projects
with which they have extensive experience, she feels plus the proposed project is less than 10% of firm net
188 CHAPTER 6 Application Feasibility Analysis and Planning
income. This uses industry averages as the guideline. selection of some alternative. The analysis facilitates
To compare alternatives, several methods discussed comparison of alternatives for one project or alterna-
in this section are used. tive projects.
Cost-benefit analysis is the comparison of the fi- Criteria used in alternative comparisons might
nancial gains and payments that would result from be maximizing benefits, ratio of benefits to costs, net
Feasibility Activities 189
Scaffolding 2 4 5 4
Screen test 2 4 6 4
Subsystem Test 7 14 21 15
System Test 7 14 21 15
Testing Total Time 18 36 53 38
benefits, minimizing costs for given level of benefit, Three types of costs are considered: acquisition,
or maximizing project internal rate of return. The development, and operating costs are all considered
most popular criterion is maximizing net benefits, in the development of the cost-benefit analysis. Sev-
which requires analysis of the present value of ben- eral different sources of costs relate to each of these
efits and costs. cost types:
190 CHAPTER 6 Application Feasibility Analysis and Planning
4 2
Define
Rental/Return Define
Processing History
Relationship Processing
2
Define Error
Messages/
Abort
3 Realistic
Define DUi n
Milestone
Customer
Maintenance Video in
Rental Works
27 2
Review
I
Requirements
with Vic
3
Define
Video
Maintenance
\ Task
Define Screen
Contents and
Process Flow
2
Define Define Define File
Define Backup
Startup / Conversion Purge / History
and Recovery
Shutdown and Training File Creation
Requirements
Processing Requirements Not Done in Rental
Sam
Vic
Mary
Vic
Vic
Vic
none. If the benefits are greater with Alternative A, fluctuations. Keep in mind that exactly the same
we might ask if the acquisition of hardware is justi- analysis is required for all competing alternatives to
fied by the extra benefits relating to Alternative A. ensure consistent NPVs. The example shown in Fig-
All of the costs of each alternative are assembled ure 6-23 shows a project for which the benefits out-
according to type for the analysis. Depreciation weigh the costs; such a project would be desirable.
schedules, leasing schedules, and any ancillary The problems arise when a project does not gen-
information relating to how costs are generated over erate a favorable NPV, but numbers alone do not
time are also used in the analysis. express project value. Benefits may be insufficient to
Similarly, all information about benefits expected pay for the project. For instance, in complying with
from the application are assembled for the analysis. government regulations, there may be no specific
Benefits are identified as 'one time' or as continuous benefits to the company. Similarly, when responding
improvements. If a stream of revenues is generated to a competitive need, the benefits might not out-
over time by the application, these are identified as weigh the costs, but the cost of not doing the project
annual revenues. might be the loss of the business. Start-up companies
The net present value formula is applied to the frequently build applications to support anticipated
benefits and costs to develop a net present value for work; the applications might not be profitable until
the application (see Figure 6-23). The formula they are several years old. Benefits from such appli-
accounts for the time value of money in computing cations are difficult, if not impossible, to quantify
the net benefits over costs. If inflation or fluctuating because of the uncertainty associated with a new
interest are expected, the interest rates might be business. Finally, companies wishing to gain signif-
changed for each time period to account for such icant competitive advantage must frequently under-
take a financially unjustifiable project to obtain their
goals. American Airlines, for instance, in developing
their $1 billion airline reservation system was bet-
ting that their ability to gain market share would out-
weigh their expenses. The financial analysis could
where: t is the time period, varying from 1 to n
d is the discounted interest rate not justify the project because of the high level of
B is the value of period benefits intangible benefits and the difficulty in estimating
C is the value of period costs their worth. The risk paid off, but could just as easily
Example: d = .08 have backfired. That is the nature of risk and why
good managers develop skill in knowing when such
(1 + d)t a risky project is worth attempting.
o 50,000 1.0000
the analysis concentrates on the extent to which ing whether or not to continue with the development
changes to the package are required and the cost effort. With this thought in mind, the feasibility doc-
of purchase plus changes versus the cost of custom ument should contain mainly supporting diagrams,
development. lists, and summary analyses. Text should be kept to a
Second, makelbuy is also used to compare the minimum to explain the attached diagrams and
competitive value of building a software product analyses. An outline of a feasibility document is pro-
internally versus development by a consulting firm. vided in Tab Ie 6-17.
Occasionally companies which charge for iIi-house
IS development services begin to overcharge their
users. Users are then justified in obtaining competi-
tive bids from consulting companies and using their TABLE 6- 17 Feasibility Report Outline
services when the cost is less.
Internal rate of return (IRR) is a financial analysis 1.0 Management Summary
of NPV such that positive cash flows (i.e., benefits) 2.0 Current Environment
are equated to negative cash flows (i.e., costs). This 2.1 Business Environment
means that the d, discount rate, in the NPV formula
is found. This gives the true cost of funds for this 2.2 Work Procedures
particular project. When projects have similar NPVs, 2.3 Evaluation of Strengths and Weaknesses of
an IRR analysis identifies differences in cost of Current Procedures
money based on when the cash flows are generated 3.0 Proposed Solution
that might differentiate the alternatives. 3.1 Scope of Proposed Solution
Payback period is the number of years required to
3.2 Functional Requirements Overview
recover the investment (acquisition and develop-
ment) costs from projected benefit cash flows. The 4.0 Technical Alternatives
payback period might decrease revenues for the time 4.1 Alternative 1
value of money or might use a simple analysis of 4.1.1 Description of Alternative
4.1.2 Benefits of Alternative
payback. Payback analysis is popular because it is
4.1.3 Risks of Alternative
easily understood. It can discriminate against proj-
ects which have a long lead time to realizing bene- 4.2 Alternative 2 ...
fits, but should not be the primary criterion for 4.n Alternative n
project selection decisions. In the example shown in 5.0 Recommended Technical Solution
Figure 6-23, the payback period would be 3 years
5.1 Comparison of Alternatives
and 2.4 months. This number is arrived at by identi- 5.1.1 Technical Comparison
fying $10,000 in year 4 as contributing to the pay- 5.1.2 Benefits Comparison
back along with all benefits in years 2 and 3. 10,000 5.1.3 Risk Comparison
is 20% of 50,000, the fourth year's projected return. 5.1.4 Recommendation and Risk
Contingency Plan
Therefore, 20% of 12 months is 2.4 months. The
payback, rounded, is 3 years and 3 months. 6.0 Project Plan
6.1 Critical Path Chart
6.2 Staffing Plan
Document the
7.0 Costs
Recommendations 7.1 Cost of Recommended Alternative
The documentation of the feasibility study pulls Hardware/Software
together all information relevant in developing the 7.2 Projected Staffing Cost
final recommendation. The purpose of the summary 7.3 Analysis of Alternatives (if necessary)
document is to provide managers a basis for decid-
194 CHAPTER 6 Application Feasibility Ar:alysis and Planning
The Management Summary section is the most interest rates, economic fluctuation, or the presence
important because it is the only item read by most of a key salesperson.
of the audience. Therefore, it should be brief, less
than two pages, and should summarize the remainder
of the document. In particular, the cost, NPV, other
financial analyses, scope, purpose, technical recom- AUTOMATED ____________
mendation, and importance of the project to the SUPPORT TOOLS _ _ _ __
organization are highlighted in the summary section.
All organizations involved in the development FOR FEASIBILITY _ _ _ __
effort and the nature of their involvement should ANALYSIS _____________
be highlighted.
The remaining sections summarize each of the There are two classes of tools that support the work
main activities completed during the feasibility performed during feasibility analysis: planning tools
study. The current environment and proposed alter- and analysis tools. Analysis tools can span any of the
natives are described in sufficient detail to give the three methodologies covered in this text and are
reader an understanding of the differences proposed. discussed in the respective methodology analysis
This section identifies hardware, operating environ- section.
ment, software, items for custom development, and The planning tools might include project estimat-
requirements met by the alternative. Benefits and ing products, project scheduling products, risk
risks associated with each alternative are also listed analysis products, or spreadsheets for financial
and discussed to trace the reasoning leading to analysis. Spreadsheets are general purpose and are
a selection. not discussed here. Estimating products are based on
The section on the recommended technical solu- an algorithmic method from those discussed above.
tion is more detailed than the alternatives discussion Products based on CoCoMo estimating, Rayleigh
and discusses different topics. The tasks, key fea- curve, and function point techniques are included in
tures, and development life cycle, methodology, and the list. The tools assume that the underlying input
concept are highlighted in the proposed application information, for instance, KLOC, is known by some
section. In addition, the discussion lists constraints, other, unspecified technique.
assumptions, level of security, recovery, and audit- Planning products assume that a work breakdown
ability for the recommended solution. A contingency with task duration assignment exists. The work
plan for minimizing the probability and for dealing breakdown planning tools support the definition of
with risks of the recommended alternative are tasks, task interrelationships, assignment of staff,
detailed. Potential impediments to successful devel- determination of early and late start dates, expected
opment, such as decisions or information not cur- end dates, and cost of resources. From this informa-
rently available, are identified. Ideally, the person tion, the tool can generate Gantt Charts, critical path
responsible for resolving the outstanding issues is networks, cost summaries, and manpower planning
named and dates for resolution are identified. guides. There are many good project management
The project plan section summarizes the plan- software products of both types on the market, sev-
ning effort. A critical path chart and staffing plan eral of which are listed in Table 6-18.
are presented with any attendant assumptions and Two risk analysis products are included in the
requirements. Finally, the costs of the recommended summary list. These products walk you through the
alternative(s) and the financial analysis are detailed. assignment of risk types, probability of risk occur-
Any assumptions, for instance, the discount rate for rence, and cost of the risk to develop a monetary
NPV, are listed. If sensitivity analysis was per- value of risks r~lated to the project. The cost of
formed, the extent to which the estimates are sensi- risk is factored into the financial analysis. More
tive and the source of sensitivity are identified. products of this type should be expected to be avail-
Sources of sensitivity might include, for instance, able as companie& become more sophisticated in
Summary 195
their assessment of the risk associated with capital are: collect data, define scope and functions, define
projects. technical alternatives, define benefits and risks of
each alternative, analyze organizational and techni-
cal feasibility, select technical alternative(s), define
SUMMARy ______________ project plan, assess financial feasibility, and select
final alternative. Data collection most frequently
Feasibility analysis is an important activity that gives uses interviews or JAD-like sessions to define cur-
a development project a scope and refined defini- rent work environment, problems, and desires for the
tion of application purpose, while providing infor- new application. From the information collected, the
mation that allows the determination of technical, team and user define the scope of the activity,
organizational, and financial readiness of the organi- including all departments involved. Then, the func-
zation. The steps to performing feasibility analysis tions to be kept from the current work environment
196 CHAPTER 6 Application Feasibility Analysis and Planning
and functions to be added to provide the new func- make versus buy alternatives for a project. Two
tionality are defined at a high level. types of make!buy analysis can be developed. First,
Technical alternative definition begins with an custom development of software versus purchase of
assessment of the project's criticality to the organi- a package can be evaluated. Second, in-house versus
zation and the need for different departments to contractor development can be evaluated. Finally,
share data. Based on that information, existing com- alternative selection is based on financial value of
puter resources are analyzed to determine their use- the alternative( s) when more than one technical
fulness for the proposed application. If existing alternative for a project exists. Also, from the finan-
resources are not adequate, new computer equip- cial analysis, managers can evaluate several different
ment, software, or packages are defined for acquisi- projects using an objective method and can identify
tion. In general, the smallest size computer (orLAN) the project with the fastest, strongest returns.
that can do the work and provide a migration path for
growth is selected. Distributed resources might be
identified as an option but are not fully analyzed at REFERENCES ____________
this time. Several technical alternatives are devel-
oped and analyzed to select one or two that meet the Albrecht, Albert J., and James E. Gaffney, "Software
most requirements, provide for the greatest benefits, function, source lines of code and development effort
prediction: A software science validation," IEEE
and pose the fewest risks.
Transactions on Software Engineering, November,
The next activity is to define a project plan. There
1983,pp.639-648.
are many different estimating techniques for project- Boehm, Barry W., Software Engineering Economics.
ing time to complete a project: algorithmic, top- Englewood Cliffs, NJ: Prentice-Hall, 1981.
down, bottom-up, price-to-win, Parkinson's Law, Charette, Robert N., Software Engineering Risk Analysis
expert judgment, function point analysis, and anal- and Management. NY: McGraw-Hill, 1989.
ogy. Of these, CoCoMo and function point are the Collins, Eliza G. c., and Mary Anne Devanna, eds., The
most popular when a history of project development Portable MBA. NY: John Wiley & Sons, 1990.
is maintained by a company. Function point analy- De Marco, Tom, "An algorithm for sizing software
sis complements CoCoMo in developing an estimate products," Performance Evaluation Review, ACM
of LaC. Co CoMo can use the LaC estimate as input SIGMetrics Publication, Vol. 12, #2, Spring-Summer,
1984, pp. 13-22.
to its formulae to develop total person-month, total
Gause, Donald c., and Gerald M. Weinberg, Exploring
development time, and project staffing estimates.
Requirements Quality Before Design. NY: Dorset
Parkinson and price-to-win are not recommended. House Publishing, 1989.
When other techniques are used, they are best used Jones, Capers, "Program Quality and Programmer
in combination. So, top-down, bottom-up, and Productivity: A Survey of the State of the Art," Pre-
expert judgment might be combined to develop best sentation through Software Productivity Research,
guesses of the time and effort involved in a devel- Inc., Boston, MA: March 15, 1989.
opment project. The project plan is used to develop Jones, Capers, Programming Productivity. NY: McGraw-
personnel costs and computer resource usage. These Hill, 1986.
and the other costs are factored into the financial fea- Kendall, Ken E., and Julie E. Kendall, Systems Analysis
sibility assessment. and Design, 2nd Ed. Englewood Cliffs, NJ: Prentice-
Hall, Inc. 1992.
Financial feasibility techniques most commonly
King, John L., and Edward L. Schrems, "Cost-benefit
used include net present value analysis which
analysis in information systems development and
accounts for the time value of money, internal rate of operation," Computing Surveys, Vol. 10, #1, March,
return which identifies the real interest rate of a proj- 1978, pp. 20-34.
ect, and payback analysis which identifies the time at Rubin, Martin S., Documentation Standards and Proce-
which net revenues equals net costs of project. dures for On-line Systems. NY: Van Nostrand Rein-
Financial analysis also supports the comparison of hold Company, 1979.
Study Questions 197
KEy TERMS ________ that you would perform the work. How does
your estimate differ from Table 6-6? Why? Are
algorithmic estimating industry environment the differences completely justifiable? Present
alternative approaches intangible benefits your estimates to a group of classmates and pro-
analogical estimating internal rate of return vide your reasoning for the changes.
application leverage analysis
point KDSI
benefit leverage point
bottom up estimating make/buyanalysis STUDY QUESTIONS _ _ _ __
business leverage point net present value (NPV)
Co CoMo estimating objective 1. Define the following terms:
competitive environment organic project Benefits Function point
contingency planning organizational feasibility Net present value Leverage point
cost/benefit analysis Parkinson's Law Risk Technical feasibility
critical success factor payback period analysis 2. Why is feasibility analysis performed?
customer environment pert chart 3. What are the three main types of feasibility and
delivered source platform why are they important?
instructions portability 4. List the steps to performing feasibility analysis.
Delphi method of price to win strategy
5. What are the main data collection techniques
estimating project mode
used during feasibility analysis?
discounted cash flow project plan
embedded project quick analysis 6. What is a leverage point?
expert judgment reliability 7. How do business and application leverage
estimating risk points differ? How do they complement each
feasibility risk assessment other?
financial feasibility semidetached project 8. List five sources of benefits.
flexibility tangible benefits 9. Discuss the differences between tangible and
function point technical feasibility intangible benefits.
function point analysis top down estimating 10. List five sources of risk and give an example of
Gantt Chart vendor environment each.
goal work breakdown
11. Why is risk analysis performed? What do you
imaging work flow management
do with the risks once they are identified?
12. How are technical alternatives generated?
EXERCISES _ _ _ _ _ _ __ 13. Once technical alternatives are complete, how
are they assessed? What is the basis for select-
1. Using Table 6-6 as a guide, develop a CPM for ing one alternative as the preferred one?
the design phase of ABC's project. While you 14. Compare the advantages and disadvantages of
do the diagram, reason through the dependen- algorithmic, function point, and combined top-
cies. Assuming Sam and Mary do the project down, bottom-up estimating.
alone, how should the work be allocated 15. What is the major weakness of Co CoMo
between them to (a) allow Mary to do project estimating?
management tasks, and (b) leverage the work 16. What is the major weakness of function point
they did during analysis? estimating?
2. Using Table 6-6 as a guide, develop a more 17. Why do we have so many estimating tech-
detailed task list for some phase or portion of a niques? Is one better than another?
phase (e.g., all rental/return processes, or con- 18. What is the major financial analysis used to
version/training). Then, develop an estimate of analyze project alternatives? Why is it the pre-
the work based on your expertise and the idea ferred method?
198 CHAPTER 6 Application Feasibility Analysis and Planning
19. What is the purpose of make/buy analysis? The proposed budget for the OIS is $200,000
*
20. Describe the two types of make/buy analysis. for a Cobol, mainframe application using a
DBMS to store the data. Is this a reasonable
EXTRA-CREDIT QUESTION amount? Develop one to three alternatives that
are more financially attractive. One of the alter-
1. The Office Information System described in the
natives might be on the mainframe but can use
Appendix is an application that automates the
different resources; at least one alternative
support division of a large company. The units
should use different technology. Who should
involved include a typing pool, copy center,
develop the application? Under what circum-
print shop, and graphic arts department. Other
stances would you recommend to do/not do
projects are being developed in the IS Depart-
the application?
ment that will cost approximately $2.4 million
per year, and an additional $1.5 million in oper-
ating expenses.
PAR
ANALYSIS
----------------------------~---------------
__ ~D--------------------______~---
----- DESIGN --------------------------------------------. ............ ~-------
199
,
In this section, we introduce the general charac- abbreviations all might be retained from an old
teristics of analysis and design that all methodolo- application.
gies have in common. In many situations, however, the existing applica-
tion is antiquated, full of obsolete design or riddled
with errors. To study it is to learn erroneous design
APPLICATION_ _ _ _ __ and procedures that must be unlearned. Why learn
it in the first place? Rather, a frequently better
DEVELOPMENT AS _ _ ___ approach is to begin analyzing the requirements of
A TRANSLATION _ _ _ __ the new application. This is called 'essential' sys-
tem analysis l and requires only that you, the ana-
ACTIVITY ---------------- lyst, attend to what relates to the new application.
The process of building applications is a series of The old application or procedures may be studied for
translations. Historically, we first examine and trans- specific information, code tables, or crucial steps in
late the current physical system to develop an the process; but in general, the old application and
abstract, logical definition of the current system (see procedures are ignored.
Figure III-I). Then, with the application users, we The essential approach is used in this text. We
define the requirements of the new logical system ignore the details of the manual method of perform-
which retains the aspects of the old system while ing rental processing because the computerized
incorporating the new requirements defined by users. method will completely replace the manual method.
The new logical system definition is the basis for The major value of studying, for instance, what man-
translating to a working physical application. ual forms are filed and when they get retrieved, is to
This historical strategy is useful only sometimes. help get a sense of file processing in the new appli-
The strategy works when a new application will cation. When the old procedures are being replaced,
maintain 50% or more of the old application's func- you may want to use the old methods as a way to
tions. For example, we might redevelop an account- confirm your thinking after you have developed the
ing application to move from batch to on-line, but application concepts.
to perform all the same functions. Another use of Whichever analysis method you use, translations
this strategy is when study of the old application can performed during analysis all have the following five
save time in providing code tables. For instance,
state abbreviations, zip codes, and customer name 1 See McMenamin and Palmer, 1984.
Application Development as a Translation Activity 203
Define Current
Logical System
Translate from
.. Define New
Logical System
'Old' Logical to
New Logical
System
they are not. You get application requirements in a expensive or complex functions are requested, you
nonlinear fashion, usually through interviews. Fre- must alert the user/sponsor to be sure they agree with
quently, you get high-, low-, and medium-level the desired function. An expensive change is one
information all at the same interview. Your job, as that adds more than 10% to the cost of the applica-
the SE, is to make sense of the information received. tion. A complex change is one that convolutes an
The sense-making activity is part of the process of otherwise simple process (see Example III-1).
building your mental model of the application Just as analysis is a translation activity, so too, is
domain. Since you receive information at different design. The goal of design is to map the functional
levels over time, your mental model of the domain requirements from analysis into a specific hardware
gets fleshed out at different levels over time, too. and software environment. In design, the same five
You constantly have to reevaluate the information general sub activities are done, but they have differ-
you currently have against new information to deter- ent definitions.
mine if adjustments to the current mental model
1. Identification-Design is the act of mapping
are necessary.
how logical requirements will work in the
A second point about the nonlinear aspect is that
target computer environment. This means
specification and implementation are never really
that we identify the system design structure
separated completely in your thinking process. In
(if not already decided). The system structure
systems analysis class you usually learn not to think
is the underlying design approach. Possible
about the language or implementation environment
approaches include the following:
while you are performing analysis. You are told only
to think about functional requirements. You must • Batch, on-line (portions of complete), or
think of the implementation environment periodi- real-time
cally in the real-world, however, because some • Which functions are connected and how
desired function might not be able to be done (or ... how the application will work in the
done easily) in the planned environment. When production environment
206 PART III Analysis and Design
Identification Find the focal things that are in the Refine the system concept and apply it
application. This includes, but is not to the functional requirements. Identify
limited to, entities, objects, relationships, any compromises of requirements that
functions, constraints, data elements, might be necessary to work around
control, legal requirements, etc. implementation environment limitations.
Define the general standards and rules for
the implementation environment to which
all remaining work must adhere.
Elaboration Define the functional details of each For each function, map the function to the
thing identified. Users provide hardware and software environment.
definitions for all terms and describe Identify reusable modules. Finalize details
all procedures, formulae, and pro- of message processing and intermodule
cessing. This elaboration is inde- communications.
pendent of hardware, software, or
location.
Synthesis Develop a unified view of the Develop a unified mapping of the appli-
application. Develop and document cation to the intended hardware and
a representation of the application. software environment. Determine geo-
Graphics, tables, and other techniques graphic and package locations for all data
are preferred representations. and processes. Graphics, tables, and other
techniques are preferred representations.
Review Review and walk-through the analysis Review and walk-through design compo-
with peers and project members. Walk- nents, test plan, conversion plan, and
through the analysis with users. Review DB design, with peers and project
and revise schedules and costs as members, program specifications
necessary. with the programmer and other peers, and
screenswith users. Review and revise
schedules and costs as necessary.
Document Develop 'final' forms of graphics and Develop 'final' forms of graphics and
supporting text for all analysis activities. supporting text for all design activities.
• General user interface as menu-driven, and mapped to hardware and software within
windows-icons-menus-pointers (WIMP), the system design structure. Questions re-
command-driven late to:
• Mode of operation, that is, is user an ex-
How should the database be designed to
pert, novice, or somewhere in between
provide, for instance, the best possible
2. Elaboration-Each requirement from the response time with the greatest
analysis phase is expanded into greater detail efficiency?
Application Development as a Translation Activity 207
a memo to Blake, He never signed-off on the In the end, the application was put into
change, but verbally agreed again, The ap- production with only one run through the fin-
plication was three weeks late when every- ishing plant per work order, Reworks were
one at Carter exploded, Suddenly, no one assigned a new number and tracked as if
remembered that the application would be it were the first time through the process,
late, No one remembered being warned that The costly change and insufficient whistle-
this one, small change would cause so many blowing by the project manager led to un-
problems, Maria was to blame for a poor de- happy clients, overworked project team
sign that could not be made to work, Crater members, and a less than optimal applica-
now said that he 'requested' the change but tion, Could they have been avoided? Prob-
that it was not absolutely 'necessary,' Blake ably not, The client should have been made
forgot the conversations, memo, and ap- to realize the magnitude of the change, how-
provals. Dare was furious because his special ever. Maria and Charlie should have been
project was now overbudget and late, more insistent on a detailed review of the
When the written memo and other docu- request and sign-offs for this major change,
mentation from the meetings held at the time
How should programs be packaged to fulfill in the design and that processing is within
processing constraints? Examples might the prescribed limits.
be to provide five-second response time;
to provide completion of reporting within 3. Synthesis-Build a unified physical design
a three-hour period daily; or to provide of the application, reconciling any parts that
24-hour access to information that is up- do not fit and representing requirements in
to-the-minute. more detail. We may add functions to the
Other elaboration activities to be decided application that are environment specific. For
include common routines for commonly instance, in a mainframe IMS database envi-
used processes. For instance, how will ronment, applications require user views,
screen processing be performed? Will data base definitions (DBDs), data control
each programmer write his or her own blocks (DeBs), and data service blocks
version of screen interface or will there be (DSBs). These control blocks are not re-
common modules for screen interactions? quired if using dBase IV on a Pc. The repre-
The scope and details of system 'utility' sentation can be either manual (i.e., on paper)
programs to be used by all programmers or automated, using computer-based tools.
are defined. 4. Review-Perform quality control. At the end
The last major elaboration activity is to of the phase, conduct a design walk-through,
examine the application constraints. We comparing design to logical requirements to
ensure that each constraint is considered validate completeness and correctness. Rean-
Organizational and Automated Support 209
alyze schedule and staffing for coming stages methodology and implementation environment. For
of implementation, testing, conversion, train- instance, data information required differs if we use
ing, and turnover, revising them as required. dBASE IV 2 or if we use IMS DB/DC. 3 Level of
5. Document-Create useful program specifi- requirements detail differs if we use the Focus 4 lan-
cations and an overall design document. The guage or if we use C-Ianguage. 5 Where possible, we
design document describes the database, point out specific instances of these linkages.
application structure, constraints, and so on. You, as the SE, must constantly check your men-
Graphics and supporting text document the tal model of functional requirements when building
design. The program/module specifications a mental model of how they will be implemented. Do
include the details of processing, all inter- not be afraid to try different ways of thinking. Fre-
face designs, and any specific information quently the old way was not too good. We get
required to develop the program. trapped in our thought processes and don't even
remember to do the out of the box thinking6 that is
As in analysis, these activities vary by methodol-
necessary for innovative designs.
ogy because the ending point of analysis, which pro-
Before we discuss methodologies, some organi-
vides the input to design, is different. However, the
zation and automated supports that facilitate ap-
intention of all methodologies is to define the appli-
plication development regardless of methodology
cation such that programming and implementation
are discussed.
can be started after the design is complete. Program/
module specifications, in some form, are the desired
output of the design phase.
ORGANIZATIONAL _ _ __
Keep in mind that even though we discuss design
as a straightforward mapping of 'what' to 'how,' it is AND AUTOMATED _ _ __
not a one-to-one mapping. You might need to com- SUPPORT _ _ _ _ _ _ _ __
promise analysis requirements during design. Com-
promise of requirements means that they may be Organizational innovations that are useful with
rescoped, manipulated, dropped, or otherwise all methodologies are joint user-IS application
changed to fit the environment's limitations. development activities, user managed application
Prototyping is an important activity in design to
minimize the amount of requirements compromise 2 dBASE IV is a trademark product of Ashton-Tate, Inc.
that takes place. Especially when you use a package
3 IMS DB/DC is a trademarked mainframe product of the IBM
or language for the first time, prototyping should be Corporation. IMS, Information Management System, is a
used because prototypes frequently find the lan- hierarchic database product. DB stands for database; DC
guage's limits. You must verify that the application abbreviates data communications.
structure and concept can be implemented using the 4 Focus is a trademarked database, query, application generator,
software as planned. Frequently in a PC environ- expert system product of Information Builders, Inc. Focus is
ment, you will find you are bumping into language/ thought of as a 4th-generation language because of its power-
package limitations that cause you to rethink the ful query capabilities.
design. Vendors call this process 'work around.' You 5 C-language is a trademark product of Bell Labs; C++ is a
are finding a way to work around the built-in trademarked product of Borland International; and there are
limits of the language. Vendors will usually help find other versions of C-language.
a work around if the application cannot be built in 6 Out of the box thinking means to rethink the entire process as
known ways. They also challenge users to find work if the current methods, procedures, and policies did not exist.
Put yourself in the shoes of a caveman (or an intelligent child)
arounds and broadcast them to others who have sim-
who just walked into the company, and redesign the work as
ilar problems. they might. Question everything. For instance, who says you
The linkage between analysis, design, and pro- need to keep a copy of an order? What is the real, i.e., legal
gram design is looser or tighter depending on the requirement?
210 PART 111 Analysis and Design
development, structured walk-throughs, and data developers. However, these techniques do not sub-
administration. The goal of these organizational stitute for experience, good project management, or
innovations is to speed the development process, knowledge about the application! Even with user
foster user participation, and improve the quality involvement in analysis and design, application
of the resulting application. Automated support developers must develop knowledge and shared
for structured analysis and design comes from mental models of both the application and problem
computer-aided software engineering (CASE) tools. domain. One purpose of the joint sessions is to be
Each chapter will identify CASE tools that relate to sure of a common mental model for all participants.
the phase and activities. In this section we describe Requirements for a joint session relate to:
the characteristics of CASE tools and the ideal
CASE environment. • the team
• the session
• joint structured process
Joint Application Development • the meeting facility
• documentation tools.
Several techniques have been developed to describe
the joint, intensive definition of application require-
ments-Joint Requirements Planning (JRP) , The Team
Joint Application Design Development (JAD),7 The team is composed of client representatives,
and Fast-Track. 8 They are all similar in that the goal facilitator, systems representatives, and support per-
is a collaborative, user-IS definition of application sonnel (see Table III-4). The clients must include
requirements. The planning and execution of a joint decision makers at a high enough level to resolve
session are also similar. The differences are the level conflicts and make decisions that affect the scope
of participants, subject matter, and level of detail and content of the application. They must also be at
of the discussions. These are more fully described a low enough level to be conversant and able to
below. explain the daily functions and procedures. Finally,
JRP is an executive level user-IS activity to iden- clients must represent every functional area affected
tify overall requirements at the enterprise level. Fast- by the application. You must also keep the number of
Track and JAD both are designed to produce a client participants less than 15 and ideally between
functional requirements specification. If a JRP report three to four people. The more people, the longer
exists, the Fast-Track/JAD uses the JRP report as the process and the more difficult the decisions. Ide-
constraining or defining the business environment ally, the whole session team is about seven people.
within which the application is defined. Systems representatives should include the proj-
JRP, Fast-Track, and JAD activities are ect manager, an SE, and one to two analysts with
• designed to shorten the application develop- technical expertise. The systems representatives
ment process must be able to assess feasibility of requested
• productivity tools requirements and the expected complexity of imple-
• structured to improve the quality of the appli- menting the requirements in the target environment.
cation development deliverables. The main role of the system representatives is to
learn the problem domain area during the sessions
These characteristics of the joint development and ensure accurate problem restatement in sys-
activities can also provide opposite results if the ses- tem terms.
sions do not adhere to the guidelines defined by their The facilitator is a specially trained individual
who runs the session. The facilitator has several
roles:
7 JRP and JAD are design techniques of the IBM Corporation.
8 Fast-Track is a design technique of the Boeing Computer • Elicit information from participants
Company. • Keep the meetings moving
Organizational and Automated Support 211
Keep the discussion from becoming monopo- The facilitator must recognize such situations and
lized by one individual defuse them. Occasionally, defusing means asking
Identify and resolve conflicts for a participant to be replaced.
Keep the meeting on a business (rather than The facilitator is a cheerleader, meeting leader,
personal) level. and ring leader who keeps the session moving. Usu-
ally facilitators are senior staff from the information
Frequently in joint sessions, organizational dis- systems organization who already know how to de-
agreements on goals and objectives arise. Such con- velop application requirements, but who are specifi-
flict is to be expected and is normal. The facilitator's cally trained to facilitate joint user-IS sessions.
job is to identify and ensure resolution of disagree- Finally, support personnel are individuals who
ments during the sessions. The conflicts are poten- take notes during the day and provide liaison with
tially explosive and can lead to personal conflicts. the outside world. The notes include data-related
212 PART III Analysis and Design
information and process-related information. Data ment processing. The orientation discusses the ex-
information includes identification, naming and pectations of the organization and normal results of
definitions of entities, elements, and entity relation- such sessions. Then participants are given an
ships. Process information includes decision ration- overview of the joint structured process: what it is,
ales, process identification, procedural details of how it is conducted, proper behavior, and decision-
processes, and policies that constrain processes. The making necessity. The scope and purpose of the
actual results of the data and process discussions are application are discussed and agreed upon again by
reflected around the room (see the photo in Figure all participants. If there is disagreement or problems
111-2) on flip-charts, blackboards, and other visual with the scope, they are revised at this meeting so
aids that are always accessible to the entire group. everyone has a shared understanding of what work
A second kind of support is administrative assis- functions and information are in, and what are not in,
tance, which includes documenting the information the application.
during evening sessions, coordinating coffee and If data flow diagrams are the graphical technique
meals, and ferrying messages to and from work for being used, for example, the users are trained to
participants. develop a context diagram and first-cut data flow
diagram of their current job. The list of tasks for
Preparation data flow diagrams would include the following
activities:
A meeting to prepare session attendees should be
held for all participants. The primary purpose is to • Define the scope and functions of your
give participants a list of tasks to complete before position
they attend the joint session and to train participants • Document the 'what is' in a data flow diagram
in the completion of the tasks. • Try to draw a context diagram of all the
The meeting includes an orientation, document departments, groups, and applications with
examples, data requirements, and training in devel- whom you exchange information in your job
opment of graphical techniques being used to docu- • Define all data used in your job
• Collect statistics-how often, how much, Application constraints are a second type
when-for all data and processes of general requirement. Constraints place lim-
• Collect samples of all input and output its on the application. For instance, upper
documents. bounds of cost and time are allocated for de-
velopment, hardware, software, language, or
Frequently these sessions are taught by an in- DBMS. These constraints are general, but
house facilitator, but they may be taught by a con- they place strict boundaries on how the appli-
sultant who knows the techniques. cation will be designed. They also identify, to
the technical staff, activities that need to be
further elaborated during the detailed design
The Joint Structured Process
to accommodate the implementation environ-
The ideal joint user-IS session is full-time, off-site, ment. Constraints from the first chapter dis-
lasts three to five days, and has five to nine partici- cussion also apply. They include time, pre-
pants. All of these ideal characteristics can be loos- and postrequisites, structural, control, and in-
ened somewhat and still maintain the momentum ferential constraints.
that comes from intensive work sessions. The idea • Identify the likelihood of requirements change
is to do the work intensively and quickly because over the next three to five years. If require-
no one has time to spend in months of meetings. Par- ments are identified as changing within the
ticipants become very close and frequently become expected implementation time of the project,
good friends as a result of working together. At best, then the expected requirements become the
the users and IS team realize they are business part- current requirements for the application.
ners in the application development and that rela- For instance, users ma~' currently need data
tionship prevails throughout the project's life. up to the close of business yesterday. They
Joint sessions are divided into mainly daytime discuss the industry as moving rapidly toward
and nighttime sessions. The word mainly is used instant access of up-to-the-minute informa-
because the activities can be done at any time. In tion and expect this requirement within 12-
general, daytime, when people are most alert, is 18 months, and the application will be imple-
devoted to creating new information; evening is mented in 12 months. Build the new require-
devoted to documenting the new information. ment into the application now to be an early
During the day, activities are the following: leader and avoid costly redevelopment of the
new application .
• Confirm business functions • Have the support staff record all processes,
• Identify and analyze specific requirements functions, data, outputs, data elements, terms
(processes by function, inputs and outputs for of processing, names given to items, and
each process). For each process, identify what so on.
is done, how frequently, exception and error
processing, periodic processing, problems Figure 111-3 shows the first-cut data flow diagram
with current procedures, policies that might developed by an accountant in a major company
need to be changed, and any new business for a JAD/Fast-Track session. The user, after one
requirements relating to the processes. training session, developed a DFD that was about
• Identify general requirements for the applica- 90% correct. Figures 111-4 and 111-5 show the related
tion. For data, how accessible and accurate Level 0 and Levell diagrams, respectively, from
does the information need to be? Can it be the JAD which had minor changes during IS design.
accurate as of close of business yesterday or Figure 111-6 shows the DFD level 2 as decom-
must it be up to the minute? Can answers take posed by the project team during design. Only one of
one or two hours, or must the answer be the processes changed: General Ledger was elabo-
within seconds? rated to be Accounts Receivable and Accounts
214 PART III Analysis and Design
Accounts .-
Expenses
Payable
j
r
. Financial
Reporting
I
Purchases
1
Inventory
Accounts
Receivable - Sales i
FIGURE 111-3 User-Developed First-Cut DFD
Payable. The other changes were to files and external The Meeting Facility
entities.
The location should be at least 20 miles from the
The evening sessions do the following:
main work site of the participants to minimize inter-
Define all elements and terms ruptions and preclude people being pulled out of the
Document all processes sessions. The facility should provide above average
Draw formal DFDs meeting, sleeping, and eating arrangements in the
Document general application requirements same building. Phone access must be available but
and write an executive summary must be removed from the meeting room(s). The
Review documentation output of other mini- facility must provide computer accessibility. The
teams. location must be easily accessible for managers, who
are not participants, to attend sessions for resolving
The group works together during the day to create
conflicts. The facility must allow use of walls in the
information. In the evening, the group splits into
meeting room. The room should be equipped with
mini-teams to perform one of the above activities.
flip-charts, overhead projector, markers, slide pro-
Documentation should be done using automated
jector, and other meeting equipment as needed.
tools, including word processors, CASE tools, or
other automated support tools that might be avail-
able. The goal is easily modifiable documents that
Documentation Tools
can be formatted and printed. Documentation tools should include some word pro-
When the mini-teams complete their work, they cessing capability, dictionary support, and some
jointly review each others' work products. This graphical form support. All of these should ideally
review fosters the shared common view of the be in a computer-aided software engineering
application and ends the participants' day with each (CASE) tool. The CASE tool should allow cus-
having a clear sense of what was accomplished. tomized reports of the information and should
Organizational and Automated Support 215
2.0
FIGURE 111-4 JAD Team First-Cut and IS Final DFD Summary Level 0
Stock
Reports
Consignment I - - - - . J
Areas
Controllers 1 4 - - - - l
Cost of
Sales Rpt.
Std. Cost
Report Blending Factor File
C1 4.3.3
Cost Record Inventory File
System Rates!
Blends Rev.lnv.
Computer Rates
provide some intelligence on checking and cross- A graphical drawing tool is the third type of soft-
checking both completeness and accuracy of the ware needed. The tool should allow the type of
information entered. drawing you are using with your methodology. An
At a minimum, word processing should be pro- automated graphical tool is preferred to manual
vided via some tool such as WordPerfect,9 Word drawing because automated drawings are more eas-
Star,lO MS Word,l1 and so on that allows graphics to ily changed and maintained. The joint groups fre-
be imbedded in text, creates tables easily, and does quently do several iterations of a drawing before
full text manipulation. they are satisfied with the result.
An active data dictionary is desirable for docu- To summarize, joint user-IS sessions are a way
menting the objects (e.g., entities, files, flows, to obtain quick results with a high degree of user par-
objects) and object relationships defined during the ticipation in the development of requirements plans
sessions. An active dictionary is one that allows cus- and application requirements. Joint sessions are
tom report development, provides intelligent assess- intensive and require high commitment from partici-
ment of completeness, and identifies potential pants. The rewards are a user-centered requirements
duplicates based on name and definition. If a passive document that frequently leads to more satisfied
dictionary (i.e., has only vendor reports and no users and high user involvement throughout project
intelligence) is an option, you are better off using a development.
word processor to document the information.
User-Managed Application
9 WordPerfect is a trademark of WordPerfect, Inc. Development
10 Word Star is a trademark of Word Star, Inc. Joint sessions are designed to bring users and IS per-
11 MS Word is a trademark of Microsoft, Inc. sonnel together with the underlying understanding
Organizational and Automated Support 217
that users will always know more about their jobs Structured Walk-Throughs
than IS people. Joint sessions foster commitment to
the IS development effort and give users a sense of Have you ever had a program bug that you spent
participation. The user aspects of application devel- hours trying to locate? You give up in frustration and
opment should not stop there. A user manager tum to a friend for help. The friend takes a sideways
should be appointed for the application and should glance and says, "Oh yeah, this period is out of
be the person ultimately responsible for the success- place." Just like that, your hours have been a waste.
ful completion of both the application software That type of easily seen error is not a fluke. Your
and the organizational changes that accompany a friend is not necessarily a genius, just as you are not
new application. necessarily stupid for not finding the error. The phe-
The need for user-centered design seems obvious. nomenon at work is that you are too close to the
User-managed applications foster a sense of busi- problem to see the 'big picture.' At some point, we
ness partnership; IS-managed applications foster a all reach this stage regardless of where on a project
sense of them-and-us. User-managed applications we work. Walk-throughs were designed to formal-
provide a regular, natural communications line ize the 'friendly review' described above.
between the technicians and users; IS-managed A walk-through is a semiformal presentation of
applications provide a way for IS people to only talk some work product for the sole purpose of finding
among themselves. User-managed applications tend errors. Work products might include all or part of
to require less IS involvement in application train- the following:
ing, because users do their own training; IS training
• Functional requirements specification
is notoriously condescending, inappropriate, and
• Project plan
ireffective. Users 'own' the application and train
• Design specification
their own staffs.
• Logical or physical database design
Not all is rosy with user managed applications.
• Program specification(s)
If the IS project manager is not used to working
• Program code
for a user, she or he will have to adjust some aspects
• Test plan
of work. For instance, conversations will use busi-
• Test design.
ness terms rather than technical terms. Variances in
time and budget will require explanation and This list is not complete. Its purpose is to give
discussion. Rather than running the whole show, you an idea of the range of items that can be the sub-
the project manager is clear~y relegated to a support- ject of a walk-through. Virtually any work product,
ing roll and only manages the actual software or piece of a work product, can be reviewed using
development. the walk-through technique.
User-managed development can also be sub- Ideally, a walk-through should not be scheduled
verted by un supportive IS personnel. For instance, for more than two hours at a time. If more time is
user teams can meet to develop functional reqllire- needed, then additional walk-throughs are sched-
ments, but IS teams may not use them. IS groups uled. Like all rules of thumb, this one is frequently
have been notorious in ignoring user requirements. broken. Participants who do not work on the devel-
The comment heard is, "They Can tell me anything, opment team sometimes have a difficult time
I'll give them what I want." The attitude is that mere walking-through application requirements in bursts.
users could never define as good a system as an IS When they focus on the application, they like to see
person. How someone who does not know the busi- everything at once. So, occasionally you might have
ness could make such a statement defies logic, but it a marathon session that runs a whole day.
is made. IS developers frequently need indoctrina- Walk-throughs are formalized in that there is
tion that the business partnership aspect of applica- preparation, a team with members having different
tion development does extend to the users. responsibilities, and a process. Preparation for the
218 PART III Analysis and Design
session is as follows: The team is identified and less than 10 errors, only one walk-through would
approved by an SE or project manager. The day, be needed.
place, and time are agreed upon. A memo of meeting
details is sent to all participants several days in
advance. Attached to the memo is the work product
Data Administration
to be reviewed. Data administration is the management of data to
All participants are expected to review the work support and foster data sharing across multiple divi-
product, annotating questions and potential errors in sions' and to facilitate the development of database
the margins. They must come to the session already applications. The principle activity for the organiza-
having some understanding of the work product. tion is the development of a data architecture
Participants in a session include the facilitator, which depicts the structure and relationships of
work producer, one or two peers who are on the major data entities, such as customer, vendors, and
same project, one or two outsiders, and a scribe. Ide- orders. A data architecture is similar to the frame of
ally, the number of participants is between five and a building. Once the frame is constructed, the siding
seven. The facilitator is much like a lAD facilita- and fa~ade are added. The frame provides the skele-
tor. He or she keeps the meeting moving, makes sure ton to which the other substructures, such as electri-
no personal or blaming remarks are allowed, and cal wiring and plumbing, are added. In information
maintains focus on the work product. systems, the data architecture defines automated and
The producer presents his or her work. First, an nonautomated data and how they are used in the
overview focuses attention on the purpose of the organization. The architecture provides a 'frame' for
product. Then, the work is reviewed in a page-by- defining new applications and documents all data
page or line-by-line manner following the logic of uses and responsibilities for existing applications.
the document. The peers and outsiders are there to The other major organization level activity is
question the correctness, completeness, efficiency, defining, with users, data that is 'mission critical' for
and effectiveness of the product. Questions, com- the organization. Critical data is defined as that data
ments, or errors are discussed as the presentation is required to maintain the organization as a going con-
made. When an issue is raised and appears legiti- cern. As such, critical data is subject to management
mate, the scribe notes the problem and its location and standards through the data administration func-
(see Table 111-5). tion. Noncritical data is data that, while useful, is not
Possible 'outsiders' who might attend a walk- required to maintain the organization in event of a
through include representatives from auditing, qual- disaster. Noncritical data does not require the same
ity assurance, operations, or other project teams who degree of management as critical data.
need to approve or work with the final product. At a more detailed level, data administrators
After the session, the scribe types the notes and develop, administer, and maintain policies and stan-
presents a memo to the author for resolution. The dards regarding data definition, sharing, acquisition,
author then responds to each item (see Figure 111-7). integrity, and security for the corporation's data
If an item is an error, the response details how and resource. Data administration provides guidance to
when it was fixed. If the item is an efficiency or project teams on storage, access, use, disposition,
effectiveness issue, the response describes what and standardization of data. Data administrators are
research was done and the resolution. Depending on responsible for maintaining corporate definitions in
the extent of problems or the importance of the prod- addition to the creation and maintenance of the data
uct, another walk-through might be held. Usually, if architecture representing the enterprise.
the products are for analysis or design, two or three Historically, the motivation for data administra-
walk -throughs are held. If the product relates to pro- tion relates to a maturing organization. When DBMS
gram or test design, then the number of walk- software was installed in most organizations, a data-
throughs is determined by the number of errors. With base administration (DBA) group was created to
Organizational and Automated Support 219
Consolidated NY Bank
InterOffice Memo
The following table includes all errors found during the Requirements Walk-Through on December 1 (see H. Hines, Scribe
memo of 1212). Each item has either been resolved or found not to be an error as indicated. One item, #5, identified an
audit problem for which I am awaiting Audit Dept. resolution. They are supposed to respond by next Friday, December 11.
Since we decided not to have another walk-through, I will proceed with finalizing the analysis phase.
Error
Error # Page Description Resolution
2 10 System access code design not clear. The lack of clarity was deliberate to prevent general
access to security procedures. The group felt that the
document should contain all of the information.
maintain and monitor the DBMS' use. There was no across organization boundaries was desirable. The
necessity for other data-related organizations be- need to share data frequently accompanies the real-
cause applications, for the most part, were isolated ization that individual division and work groups
from one another and data sharing across organiza- have their own vocabulary which often overlaps or
tional boundaries was low. Most industry followed conflicts with the vocabulary and terms used by
this pattern of development. other work groups. When divisions automate data,
In the normal process of maturation, companies they incorporate local rules, policy, and definitions
realized that sharing and consolidation of databases in their applications. Data, while having the same
Organizational and Automated Support 221
name, then, may have several different meanings, application-using previously defined data
uses, formats, and connotations across an organiza- items-identify data required and obtain
tion. Conversely, data may have different names but access to already automated data. The data
the same definitions. This lack of consensus about design and documentation phases are short-
terminology and data characterizes pre data admin- ened. Edit routines are reused, just like the
istration organizations. data definitions, and ultimately the cost of
The lack of consensus about data definitions leads program code is reduced.
to the realization that data standards pertaining to 3. Data administration leads to faster response
definitions, usage, ownership, security, access, and to changing business conditions. The devel-
maintenance are not only desirable, but mandatory, opment of applications to support new prod-
in large-scale development of shared databases. This ucts, for instance, can be speeded due to fully
need for standardization increases with the recogni- specified definition of data required to sup-
tion of data as a shared resource of the organization. port a product.
A formal data administration function is needed 4. Data administration provides a means for
to define and manage data company-wide. Data deciding what data must be controlled as part
administration requires recognition and commitment of the corporate data resource, and what data
to the notion that data is a resource of the corpora- can be user-owned and controlled (including
tion. As a critical corporate resource, data requires data that is off-loaded to PCs and LANs).
the same careful planning and on-going management 5. Data administration maintains definitions of
as cash on hand, office equipment, or personnel. all data in the corporation regardless of hard-
Commitment to DA is sometimes difficult to ware platform or criticality. The central
develop because data are fundamentally different repository for this information, then,
than other resources. Data are abstract and nonphys- becomes the focal point of data-related
ical, do not decay, and are easily replicated as the activities.
need arises. They are also subject to different confi- 6. By fostering data sharing, the cost of creat-
dentiality, accuracy, and access requirements. Data ing, sorting, updating, and backing up multi-
are all of these things. In service industries, espe- ple copies of the same data items is reduced,
cially, information is a primary product, and the if not eliminated. That is, we only introduce
quality of the data resource directly affects the com- planned data redundancy. Just as DBMSs
pany's bottom line and how customers perceive the allow us to minimize intraapplication data
quality of service delivered. Data administration redundancy, DA allows us to minimize inter-
consolidates information across the organization to application data redundancy.
simplify the development of applications to service
In summary, the creation of data administration is
customers.
recommended to guarantee minimal redundancy,
Benefits of data administration outweigh the frus-
shared understanding of data item definitions, and a
trations and difficulties of establishing the function.
managed approach to providing for future data-
Some of the benefits include:
base environments. Data administration should not
1. Creating and documenting a data architecture be confused with DBA data management which
leads to formal recognition and agreement of includes physical DB design, disk space alloca-
business rules and relationships which are tion, and day-to-day operations support for actual
inherent in the data. This agreement im- databases.
proves communications and understanding Data administration has numerous interfaces both
of corporate data. within and outside of the IS area. Therefore, data
2. By defining and documenting data only once, administration interfaces occur at all levels of all
efficiencies are realized throughout the sys- divisions specifically to perform user liaison and
tem development life cycle. All subsequent application liaison.
222 PART III Analysis and Design
Graphic
Processing
Tool
Human Repository
Interface Manager Repository
Text
Processing
Tool
Intelligent
Analytical
Software
and a human interface (see Figure III-8). A reposi- and is the author's own invention. 12 No commer-
tory is an active data dictionary that supports the cially available products and no research prototypes
definition of different types of objects and the rela- are known to embody this ideal.
tionships between those objects. Graphic drawing The ideal CASE should provide complete auto-
tools support the development of diagram types and mated support for the entire project life cycle, begin-
evaluates the completeness of the diagram based on ning with enterprise level analysis and working
predefined rules. Text software allows definition of through to maintenance and retirement. The ideal
names, contents, and details of items in the reposi- CASE then becomes the focal point for all work that
tory. The interface software is the interpreter which takes place in software engineering, and the work
determines the form the data should take (either of the SE concentrates on the logical aspects of
graphic or text). Evaluative software is the intelli- design. The ideal CASE tool would provide for the
gence in CASE. Evaluative software analyzes the technical, data, and process architectures of the
entries for a diagram or repository entry and deter- organization, project planning and monitoring,
mines if they are lexically complete (i.e., conforms
to the definition of the item type), and if they are 12 The ideal CASE in this section is partially the result of re-
compatible with other existing objects in the appli- search done with Judy Wynekoop, UT San Antonio and
Nancy Russo, U of Northern Illinois, published in
cation. The human interface provides screens and
Wynekoop and Conger [1991], Conger [1989], Conger and
reports for interactive and off-line processing. Russo [1990]. It also results from 10 years offrustration in
In this section, we discuss the characteristics of using CASE tools and waiting for vendors and researchers to
the ideal CASE environment. This is just an ideal build decent products.
224 PART III Analysis and Design
group work on applications, application and manual a DFD, I should be allowed to change the defaults
procedure definition, normalization of data, DB to use my terms and formats.
schema generation, generation of bug-free code in a Alternate forms of inputs should be reflected
user-selected language, automatic testing of gener- throughout the diagram sets. This means that if a
ated code against the application logic, and intelli- user enters entities and attributes in a repository,
gent assessment of completeness and correction when she or he moves to developing a graphical
along the way. Really advanced CASE would rec- entity-relationship diagram, the information in the
ognize components already in the repository for repository should be reflected on the diagram.
reusability of analyses, designs, and code. Intelligence of the CASE product includes analy-
The repository of CASE determines both what is sis within and between both diagram types and
supported and, to some extent, how much support repository entries. Ideally, application A's require-
can be provided. The repository is something of a ment that conflicts with enterprise goal Z, should be
super dictionary that captures and maintains meta- flagged for management consideration.
data. Meta-data is information about data (see Chap- The ideal CASE should allow users to separate
ter 1). For example, a data element in an application and integrate different applications easily. For
is data, and its attributes constitute the meta-data that instance, the company may want to document
would be stored in the dictionary. Attributes of an already operational applications and begin to man-
element include, for instance, data type, size, vol- age them electronically. Users defining a new appli-
ume, frequency of change, and edit criteria. A CASE cation may want to integrate it with an old
repository acts as the DBMS for the engineering application. They should be allowed to create an
effort, provides the capability for expanded meta- integrated third definition that highlights the over-
data capture, and maintains all components and their laps, redundancies, inconsistencies, and other prob-
interrelationships. lems that the integrated pair have.
The ideal repository should allow customizing of According to the 40-20-40 rule of systems devel-
the methodology supported and enforcement soft- opment, 40% of project time is used for analysis and
ware that can evaluate the correctness of user- design, 20% is devoted to programming, and a full
defined repository entries. To do this requires some 40% is devoted to testing. 13 The current direction of
decoupling of the repository from a specific method- vendors is to eliminate code, thereby cutting 20% off
ology and an abstracting of methodology compli- development time. But, the ideal CASE would cut
ance rules within the repository. These are not trivial the 40% devoted to testing as well. The urgency for
tasks! This decoupling would allow organizations CASE testing tools is low relative to other current
to adopt and use the components of methodologies concerns (like getting the products to work bug-
that work for them, and ignore those that don't. The free). At some point in the 1990s, vendors will
initial sacrifice for this capability will be less intelli- begin to provide testing support in their CASE
gence. But, decoupling the intelligence from a spe- environments. Ideally, such support will include
cific methodology and type of repository entry will black- and white-box tests with human intervention
also allow customizing of evaluation software and allowed but not required. Black-box testing is for
enforcement of local rules. correctness of output based on inputs; white-box
Intelligence in CASE comes in two major forms: testing is for specific logic paths in a program.
intelligence of the interface and intelligence of the Intelligent software will analyze the type of process
CASE product itself. The interface should provide and determine the most appropriate testing strategy.
both novice and expert modes of operation. It should Additional intelligent software will develop test data
allow work to be saved and restarted as part of the based on logical requirements, conduct the tests, and
functionality. The tool should be customizable by maintain test results. Test results will be integrated
individual users. For instance, if I want yellow print
on a blue background, and I call a data flow diagram 13 Pressman [1987].
References 225
across test runs, phases of testing, versions of the tional supports described in this chapter included
software, and even hardware platform environments. joint requirements definition, joint application
When bugs are found, backtracking to find its design, user-managed application development, data
source, possibly across modules, will be provided. administration, and walk-throughs.
Since the software built the bugs, it should be able to Software support that most facilitates application
fix them; but, if the source is a logical, human speci- development is computer-aided software engineer-
fication, notice to the SEs will require correction of ing (CASE). The ideal CASE environment has both
the errors. expert and novice modes, can be customized for
Future products will eventually tackle the hybrid methodology use, and provides many addi-
remaining 40% of project time by providing intelli- tional intelligent functions beyond analyzing com-
gence to identify reusable components of applica- pleteness of work. Future environments will identify
tions. Reusability of designs will have the most reusable components of previous work to further
payback but is also the most difficult. Initially, reduce application development time.
reusable code modules will be enabled, then reusable The next six chapters discuss the analysis and
designs, and finally, reusable logical analyses. Code design phases using the following example meth-
reusability recognition should be available in CASE odologies:
tools by the mid-1990s; the others will take until the
Process-Structured Analysis (Chapter 7) and
tum of the century to surface.
Design (Chapter 8)
This description of ideal CASE characteristics
Data-Information Engineering-Business
concentrates on what CASE should do rather than on
Area Analysis (Chapter 9) and Business Sys-
what it currently does. For that, we discuss CASE
tem Design (Chapter 10)
as it supports each methodology and phase of
Object-abject-Oriented Analysis (Chapter 11)
development in the coming chapters. Although
and Object-Oriented Design (Chapter 12).
CASE and artificial intelligence (AI) are both in their
infancy, the developments described above are cur- Chapter 13 summarizes and compares the meth-
rently feasible with current state-of-the-art technolo- odologies and their CASE support. Chapter 14 dis-
gies. The CASE repository will become the hub for cusses forgotten activities of systems analysis and
all of the work that takes place in IS organizations. design.
The limits to CASE intelligence that can be built are
only due to human limitations.
REFERENCES ____________
Blum, B., Software Engineering: A Holistic View. NY:
Oxford University Press, 1992.
SUMMARY Conger, S., "The active dictionary in a CASE environ-
----------------
In this section preview, we identified the major ac-
tivities of analysis and design. Analysis identifies
ment," Data Base Management, #25-01-20, NY:
Auerbach Publishers, 1989, pp. 1-12.
what the application will do; design describes how Conger, S., and N. Russo, "A Taxonomy of Applications:
the application will work in production. Both analy- A Framework for Selecting and Designing Method-
ologies," Georgia State University Working Paper
sis and design have the same five generic activities:
#90-0201, 1990.
identification, elaboration, synthesis, review, and
Couger, J. D., M. A. Colter, and R. W. Knapp, Advanced
documentation. These activities are constrained and System Development/Feasibility Techniques. NY: John
guided by a methodology. Each methodology takes a Wiley & Sons, 1982.
different perspective of an application leading to dif- McClure, c., CASE is Software Automation. Englewood
ferent phase-end results. Cliffs, NJ: Prentice-Hall, 1989.
The organizational supports facilitate application McMenamin, S. M., and J. F. Palmer, Essential Systems
development regardless of methodology. Organiza- Analysis. NY: Yourdon, Inc., 1984.
226 PART III Analysis and Design
ORIENTED
ANALYSIS -------------------------,--------------
-----------------------------------------
INTRODUCTION _ _ _ __ that transform application data. Therefore, we em-
phasize processes and the flows of data into and out
In this chapter, we review process-oriented analysis of those processes in structured analysis.
using structured analysis following DeMarco Structured analysis also is based on systems the-
[1979], Yourdon [1989], and McMenamin and ory which assumes inputs are fed into processes to
Palmer [1985]. Structured analysis was the first well- produce outputs. To complete the systems model
documented, and well-understood method of (see Figure 7-1), there must be some sort of feedback
describing application problems. While the tech- to eliminate system entropy, that is, to keep the sys-
niques have changed as our understanding and tem from 'running down.'
application types have changed, the techniques will To conceptually analyze complex systems as we
remain useful for many years to come. This mate- have in IS, pieces of a problem are analyzed in iso-
rial should be a review, and for that reason, you lation. We might look at inputs, outputs, and pro-
might want to skim or skip it altogether. You might cesses separately, then integrate them to produce a
rate your know ledge by tracing the development of unified system. As system processing gets more
the ABC Rental Processing case. If you understand complex, we study pieces of processes separately
and can reproduce the work, skip the chapter. then integrate them. The pieces of the processes
227
228 CHAPTER 7 Process-Oriented Analysis
External
Entity Name 1
Application Name
Incoming
Data Flow 2
External
Entity Name 2
describe Level 0 of the application. Each iteration define all of the functional details. At the primitive
is a deeper level of analysis to look into the pro- level, all files, flows, entities, and individual func-
cesses from the previous level, analyzing the sub- tions have been defined. There is no right level of
processes, their constituent data flows, and their data definition; level is usually related to the type of
stores. We link DFD levels through the process num- application and target implementation language. You
bering scheme (see Figure 7-4). For example, may do only two or three levels of decomposition for
process 1.0 from the level 0 diagram is decomposed a nonprocedural, fourth generation language; you
into processes 1.1, 1.2, 1.3, and so on to describe may do six or seven levels of decomposition for as-
the Levell DFD. In Figure 7-4 Process 1.0 is de- sembler or low level procedural languages (e.g.,
composed into two subprocesses. Notice that a new COBOL or Pascal).
file and an entity are other details added to the dia- The structured decomposition technique is a
gram. Levell DFDs may be further decomposed. To mechanism for coping with application complexity
continue the example, process 1.1 might be decom- through the principal of 'divide and conquer.' A
posed into processes 1.1.1, 1.1.2, 1.1.3, and so on, large, complex application problem is divided into
until we reach the primitive, basic level. The primi- its parts for individual analysis. Each part is further
tive level is the level of each process at which no fur- divided and individually analyzed. Complexity is
ther decomposition can be done without fracturing reduced by allowing us to analyze small parts of the
the function. In other words, the decompositions at problem in isolation. The difficulties in structured
each level fully define the function, but may not decomposition are in correctly identifying the
230 CHAPTER 7 Process-Oriented Analysis
Incoming
Data Flow 1
External
Entity Name 1
File
InpuVOutput
Data
1.0
File A
Get Input
Flow 1
Outgoing 2.0
Data Flow Inter-Process
Generate Flow 1
Results
3.0
Get Input
~----I Flow 2
Inter-Process
Incoming
Flow 2
Data Flow 2
External
Entity Name 2
isolated parts, and keeping the level of abstraction diagram set for their related higher level process.
consistent. When complete, processing is fully documented in
After each analysis, the current level of DFDs is a leveled set of DFDs.
balanced with the previous level. Balancing is the While a set of balanced DFDs is being created,
act of checking entities, data flows, and processes the secondary documentation is also being created.
across the levels of the diagram set. All entities and The secondary documentation includes creation of
data flows from the higher level processes must be in a data dictionary and optional graphics for real-time
every more detailed diagram. The names of entities applications called state-transition diagrams. The
and data flows must be consistent across the levels of data dictionary2 compiles detailed definitions for
the diagrams. We also balance processes. Lower each element in a DFD (see Figure 7-5 for contents
level processes 'explain' or provide the details of for each entry type). The dictionary entries for
higher level processes. Lower level processes are processes contain details of how to accomplish the
checked to be sure that they all relate to one, and
only one, of the processes named at the higher level.
They are then checked to be sure that they are in the 2 See DeMarco [1979] and Yourdon [1989].
Structured Systems Analysis Activities 231
External
Entity Name 1
\
\
\
~
1.1 I File A
Validate
and
Create
A Data Code Validation File
3.0
Get Input
1.2 _ _ _ _ -r- Flow 2
Generate _ - -
A Report I- - -
Output '\.
Boldface items show new information on
Report...-...;:a
"-_ _ _....... detailed, decomposed diagram that is
omitted on the higher level diagram. The
Entity dotted lines mirror the net inflows and
In outflows of the level 0 diagram. Process
Application 3.0 is only here to show the net outflow
connection.
process. For instance, a process description for order (and real-time) applications. A state-transition
creation might contain requirements for data entry, diagram shows the time ordering of processes and
customer validation, item validation, order printing, identifies relationships between processes. State-
and order filing. Since you get information on data transition diagrams are an integral part of object-
piecemeal throughout the analysis (and design), it is oriented analysis and are deferred until that
easiest to document what you know as you go along. discussion in Chapter 11.
Surfacing assumptions, misconceptions, and data
conflicts can be easier with this approach because the
dictionary is always up to date with information and STRUCTURED ___________
its source. If you collect pieces of paper and create
the dictionary late in the analysis phase, identifying SYSTEMS ANALYSIS _ __
the source of conflicting information can be difficult. ACTIVITIES _ _ _ _ _ __
Although not originally part of structured analy-
sis, state-transition diagrams are frequently used to The specific activities in structured systems analy-
supplement DFDs in structured analysis for on-line sis are:
232 CHAPTER 7 Process-Oriented Analysis
analyzing the new parts of the application to see how what are the ripple effects of the change through
they fit with what we already know. We have to the set of DFDs.
change our preconceptions based on the new infor-
Another analogy for structured analysis, as
mation, and alter our 'mental model' at all levels of
equally applicable as the photo zoom, is fr.om ge~l
detail to accommodate the new information. We may
ogy (see Figure 7 -7 3). If we are trying to dnll for 011,
go into great detail on a new aspect of the applica-
we might find a variety of different formations and
tion, ignoring the known aspects temporarily. Then,
even have different drilling results, depending on the
when we understand the new parts, we can go back
depth and angle. So, too, in structured analysis our
up to a high level of abstraction to document how the
results depend on our approach and the information
parts fit together.
we obtain from interviews and information gather-
Second, application analysis is iterative. We have
ing. The information differs for each user because
already discussed planned iterations to move to
their perspective of the problem, their job goals, and
lower levels of detail in documentation. We also
their personal aspirations all distort their view. We
reiterate through analysis when we find some unex-
require multiple approaches, multiple intervie~s
pected, unknown, or changed requirement to ensure
with both the same and different people, and multI-
that it fits what we already know. To decide that fit,
ple perspectives of analyzing the info~ation. Fi~ure
we must walk-through the entire process top to bot-
7 -6 shows unfocused probing. The pIeces and VIews
tom. Recall that a walk-through is a formal review
do not fit together. We know we are at the end of
of analysis, design, program code, test design, or
analysis when all users agree and all the disparate
some other component of application development
work. A walk-through can be used to determine
where the new requirement fits 3 This analogy is from Gary Moore, University of Calgary, who
what other processes, flows, stores, or entities originally used it to describe research in information systems.
are involved in the change It fits the application development context as well.
234 CHAPTER 7 Process-Oriented Analysis
Drilling Lines _
-.,.
Earth Surface
views fit together coherently. Recall that triangula- 1. Define the boundaries (i.e., scope) of the
tion is a data gathering technique comparing multi- application. Specifically, define what the
ple verifying sources of all information. The purpose application will do and what it will not do.
of triangulation is to ensure that our resulting view Draw the circle identifying the application
of an application accurately depicts the requirements and write the application name in the center.
of the work process it supports. So, we analyze top- 2. Using the application boundary as a starting
down, sideways-out, bottom-up, and do them all point, identify all external entities with which
more than once in the analysis process. the application must interact. For each entity,
Now, we turn to the discussion of how to draw one square on the diagram and label the
actually develop the documentation in structured square.
analysis. 3. For each entity, create a definition in the data
dictionary.
Develop Context Diagram 4. For each external entity, identify the specific
data flows that define the interface.
Rules for Developing Context Diagram 5. For each data flow, create a definition and list
of tentative contents in the data dictionary.
The context diagram summarizes the scope of the
project. The rules for developing the context dia- Scoping may take place before analysis actually
gram are listed below for easy reference. occurs and is usually part of the feasibility study as
Structured Systems Analysis Activities 235
The XYZ Annuity Company was developing a An organization to whom annuity and
new application to define the institutions pension product counseling is provided
which defined its customer base. The exercise (a counselor's definition)
was prompted partially by a lament from the A target audience for marketing and seil-
head of marketing who claimed, \\There are ing annuity products (a marketing
6,400,7,500, or 9,650 institutions, depending definition)
on who I ask and which application they are
The analyst then asked the senior manager
getting the numbers from. Can't I have one
in charge of institutional relations to please
number of institutions?"
define an institution. His response was a three-
A newly founded Data Administration
page, single-spaced memo that defined six
team decided that the first \\corporate" defi-
major variants and over 30 different situa-
nition they would tackle was institution. The
tional definitions for an institution.
data analyst assigned first asked appli-
Two important ideas here are, first, all of
cation developer colleagues, \\What is an
these definitions are correct, and second,
institution?"
each definition has some generally ac-
The replies were varied and generally,
cepted component. Definitions relate to per-
unsatisfactory:
spective. A systems person defines an
Anyone we do business with. institution in relation to the application's use
An organization we do business with. of the term. A user defines the term in rela-
Any legal entity we do business with. tion to their job's use of the term. The man-
A school, research and development ager tried to synthesize all perspectives and
institution, not-for-profit foundation, or highlighted the variation and divergence
other organization which is approved that had evolved throughout the organiza-
by the IRS to contract for annuity busi- tion. Third, all of these definitions have some
ness with XYZ Annuity. element that appears important to defining
An organization that has a plan defining a "institution. "
group of annuity contracts. When asked about the differences in the
definitions, one user said, \\Oh, yes, we know
Then the analyst asked the users, \\What is we don't all mean the same thing when we
an institution?" use the term institution. I even mean different
things depending on the topic."
Some organization that remits annuity Resolution of the differences took over six
payments (a remittance clerk's months of part-time work, resulted in the defi-
definition) nition of 20 new attributes of an institution,
An organization with a plan defining a and required the approval of 72 managers in
group of contracts (a accounting man- the process. Several applications under
ager's attempt at a generic development that were using an institu-
definition) tional billing code as the primary key identi-
An approved organization which mayor fier underwent substantial redefinition as a
may not have a contract plan (a mar- result of the development of a shared term,
keting definition) 'institution. '
Structured Systems Analysis Activities 237
Summary Context
Inflows Context
the application) are matched with output flows to the application, you might need two levels of context
same entity. For instance, customers place orders; diagrams (see Figure 7-9). One level summarizes
the application sends an invoice (and goods) back all entities with directed arrows that are unlabeled.
to the customer. Check for reciprocating input- The other level shows input flows on one diagram,
output flows such as these. When you identify single and output flows on the other diagram with labeled
flows to/from an entity, you want to double check by data flows on both diagrams.
asking, "How do I know they got this output?" or Data flows are information about some business
"Do I have to tell them I got this input?" As you event being tracked by the application. They do not
define each data flow, draw the directed arrow on the identify physical items. For example, an invoice is
context diagram, and label the flow. For a complex information about an order that would also have
238 CHAPTER 7 Process-Oriented Analysis
Accountant
..7
Customer
-:J ABC Rental
-
__
I------~
1 Processing Video
Vendor
14-------4
the customer information is entered and stored. After a data flow: rental request. After entering the infor-
phone number processing, the customer either gives mation into the computer system, the clerk needs to
the clerk the cardboard shell, or tells the clerk the provide some record with customer signature that
video name (see Chapter 2). This sentence identifies the rental took place. This record accounts for the
transaction and establishes customer liability for the
rental property. This information identifies a recipro-
cating outward flow to the customer: rental receipt.
Entity Name Customer
When the tape is returned, the charges are com-
Aliases None
puted based on the due date of the rental(s). This
Relationship Rents and Pays for Videos,
identifies another incoming data flow for a video
to Application Provides New Customer
Information, Returns Videos
return. So we have identified four data flows be-
None
tween the ABC Order processing application and
Contact
customers:
Entity Name Video Vendor
Aliases Vendor • New Customer to store customer information
Relationship Provides New Videos
• Rental request (analogous to placing an order)
to Application from the customer to create a video rental and
Contact None payments
• Rental Receipt from the application to confirm
Entity Name Accountant the rental
Aliases None • Video Return to determine late charges, if any,
Relationship Part-time employee receives and payment due.
to Application end-ot-day reports
Contact None
For these four flows, there are four arrows be-
tween customer and ABC Rental Processing. Three
arrows are from customer for new customers, rental
FIGURE 7-12 ABC Rental Processing Data requests, and returns. One arrow is to customer for
Definitions for External Entities the rental receipt.
240 CHAPTER 7 Process-Oriented Analysis
Accountant
End of Day
Rental Summary
New Customer ..
The data flow relating to vendors is somewhat Novice analysts frequently have trouble differ-
obscure, but is identified by the need to enter new entiating between the thing, and information about
video information. Since new video information the thing. Keep in mind that what we document on
comes from somewhere, its source must be identified DFDs is always information about the thing. So,
as the entity. There is one data flow from vendor to when we name a data flow 'Video Rental' we really
ABC Rental Processing for video information. mean information about 'Video Rental.' That is why
There are no data flows back to vendor because the word 'information' is weak in the data flow
the scope does not include ordering videos from name. The other names: Rental Receipt, Video Re-
the vendor. turn, New Customer, New Video (not New Video
Last, we define the data flows to and from the Information), and End-of-day Rental Summary are
accountant. The accountant does not feed any infor- all acceptable. Again, there are no 'right' or 'wrong'
mation into the application, and receives only an names for data flows. Some names are more descrip-
end-of-day rental summary. So, there is one data tive than others, and, therefore, stronger. Many com-
flow to accountant for the' end-of-day rental sum- panies define their own conventions, or local rules,
mary.' Next, we draw the data flows on the context for naming data flows, entities, and processes.
diagram and label them (see Figure 7-13). Last, we define data flows in the dictionary (see
While we label the flows, we evaluate the names Figure 7-14). Keep in mind that just because the
of the data flows to ensure their meaningfulness. information is in the dictionary does not mean it is
Rental request implies a request for assistance in cast in concrete. It is subject to review and change
rental processing and is a weak name. Stronger, throughout the life of the project. The goal is to
more meaningful names are 'Video rental' or 'Video define the application at a level of detail so that
rental information.' Either of these might be used. changes can be made before they become costly, that
Here, we use Video rental since the word 'informa- is, during analysis.
tion' is not particularly meaningful. Also, rentals Upon completion of the context diagram, you are
are always accompanied by payments which are ready to do the next level of analysis, opening up
added to the name to be more explicit. the circle, to define a data flow diagram.
Structured Systems Analysis Activities 241
Develop Data Flow Diagram path at the primitive level. Similarly for data
stores, define files when they are shared
Rules for Developing between processes. Introduce files that are
a Data Flow Diagram only used within a given process at the level
at which the file is shared between two or
To develop a data flow diagram, iterate through the
more subprocesses.
following steps until a primitive level is reached:
4. Balance the DFD with the context diagram.
1. Define the processes. Compare the net inputs and outputs to exter-
2. Define the files and other data flows required nal entities on the DFD to the net inputs and
to support the processes. outputs on the context diagram. There should
3. Draw a Level 0 DFD. At level 0, ignore be a one-to-one correspondence between the
trivial error paths and data stores. If you diagrams.
define a validation process, you must eventu- 5. Iterate through this procedure until the primi-
ally identify an error path. Define the error tive level of DFD is reached for all processes.
242 CHAPTER 7 Process-Oriented Analysis
Always balance the current level DFD's net tion, such as ABC Rental Processing, you try to
inputs and outputs with those of the previous define the general functions to be performed. The
level. approach in this text is to define the simple environ-
ment, discussing the common features for all levels
First, we will discuss how to identify the Level 0
of abstraction.
processes that are within the circle of the context
During the information gathering stage of the
diagram, without defining any data stores. The diffi-
application, you discussed with users what they did
culty of this activity varies with your understanding
and how they did it (see Chapter 4). The individual
of the problem domain and the scope of the project.
steps that each user performs in the tasks relating to
One of the hardest parts of this activity is to decide
the application are components of the applications'
the 'right' level of abstraction. What is right in one
processes. There are a variety of ways to identify
instance may not be right in another. For instance, if
processes; some examples are:
you have a multidepartmental, multiapplication en-
vironment you are trying to describe, the Level 0 1. Direct identification: If you have similar
diagram might link departments and the net data experience and either know the processes, or
flows of the context diagram (see Figure 7-15). If have articulate users who know the pro-
you have a multidepartmental, single application cesses, identify them directly.
environment, you might identify major functions 2. Top-down: Decompose the problem into its
and their relationships (see Figure 7-16). Or, if you constituent parts. The functions at each level
have a single department, single function applica- should completely define the problem and
1.0 3.0
Counsel
Patient
2.0
Maintain
Patient
Records
6.0
Create
Government
Accounting Reports
1.0
Maintain
Psychiatric
Counseling
Visit Information
Visit
Doctor Date,
Time,
Patient
ID
Maintain Diagnosis
Psychiatric
Counseling
Notes
Information
the diagram completely describes the overall pro- arrows 5 is our own. Work and teaching experience
cessing. Keep in mind while you are performing this have proven that novices use dangling arrows to hide
activity that you do not pay attention to timing or their lack of understanding of what they are doing.
sequencing of processes. You do not show start-up or The final two rules deal with balancing, error han-
shutdown activities on a data flow. If you have end dling, and the introduction of files.
of day, end of month, or other periodic processing, The DFD syntax rules are:
the DFD shows the processes without necessarily
1. All processes are connected to something
identifying the timing of the processing. As the
else.
processes are drawn, name each with a verb and the
2. All process have both inputs and outputs.
data they create, and number them. Numbering of
3. No processes have only outputs or only
processes is not meant to sequence them, even
inputs.
though we unconsciously tend to do this.
4. Processes may connect to anything: other
Also, at Level 0, ignore exception processing.
processes, data stores, or entities.
You might have a data flow named' Valid X' without
5. All processes have a unique name and
a matching 'Invalid X.' The exception process is
number.
added at the next lower level. This avoids unneces-
6. Each process number is used once in the
sary clutter at the highest level.
diagram set.
Mter the processes are identified, next define file
7. Only subprocesses of a process shall follow
locations on the Level 0 data flow diagram. You
the numbering scheme of the parent
could leave files for a lower level of analysis as
process.
many texts and companies do by convention. In that
8. Entities and data stores may connect only to
case, you are ready to draw the diagram. Here, we
processes. Another way to state this is that
will develop the thoughts that are used to identify
each data flow must have at least one end
data stores.
connected to a process.
To identify data stores, first consider each pro-
9. Data flows are the only legal type of con-
cess. Can the process be completed without reading
nection between entities, processes, and
or writing to a data store? If your answer is yes, then
data stores.
you do not need a file at this level. If the answer is
10. Make sure there are no dangling arrows.
no, you need one data store for every required read
11. The net data flows to and from context dia-
action and every required write action. Many times,
gram external entities must balance, that is,
the reads and writes are to the same data store. Then,
be present, in each level of DFDs.
you have one data flow per input/output action. As
12. Trivial errors and exceptions are not han-
these required reads and writes are identified, you
dled until Ll or lower in the DFD set.
add to the DFD to include the data store name and
13. Trivial data stores show up in the diagram
data flow(s). When you do this part of the drawing,
set the first time they are referenced by a
make sure that each flow and store has a name.
process.
Finally, when you have reviewed each process for
determining whether to include data stores, review When the Level 0 DFD is complete, walk through
the diagram to make sure that its DFD syntax con- the DFD with your peers, then review it with your
forms to the rules. The first seven rules relate only to user. Keep in mind that you are teaching the users
processes and their connectivity. Processes with con-
nection errors are called 'pathological' processes
because they do not follow the philosophy of DFDs 5 I realize that this is contrary to DeMarco, Yourdon, and many
undergraduate texts. For novices, dangling arrows frequently
that processes are connected via flows, files (data
mean you have no clue about what attaches at the other end.
stores), or entities. In addition, most companies want all terminators identified to
The next four rules check that all connections in ensure accuracy and to simplify quality assurance. Until you
the diagram are legal. The rule about no dangling are proficient, draw the entire diagram!
Structured Systems Analysis Activities 245
1.0
Maintain
Visit
Information
Visit
Doctor Date,
Time,
Patient
ID
Maintain Diagnosis
Counseling
Information Notes
Patient Patient
Information Maintain
Patient
Information
traceable back to a properly decomposed DFD. The intraprocess strength). We want modules that result
two most important characteristics are maximal from process descriptions to have exactly the logic
cohesion and minimal coupling. Cohesion measures required to perform the task, and nothing more. Min-
the internal strength of a process (this is also called imal coupling measures the interprocess connec-
Doctor
FIGURE 7-19 Skeleton Levell DFD with Net Inflows and Outflows for Process 1.0: Maintain
Visit Information
Structured Systems Analysis Activities 247
1.1
Unreconcilable
Review
and Code
Errors
Visit Info
CCD
Time
Keeper
Doctor
Patient File
tions. Ideally, we want data flows and stores to con- the processes definitions (see Figure 7-21). On the
tain exactly the information needed to trigger or per- other hand, if you have a transaction processing
form each task, and nothing more. The questions and application in which each transaction has its own
evaluation of processes in the decomposition version of some process, this type of diagram is cor-
process, if done properly, result in cohesive, mini- rect (see Chapter 8). If the processes all do different
mally coupled processes. transformations and have either unique inputs or
Three types of quality checking are performed unique outputs, leave them separate. If the transfor-
on the analysis results. First, correctness checking mations have an if-then-else logic, they are at too
determines that the syntax and connections used in Iowa level and should be combined (see Figure
diagrams, charts, and so forth are accurately used. 7-22). If they all do different transformations to the
Next, completeness checking is performed with incoming data, are the processes' outputs going
the users to validate the meanings of all terms to the same place? If so, you may have over-
and to verify the semantics used in all documenta- decomposed and should combine the processes. Fig-
tion. Last, consistency checking ensures con- ure 7-23 shows two possible corrections to the over-
sistency and correctness of all entries that span decomposition. Either correction may be acceptable
multiple diagrams, text, charts, and so on. Consis- depending on the 'Y.y' data complexity and their
tency checks evaluate the interitem syntax and processing complexity. Semantic (i.e., interpreting
semantics. These checks are first performed by the problem meaning) DFD problems are discussed
project team during walk-throughs or other quality again in the next section.
assurance evaluations. Then, they may be reviewed At Level 0, we did not concern ourselves with
by independent quality assurance analysts as an exception processing. At the lower levels, when a
added check. data flow is named 'Valid X,' you must balance that
If you find data flows that are identical, with no flow with another one called 'Invalid X.' In other
transformations, going to many processes, reassess words, you do define errors and exceptions at the
248 CHAPTER 7 Process-Oriented Analysis
AFTER
YFile
same level at which you define the split of valid and start with a customer placing a video rental request.
error/exception processing. Customer and video information trigger a 'Create
Let's examine how to apply these thoughts to rental' process. The first check in 'create rental' is
develop a set of DFDs for ABC Rental Processing. to validate the customer; if the customer does not
currently exist, we want to 'add new customer' to the
ABC Example Data Flow Diagram company's files before rental processing. Here, we
have a decision to make. We just described two input
We said above that in ABC Rental processing we are data flows to the create rental process. We need to
combining the analysis of context with analysis of decide if they are related or not. In this case, the is-
the sequence of actions for each data flow. So, we sue is whether we can add new customers as a sub-
Structured Systems Analysis Activities 249
BEFORE
AFTER 1
AFTER 2
~
Ext. PX.1-
Ent 5 Y File
Y,A,S NewY
90% of your activity and you don't want to slow weeks, there will be a cost, as high as several
it down by having to leave that process to add a thousand dollars."
new customer. The slow-down for going from . Vic: "OK, let's do both, then. It sounds more con-
rental processing to add customer and back will venient this way anyway."
range from 4 to 30 seconds depending on the Mary: "OK, we will allow entry of new cus-
PC's speed and the software we use. Unless you tomers as a process to be run by itself, or as part
have a business reason for separating the two of rental processing. 8 My second question
processes, I would suggest that you allow both.
If we decide this direction now, there is no 8 Notice that Mary reconfirms the decision by repeating the
added cost. If we change direction in a few agreed upon solution.
Structured Systems Analysis Activities 251
relates to video returns. When we collected our means, at least, that the rent and return screens and
information, we observed people returning processing must be closely linked to each other. Now
videos in several ways. First, they can put them we need to guard against having the processes too
into a slot and pay the fee the next time they rent closely coupled. Ideally, we want to accommodate
a video. Second, they can return them and pay Vic's wishes and still have processes separated as
when they come in to get a new rental. Third, much as possible. To obtain this goal, we need to
they can return them and rent a new video both decide the minimum information needed to link cus-
at the same time. Do you want all of these tomer and rental processing, and rental to return pro-
options in the new system?" cessing. Then, visualizing an implementation, we
Vic: "Yes, why wouldn't I?" might be able to use, for example, windows for each
Mary: "It is easier for us if we have a somewhat process. We might open a new window to add a cus-
fixed method of returns. But, if you want no tomer during rentals and maybe open another win-
changes, then we allow for all return methods. dow to process returns during rentals. Also, with
This may have a cost implication, but I can't tell minimal coupling, we maintain separation even
right now. Should we talk about this again when though the processes are interleaved. 9 This decision
I know what the cost of the options are?" process is another example of how not top-down a
Vic was a little upset: "I told you at the beginning, top-down process is. We are going to an implemen-
NO bureaucracy and changes only if it improves tation level of detail to jump back up and define the
convenience to my customers. If we don't allow data at the higher, more abstract level. Don't think
them to return in all three of these ways, some- this is the final answer. It is one way to reason
one will get mad. Besides, don't customers pay through the problem and figure out how it might
when they rent? So, my only risk is on the 10% work at the computer level. Then, we back off to the
of customers who have late fees. logical level to describe that possible model.
"Also, if I limit the ways they can return We said before that the first step in create rental is
tapes, I lose my edge over Ajax Video's chain to validate customer. If either the phone number or
up the street. If there is a cost to allowing all of customer name is not retrieved, we know we have a
these things, why can't you tell now, and, if you new customer and can switch to that process. Once
can't tell now, when will you know?" the new customer information is entered and saved,
Mary tried to placate Vic somewhat but is still com- we can pass it back to rental processing as if it were
pletelyhonest: "Usually, there is little incre- in answer to an original request. Once we have the
mental cost when all variations are known at this customer information in the create rental process,
stage of the analysis. But I can't tell until we've we can automatically check outstanding rentals. If
proceeded a little further and have a sense of there are any, we can ask if they want to return them
how many different programs will result from or add the new rentals to the list. Our problem is
the most flexible design. I will know when we solved unless Vic wants late fees processed whether
get to about two more levels of detail which will or not the outstanding rentals have been physically
be in a few days. If there is no added cost, we returned. This decision, however, does not affect us
will go for the flexibility. If there is an added until we try to define the details of processing. At the
cost, I will let you decide and give you an esti- moment, we will assume late fees are only processed
mate for the different choices. when the physical tape is returned.
"Let me summarize: We will analyze for
returns through the drop box, returns as a person
coming in, or returns as part of rentals, and get
9 Interleaving means weaving pieces of multiple processes to-
back to you with cost implications, if any." gether to give the appearance of parallel processing. Each
process progresses a little. First, we switch to a process and
From the application perspective, maximum flex-
do some of its function. Then we switch to another, then back
ibility for both customer and return processing to the first process, and so on.
252 CHAPTER 7 Process-Oriented Analysis
Accountant
End of Day
1\
Rental Summary
::::::....
1.0 1 2.0
Create
New Customer
I---------+l~ L1
I
C
reate
Customer
J EOD
R , ....,
~_
r 50 'I New Video Video
Customer Video Rental, Payment
I _ r-----:--jooI;lt--------t
Vendor
Rental Receipt .. 3.0 Create II
~----,---I.o4-------_\~~ ~ Video 1/
The result of this discussion so far is that we have action name beginning with a verb, and each process
three processes identified: create rental, create cus- has a numeric identifier.
tomer, and process returns. Each process could be The next step is to expand to a Level 0 DFD,
initiated by the create rental process, or could be ini- defining the data stores 10 in the application and link-
tiated by a customer action. We draw these processes ing processes, as required (see Figure 7-25). Data
(see Figure 7-24) and attach them to the correct data store identification usually occurs naturally during
flows. Within the context circle expansion, do not the identification of proceSSes and subprocesses. For
show connections between processes. Processes still instance, what actions are done to enter a rental?
unaccounted for are 'create video' and 'Create end First, you would check to verify that the customer
of day report' for summary totals. We know we have is, in fact, a customer. This means checking some
to get video information into the system, so we add permanent 'list' or file for presence of the customer.
that process and connect it to the data flow from Then, you would ask for each video they want to rent
video vendor. Since we must print an end-of-day and verify the description and its price. To retrieve
summary for the accountant, we add the process to the description arid price, we need a permanent file
the diagram. ' of the video inventory. When the rental is complete,
Figure 7-24 shows our high level processes of it is stored somewhere (in a rental file), completing
ABC Video Rental Processing, expanding the con- the process. Following this logic, we need at least
text diagram within the circle. The processes are three files at this level of analysis: customer file,
shown in small circles or in rounded vertical rectan- video inventory file, and rental file. At this stage, we
gles, depending on local customs. This text uses don't concern ourselves too much with the file con-
rounded vertical rectangles. Notice that the data
flows to/from each external entity are attached to a
10 Other names fat data stores are files, relations, or databases.
process, and all data flows are labeled and have a The term data store means data relating to this name and
directional arrow showing which way the data is does not imply normalized form. Data stores can contain
flowing. Also notice that the processes each have an more than one data structure [Gane, 1990].
Structured Systems Analysis Activities 253
Accountant
1.0
New Customer End-ot-Day
Customer I--------I~
Create Rental Summary
r---~ Customer
2.0
Create
EOD
Report
Today's
Rentals
Create
Rental
Order
5.0
Video New Video
Vendor Create
Video
tents, although we identify the contents throughout same verb. Process returns is the removal of rentals
analysis as they become known. As attributes, or just as create rental is the creation of rentals; they
fields, are discussed, it is a good practice to add to an are reciprocal processes. The reciprocal processes
attribute list for each file. The linkage between cre- also appear to be at the same level. The name pro-
ate rental and create customer is shown on the DFD cess returns is not the best we could choose to show
as a data flow. The details of initiating create cus- reciprocity; return rental is a stronger name that does
tomer processing when a customer is not found are and we change the process name.
deferred to the next level of detail. Next we evaluate correctness of the diagram. Are
Before showing the DFD to Vic for his com- all the connections legal? Yes. Are there any patho-
ments, we evaluate its level of abstraction and cor- logical connections? No. Is there a flow through the
rectness (see Figure 7-25). Are create customer, application? Yes, the main flow is for rental and
create rental, create video, and Process Returns all return processing.
on the same level of abstraction? The first clue that Now, we could return to Vic and ask his opinion,
they are is that the first three processes all have the giving him a verbal presentation of the details
254 CHAPTER 7 Process-Oriented Analysis
Domain Knowledge H H H H H L L L L
Language 4GL 3GL 3GL 3GL 2GL 2GL 2GL 4GL 4GL 3GL 2GL
Similar Experience Y N N Y N N
Simple Process/
Few Files
or
Complex Process or S C S C S C
Many Files
Level 0 X X X X X X X X X X X
Levell Opt. X X X X X X Opt. X X X
Level 2 Opt. Opt. X Opt. X X Opt. X X X
Level 3 ... n X Opt. X Opt. X X
Legend:
H Extensive experience
L Little experience
4GL Fourth Generation Language, e.g., SQL
3GL Third Generation Language, e.g., COBOL
2GL Second Generation Language, e.g., Assembler
Y Yes
N No
S Simple
C Complex
underlying each of the processes, and in the details, quently use extra cross-reference files to contain the
getting verbal agreement to the next lower level legal codes and their meanings.
of subprocesses. Do we also need to provide modify and delete
At Levell, we first decide which, if any, pro- processing for customers? Always is the answer,
cesses need decomposition. What happens when you ... and query processing as well. Now, we need to
create customer? A quick definition of fields and the know the implementation language to decide
type of validations required is necessary. According whether or not to decompose further. The decision
to the information (see Chapter 2), we need customer table shown in Table 7-1 summarizes the decision
phone, customer name, customer address, and credit criteria and the most likely outcomes. Keep in mind
card ID, number, and expiration date. Validation for that you can always go to another level of detail and
these fields is that the data are present and legal for can always get some benefit from the exercise. But,
the data type. For complex validation, you fre- why do the work if you don't have to?
Structured Systems Analysis Activities 255
Accountant
1.0
New Customer
Customer 1---------1~ End-ot-Day
Maintain Rental Summary
Customer
2.0
Create
EOD
Report
Today's
Rentals
Create
Rental
Order
Return, Payment
Return
Rental
5.0
Video New Video
Vendor Maintain
Video
We are planning to build this application for a For ABC Rental Processing, we will opt not to
LAN environment, using a 4GL-nonprocedurallan- discuss development of the Level 1 DFD for create
guage. For create customer there are no other data customer. We will change the process name to
stores needed for validation. There will be add, 'maintain customer' to denote the more general and
change, delete, and query processing. The corre- expanded processing. The final Level 0 DFD is Fig-
sponding decision cell-4GL, simple process, one ure 7-26; the Levell DFD is shown as Figure 7-27
file-shows Level 1 to be optional. The decision for reference.
depends on who is doing the programming. Is the A similar set of arguments for Process 4.0, 'create
person experienced with similar applications? Is the video,' is possible. We also rename that process
person involved in analysis fully knowledgeable 'maintain video' to denote the expanded process-
about the requirements for this application? If the ing, and omit the levell DFD.
answer to either of these questions is 'no,' the next Both rental processing and return processing
level of DFD should be developed with the details should be expanded regardless of the implementa-
entered in the dictionary. tion language because they are fairly complex and
256 CHAPTER 7 Process-Oriented Analysis
1.0
New Customer
Customer t----------i~
Create
Customer
ABC
Query
Customer
we have not discovered how they work yet although bined, this processing is fairly complex and some-
we have described rental processing in some detail. what extensive. It is complete when the clerk does
First we examine the DFD from our knowledge so something to show that entry of rentals is complete.
far, then expand it as required (see Figure 7-26). In We can group these processes together and call them
the level 0 DFD, the create rental process interacts 'get valid rental' (process 1.1) because once these
with customers twice and with all three data stores. actions are complete, the rental is ready for the next
To untangle and clarify the processing of these five step of processing. The detailed steps we identified
interactions, we decompose the process further. are either used to create another level of DFD or are
The first interaction is to get rental information documented in the dictionary for process 1.1.
from the customer. The' rental information' includes A valid rental is totaled by adding all of the rental
customer ID (or name) and video IDs (or names). fees for the current set of entries and any late fees
The customer ID is used to validate the customer and outstanding from past rentals. Once the total is dis-
get the rest of the customer information for the played, the amount of money paid by the customer is
rental. Similarly, the video ID is used to validate the entered into the system by the clerk. The total paid is
video and get the rest of the video information for subtracted from the total due to get the change due to
the rental. Customer ID is also used to check for late the customer. When the change and total due
fees and to retrieve outstanding rentals. We also amounts are both zero, the rental is complete and
know that if the customer is not on file, we want to ready for the last part of the process. Because this
initiate process 3.0, maintain customer. When com- stage is discrete, beginning with the successful vali-
Structured Systems Ahalysis Activities 257
Customer
Customer File
Video File
Rental File
Create
and Print
Rental
dation and ending when the change and total due are passed when the data flows are not labeled, and it
zero, we group these actions together and call them is okay to summarize on level O. At levell, we
'process fees and money' (see Figure 7-28). become specific and show the interface accurately
Finally, a rental is completed by saving all the and in detail.
information in the rental file and printing the receipt When you are drawing the OFD, you have to
for customer signature. When these actions are com- guard against being too detailed. This is difficult,
plete, the create and print rental process is complete especially for novice analysts. If your drawing has
(see Figure 7-28). these symptoms, you are too detailed and must com-
Notice that we have decomposed the data flows bine processes to a higher level of abstraction. The
as well as the processes. Where we group rental and semantic process problems to look for are listed with
payment on the level 0 diagram, we separate them on examples below. These problems violate one or
the level 1 diagram. We add change to the process more of the DFD Semantic Rules and Heuristics:
because now we are dealing with the details. Simi-
larly, the data flows connecting to the data stores are 1. Processes that have only one data flow
decomposed to show details of data passing back from the previous process as its input are
and forth. On a DFD, we assume all data can be probably overspecified. The solution is to
258 CHAPTER 7 Process-Oriented Analysis
~
in the other, inputting from the external en-
tity and file are in one process and out-
putting is in the other. Both of these
solutions require rethinking of the func-
tional decomposition.
4. If several processes have more than one
write to the same file, check that the
processes are distinct and that the data must
be written disjointly. Again, to have effi-
cient file processing, minimal reading and
FIGURE 7-29 Example of Pathological writing is desired. The alternatives are to
Data Flow localize reading and writing as in the first
solution (see Figure 7-33), or to combine
BEFORE
AFTER 1 or AFTER 2
nothing is thrown away. Check the business is complete, the open rental record is removed from
rules relating to the data and verify the the open rental file and history information is up-
processing. dated. If late fees are owed but not paid, the open
rental record is rewritten with return date and late
For return processing, we need to walk-through fee information. Return processing has several steps,
the process to define if we need subprocesses. A but each is simple, requiring at most one file per step.
video ID is entered and used to retrieve the rental. There is little need for a Levell DFD for this pro-
The system assigns today's date as the return date. cess at this time.
Late fees, if any, are computed. The total amount due Notice that the process fees and money is identi-
is computed. The total amount due is displayed, an cal to the same p:rocess for rental processing. We can
amount of money received from the customer is develop a common, reusable module for both rental
entered, and change is computed. When both total and return processes. Also, notice that we introduce
amount due and change are zero, payment process- history here. If we decide to have a history file, it
ing is complete. If no late fees are owing or payment would show at this level of DFD.
Structured Systems Analysis Activities 261
At this point, we are ready to reevaluate the new Data Dictionary Contents
DFDs and proceed to development of dictionary and Rules-Entities
entries for all DFD information. Check the final
DFDs for legal connections, similar levels of ab- The contents of the dictionary for external entities
straction, and balanced net inflows and outflows be- are listed in Table 7-2. The most important are the
tween levels. Then, continue to the data dictionary. name and the definition of the entity. In organiza-
tions with data administration functions, this infor-
mation must conform to the 'corporate' dictionary
Develop Data Dictionary definitions or must be reconciled with it to define
In this section we briefly discuss the contents and new terms. The SEs work with users and data
rules, if any, for each type of dictionary entry. Then, administrators to name and define the entities for the
we will document the information from the ABC organization. IS personnel do not name and define
rental application. Since you have seen examples of the terms by themselves. Most external entities are
each type of entry, this section is short. people, job titles, organizations, or applications with
BEFORE
AFTER 1 or AFTER 2
BEFORE
AFTER
TABLE 7-2 Data Dictionary Entity which the application under development interacts.
Contents Choose a meaningful business name that describes
the entity accurately and completely. If you have a
Entity name data administration function, use their name. The
Aliases definition should be a business definition and should
be completely independent of any technology.
Definition
Make sure you include in the definition any
Relationship to application aliases or names used in your application that do not
Contact, if entity is an conform to the corporate standard. Describe the
organization entity's relationship to the application in terms of
the nature and timing of the interaction. If the entity
Structured Systems Analysis Activities 263
is an organization, include the name, address, and of entry: optional information, multiple repeating
phone number of the person most frequently information, required information, selection between
contacted. attributes, and primary keys.
Figure 7-39 shows the notation to be used in
describing the contents of an entity to a dictionary.
ABC Example Data Dictionary-Entities
Keep in mind that this convention works well if you
are using a manual method. Automated tools have The external entities in ABC Rental are customer,
their own format and notation for repository con- vendor, and accountant. The entries for each of these
tents. There is one notational structure for each type are shown in Table 7-3. If the accountant is an
BEFORE
Cust#
Customer I------II~
Customer File
AFTER
Customer File
BEFORE
Customer History File
Customer File
Rental File
Video Inventory
Customer File
Rental File
Video Inventory
employee, you would not include his or her name in dictionary entries. The name of the process should
the dictionary. If the accountant is an outside firm, be exactly the same as the process name used in
you would include the information. the DFD.
The process description details the steps to com-
Data Dictionary Contents plete the process and can take several forms. The
most common are pseudo-code and structured Eng-
and Rules-Processes
lish, supplemented by decision trees or decision
The contents of the dictionary for processes are tables as needed. Pseudo-code uses the syntax from
listed in Table 7-4. For processes, we include the a language in abbreviated form for easy translation
process number from the DFD to allow quality into the target language. Structured English is
assurance, and to easily link back to the process a computer-language independent description of a
model. In a computer-aided software engineering process using only simple verbs and terms from the
tool (CASE), if you used one, you usually have dictionary; no adjectives or adverbs are used. Struc-
automatic linkage between the diagram and the tured English is used here.
Structured Systems Analysis Activities 265
BEFORE
Customer File
Rental File
Video Inventory
AFTER
Customer File
Rental File
ABC Example Data Dictionary- detailed at all. You document the information you
Processes have, replacing the high level abstract thoughts with
the details as you come to know them. The dictio-
The process entries for ABC are all included at the nary is constantly evolving and changing as more
level 0 detail level (see Table 7-5). To document the information becomes known.
entire application, you would create a data dictionary
entry for each lower level process, then refer to that Data Dictionary Contents and Rules-
process in the higher level dictionary entries. In this
Data Stores
way, the hierarchy of processing and linkages
are documented. The data store defines persist ant data; contents of a
Notice that there are some uneven levels of data store dictionary entry are listed in Table 7-6.
detail in the process entries. For instance, the process There is a significant amount of detail that is even-
fees and money routine is fairly detailed, while the tually documented. You begin completing the infor-
reference to create history in return rental is not mation as it becomes known and complete the rest
266 CHAPTER 7 Process-Oriented Analysis
BEFORE
r-----, Cust Info, Customer History File
Video Info
Customer f-------1~
AFTER Cust#,
Video # for
Previous Rentals
...----......., Cust #, Customer History File
Video #
Customer I------I~
~-------1 Customer File
Cust
Summary
Rental File
when it is available. Also, some of the information likelihood of them also maintaining the application
may not be relevant in your organization (for is unknown. So, the more detailed the documenta-
instance, if all projects always use DB2 relational tion, the more you simplify future maintenance.
files, you may not need detailed documents because
the information already exists). The goal of the doc- Data Dictionary Contents-Data Flows
umentation is to present necessary information with-
out much verbiage. Keeping that in mind, trim the Data flow contents are important pieces of docu-
dictionary entries to fit your situation. mentation because they cause the creation and
change of files and determine the data each process
ABC Example Data Dictionary- actually accesses. The data flow contents are shown
in Table 7-8. Contents have a primary key to
Data Stores
uniquely identify the data. The difference between
The dictionary entries for data stores are in Table primary key for a data flow and for a data store is one
7-7. For now, we know very few of the details about, of time. What period of time is the flow 'alive'? Data
for instance, volume, growth, and security. Those flows usually have a short life which means that less
entries are left blank. data is required for a unique ID. For instance, the
Above, we said that you trim the contents of the flow payment is a money amount which is accept-
dictionary entries to fit the project. In a consulting able here. At the implementation level, that field
situation, such as Mary and Sam are in at ABC, the might also require a terminal ID or a transaction ID
Structured Systems Analysis Activities 267
ABC Example Data Dictionary- keeping the dictionary useable, when using a paper
Attributes dictionary, capture only the essential information
about attributes and put it in a short-form attribute
As the two examples provided in Table 7-11 show, table as shown in Table 7-12. Essential informa-
the contents get quite long and take quite a bit tion is usually the user name, system name, data
of paper. In the interest of saving a few trees, and type, data length, and edit rules. If there is other
270 CHAPTER 7 Process-Oriented Analysis
information required, such as security restrictions authors developed 19 rules by which automated
or cross-reference file names, you would add it for DFDs might be evaluated. The most checked by any
that attribute but not all of the others. The short form of the CASE tools evaluated was 13 (by two CASE
is used in this text to document ABC's attributes. tools); the least rules checked was three; the aver-
age was eight. The extent of intelligence in CASE
obviously varies and is inconsistent with the collec-
AUTOMATED _ _ _ _ __ tive wisdom about how DFDs should be developed
SUPPORT TOOLS _ _ _ __ and drawn.
Thus, there are many CASE tools available which
Structured analysis and process methods, in general, 'support' structured analysis. The tools vary widely
are the oldest and most widely used methods. in the diagrams supported and in the extent to which
Because they are most widely used, a large number rules about developing DFDs and other diagrams
of CASE tools to support structured analysis are are enforced.
available on the market. All of the tools support
DFDs; all have a dictionary (although they are not
all 'active'). A table of representative CASE tools
supporting structured analysis is listed below in
SUMMARY _ _ _ _~___
Table 7-13. Process-oriented structured analysis originated
If you did not get the impression that CASE tools in the work of DeMarco, Gane and Sarson, and
represent a 'buyer beware' situation, perhaps some Yourdon. In structured analysis, we first define
comments from a recent survey will prove that it is. the application context then follow a top-down
Data flow diagrams in 12 CASE environments were approach to progressively more detailed levels
compared on DFD correctness checkingY The of process analysis. The application is documented
11 See Vessey, Jarvenpaa, & Tractinsky [1992]. (Text continues on page 274)
Summary 271
272
Summary 273
via graphical forms including a context diagram, lev- in more detail. Graphical representation replaces
eled set of data flow diagrams, a data dictionary, and, much of the text, but does not completely replace
optionally, a state-transition diagram. Diagram sym- text descriptions of individual processes. The data
bols and their meanings include (1) circle, entire ap- dictionary (or repository) is used to maintain defini-
plication; (2) square, external entity; (3) rounded tions of all DFDs and other analysis information,
vertical rectangle, process; (4) open ended rectangle, including files, fields, flows, and external entities, in
data store, and (5) directed arrow, data flow. Each di- addition to processes.
agram symbol has a formal definition that is docu- The reasoning process for defining the applica-
mented in a data dictionary. DFDs identify processes tion context and the detailed levels of data flow dia-
and the flow of data through those processes to grams was presented. The definitions and contents of
achieve some business function. DFDs start at a high data dictionary entries were described. All diagrams
level of abstraction to summarize the processing tak- and dictionary entries were developed using the
ing place. At successively more detailed levels, pro- ABC rental processing application to show varia-
cedural and data are added to describe the processing tions and nuances in the thought processes.
Summary 275
REFERENCES
-------.---
Curtis, B., M. I. Kellner, and J. Over, "Process model-
ing," Communications of the ACM, Vol. 3S, #9, Sep-
tember 1992, pp. 7S-90.
completeness checking
consistency checking
context
context diagram
functional sequence
level 0 DFD
level 1 ... n DFD
leveled set of DFDs
DeMarco, Tom, Structured Analysis. New York: Yourdon correctness checking net inflows and outflows
Press, 1979. coupling outward-in
Frances, B., "A window into CASE," Datamation, March cross reference file primitive level
1, 1992, pp. 43-44. data attribute process
Gane, C., and T. Sarson, Structured Systems Analysis: data dictionary process description
Tools and Techniques. Englewood Cliffs, NJ: Pren- data flow pseudo-code
tice-Hall, 1979. data flow diagram (DFD) quality assurance
Gane, Chris, Computer-Aided Software Engineering: data store structured decomposition
The Methodology, The Products and the direct identification structured English
Future. Englewood Cliffs, NJ: Prentice-Hall, elementary components structured systems analysis
1990. external entity systems model
Krasner, J., J. Terrel, A. Lindhan, P. Arnold, and W. H. field systems theory
Ett, "Lessons learned from a software process model- file top-down
ing system," Communications of the ACM, Vol. 3S, function
#9, September 1992, pp. 91-100.
Lee, T., "Bridging the CASE/OOP gap," Datamation,
March 1, 1992, pp. 63-64.
Lindholm, E. "A world of CASE tools," Datamation,
March 1, 1992, pp. 7S-8l. EXERCISES _ _ _ _ _ _ __
Martin, James, Systems Design from Provably Correct
Constructs. Englewood Cliffs, NJ: Prentice-Hall, 1. Complete the level 1 DFD for 2.0 Rental return
1985.
process and discuss it in class. Compare several
McClure, c., The Three R's of Software Automation:
of the answers. Are they the same? Why, or
Re-Engineering, Repository and Reusability. Engle-
wood Cliffs, NJ: Prentice-Hall, 1992.
why not?
McMenamin, Stephan M., and John F. Palmer, Essential 2. Make a list of outstanding and deferred issues to
Systems Analysis. NY: Yourdon Press, 1984. discuss with Vic.
Slater, D., "PacBase, IEF lead rising CASE satisfaction," The next three questions have bothered my stu-
Computerworld, August 3, 1992, p. 8l.
dents for several years. For each question, identify
Sullivan, Louis, "The tall building artistically
and discuss the issues and ramifications of each
considered," Lippincott's Magazine, March
1896. decision, technical issues, user issues, legal or other
Vessey, I., S. Jarvenpaa, and N. Tractinsky, "Evaluation issues.
of vendor products: CASE tools as methodology com- 3. How should customers be identified to the appli-
panions," Communications of the ACM, Vol. 3S, #4,
cation? What are the security issues? What are
April 1992, pp. 90-10S.
the bureaucracy issues? Is there a way to 'mini-
Yourdon, Edward, Modern Structured Analysis.
Englewood Cliffs, NJ: Prentice-Hall, Yourdon Press, mize bureaucracy' and still have good security?
1989. 4. Should late fees relate to a person or a tape or a
rental? What are the issues? How do you
KEy TERMS
attribute
balancing
---------
bottom-up
cohesion
decide? Can Vic be helpful in deciding this
issue?
5. Where should history get created-at tape rental
time? or at tape return time? Can Vic be helpful
in deciding this issue? How do you decide?
278 CHAPTER 7 Process-Oriented Analysis
STUDY QUESTIONS _ _ _ __ 11. What are the major diagrams in the analysis
phase? How are they derived?
1. Define the following terms: 12. List and briefly describe the five approaches to
balancing external entity identifying processes.
context function 13. Describe all data dictionary entries and give an
data flow net inflow example of each.
data store top-down 14. Why might CASE tools be useful in structured
direct identification analysis?
2. How do you define the scope of a project? 15. Draw and identify five common DFD errors
Who should define the scope? and their corrections.
3. What is a leveled set of DFDs? How do you 16. Discuss the three types of quality checks done
know you have that?
*
on DFDs.
4. Why is the strategy of using net inflows and
outflows from the previous level of DFD EXTRA-CREDIT QUESTIONS
as a starting point for a new level of detail a
1. The example used in Figures 7-15 through 7-20
good idea?
refers to a psychiatric clinic and processing
5. Is structured process analysis more like analyz-
performed for Medicaid claim processing. Per-
ing with a zoom feature on a set of photos or
form a structured analysis of this problem as
more like analyzing a geologic formation?
described in the Appendix Case: The Child
6. Define structured decomposition. Why do you
Development Clinic. Refer to the figures in the
use this technique?
text to help you if you get stuck.
7. What is the purpose of the data dictionary?
2. Perform a structured analysis of any of the prob-
8. Discuss the reasoning process used in struc-
lems in the Appendix. Decide what information
tured analysis. Does it guarantee that everyone
in the problem description is relevant to an auto-
will get the same analytical result? If not,
mated application. Then, build a context dia-
why not?
gram, a levels set of DFDs and a data dictionary.
9. How might the process of structured analysis
be improved to be more rigorous, i.e., guaran-
tee the same results regardless of who performs
the analysis?
10. Evaluate the following diagram. What type of
diagram is it? What is its purpose? Label
errors and list all reasons why they are wrong.
Redraw the diagram correctly.
1.0 1.1
Customer
Cust Info
..
p Maintain Customer
Customer Reporting
DESIGN
------------------------------------------------
279
280 CHAPTER 8 Process-Oriented Design
IPO Model
coupling the goal (i.e., less is best). Cohesion is a we divide existing subprocesses from the DFD into
measure of internal strength of a module with the groups for implementation. The two methods of par-
notion that maximal, or functional, cohesion is the titioning used are transform analysis and transac-
goal. These principles are related to the process of tion analysis.
design in the next section. DFD processes transform data from one form to
another; these transformations will eventually be
automated by programs each containing several
modules. Transform analysis is the process of iden-
DEFINITION OF _ _ _ __ tifying the c1usterings of subprocesses based on their
major functions. The functions are either input, out-
STRUCTURED _ _ _ _ _ __ put, or transform-oriented. The input-oriented pro-
DESIGN TERMS _________ cesses are called afferent flows. Afferent means
bringing inward to a central part. Afferent processes
The major activities of structured design are: read data and prepare it for processing. The output-
oriented processes are called efferent flows, where
1. Transform or transaction analysis of DFD
efferent means moving away from the central part.
2. Refine and complete structure chart
Efferent processes write, display, and print data. The
3. Identify load units and program packages
remaining processes are collectively called the cen-
4. Define the physical database
tral transform. The central transform processes
5. Develop program specifications
have as their major function the change of informa-
The terms associated with each of these activities are tion from its incoming state to some other state.
defined in this section and summarized in Table 8-1. An example of a data flow diagram with its
In design we partition the application to divide afferent and efferent flows and its central transform
subprocesses into codifiable program modules. Par- identified is shown in Figure 8-2. Notice that multi-
titioning is the divide and conquer strategy by which ple afferent or efferent flow streams may be found.
Definition of Structured Design Terms 281
TABLE 8-1 Structured Design Concept These processes are the heart of accounting process-
Definitions ing. Without these processes, the application would
be doing something else.
Term Definition Not all applications are transform-centered. Some
applications do simple processing but have many
Stepwise The process of defining functions different transaction types on which the simple
refinement that will accomplish a process;
processes are performed. These systems are called
includes definition of modules,
programs, and data
transaction-centered. Transaction analysis re-
places transform analysis for transaction-centered
Program The shape of a program, including the applications with partitioning by transaction type,
morphology extent of fan-out, fan-in, scope of which may not be obvious from DFDs. Figure
control, and scope of effect
8-3 shows an example of a partitioned DFD for a
Data structure The definition of data in an application transaction-centered application. This detailed DFD
includes logical data definition and looks like it contains redundancy because many of
physical data structure the same processes appear more than once. Look
Modularity A property of programs meaning they closely and you see that each set of processes relates
are divided into several separate to a different type of transaction.
addressable elements When the high-level partitioning is done, the
Abstraction Attention to some level of g~neraliza information is transferred to a first-cut structure
tion without regard to irrelevant low- chart. We will develop the structure chart from Fig-
level details ure 8-2. A structure chart is a hierarchic, input-
Information
process-output view of the application that reflects
Design decisions in one module are
hiding hidden from other modules the DFD partitioning. The structure chart contains
one rectangle for each lowest level process on the
Cohesion A measure of the internal strength of DFD. The rectangles are arranged in a hierarchy to
a module
show superior control and coordination modules.
Coupling A measure of the intermodule strength Individual process modules are the lowest in their
ofa module hierarchy. The rectangles in the hierarchy are con-
nected via undirected lines that are always read top-
down and left to right. The lines imply transfer of
processing'from the top to the bottom of the hierar-
The streams are partitioned off from the rest of the chy. Diamonds overlay the connection when a con-
diagram by drawing arcs showing where they end. ditional execution of a module is possible using
Examples of transform-centered applications if-then-else logic. Reused modules are shown in one
include accounting, personnel, payroll, or order of two ways. Either they are repeated several times
entry-inventory control. For these applications, get- on the diagram and have a slash in tqe lower left cor-
ting data into and out of the system is secondary to ner to signify reuse, or they are connected to more
the file handling and manipulation of n~mber& that than one superior module via the linking lines.
keep track of the information. In accounting, for The identification of afferent flows, efferent
instance, balancing of debits and credits takes place flows, and transforms results in chains of processes,
at end-of-day, end-of-month, and end-of-year pro- each its own 'net output.' If we look at Figure 8-2
cessing. These periodic process transfor-mations again, we see the net afferent output is data flow
summarize and move data, erase some information, Good Input. For the central transform, the net out-
archive other information, and write data to the gen- put is Splution. For the efferent flows, the net output
eral ledger to summarize the details in the re- is Printed Solution. These net outputs are used to
ceivables and payables subledgers. All of these determine the initial structure of the structure chart,
transforms process data that is already in the files. using a process called factoring.
282 CHAPTER 8 Process-Oriented Design
Input
Central
Afferent Flow Transform
I
Output Stream I
Efferent Flows
•
FIGURE 8-2 Transform-Centered DFD Partitioned
Factoring is the process of decomposing a DFD data into and out of modules and match the data
into a hierarchy of program components that will flows on the DFD. Data couples are identified by a
eventually be programmed modules, functions, or directed arrow with an open circle at the source end
control structures. Each stream of processing is ana- (see Figure 8-5). The arrowhead points in the direc~
lyzed to determine its IPO structure. When the tion the data moves.
structure is identified, the processes are placed on Control couples identify the flow of control in
the structure chart and named until all low-level the structure. Control couples are placed to show
DFD processes are on the structure chart (see Fig- where the control data originates and which mod-
ure 8-4). ule(s) each couple affects. A control couple is usu-
N ext, data and control information are added to ally a program switch whose value identifies how a
the structure chart. Data couples identify the flow of module is activated. Control couples are drawn as
Definition of Structured Design Terms 283
Efferent Flow
Updated File
Thing
Data
Trans
Customer t------1~
Process
Coordinator
Central
Transform
Afferent Flow
directed arrows with a closed circle at the source end imum. Figure 8-4 shows the completed structure
(see Figure 8-6). The arrowhead points in the direc- chart for the DFD in Figure 8-2.
tion the control travels. If a control couple is in, set Next, we evaluate and revise the structure chart to
and reset in the same module, it is not shown on the balance its morphology. Morphology means form or
diagram. A control couple that is set and reset in one shape. The shape of the structure chart should be bal-
place, but used in another, is shown. If a control cou- anced to avoid processing bottlenecks. Balance is
ple is set in one module and reset in another, it is determined by analyzing the depth and width of the
shown as both input and output. Control is 'designed hierarchy, the skew of modules, the span of control,
into' the application by you, the SE, based on the the scope of effect, and the levels of coupling and
need for one module to control the processing of cohesion. When one portion of the structure chart is
another module. The goal is to keep control to a min- unbalanced in relation to the rest of the diagram, you
284 CHAPTER 8 Process-Oriented Design
modify the structure to restore the balance, or pay The width of the hierarchy is a count of the
closer attention to the unbalanced portion to ensure modules directly reporting to each superior, higher-
an efficient production environment. level module (see Figure 8-8). Span of control
The depth of a hierarchy is the number of lev- is another term for the number of immediate sub-
els in the diagram. Depth by itself is not a measure of ordinates and is a synonym for the width of the
good design nor is it a goal in itself. Rather, it can hierarchy. Width relates to two other terms: fan-
indicate the problem of too much communication out and fan-in. Fan-out is the number of imme-
overhead and not enough real work taking place (see diate subordinate modules. Too much fan-out can
Figure 8-7). Conversely, adding a level of depth can identify a processing bottleneck because a supe-
be a cure for too wide a hierarchy. rior module is controlling too much processing.
FIGURE 8-5 Data Couple Notation FIGURE 8-6 Control Couple Notation
Definition of Structured Design Terms 285
While there is no one number that says 'how wide Fan-in, on the other hand, is the number of
is too wide,' seven ±2 is the generally accepted superior modules (i.e., immediate bosses) which
guideline for number of fan-out modules. One solu- refer to some subordinate module (see Figure 8-9).
tion to fan-out processes that are functionally Fan-in can be desirable when it identifies reusable
related is to factor another level of processing components and reduces the total amount of code
that provides middle-level management of the low- produced. The major tasks with fan-in modules are
level modules. Another solution to fan-out problems to ensure that they perform a whole task, are highly
that are factored properly, but not functionally re- cohesive, and are minimally coupled.
lated, is to introduce a new control module at the Skew is a measure of balance or lopsidedness of
IPO level. the structure chart (see Figure 8-10). Skew occurs
DD
FIGURE 8-8 Excessive Width of Hierarchy
286 CHAPTER 8 Process-Oriented Design
when one high-level module has many subordinate ing the number of modules that are directly affected
levels and some or most of the other high-level mod- by the process results of another module. High scope
ules have few subordinate levels. Skew can indicate of effect relates to fan-out, fan-in, and coupling in
incorrect factoring. If factoring is correct, then skew that it may identify potential problems with debug-
identifies a driver for the application that might ging and change management. Ideally, the scope
require special consideration. If the skew is on the of effect of anyone module should be zero or one.
input side, we say the application is input driven or That is, no more than one other module should be
input-bound. Similarly, if the skew is on the output affected by any processing that takes place in any
side, the application is output-bound. If the input other module.
and output are skewed with little transform process- The last measures of structure morphology which
ing, the application is I/O-bound (for input/output). are analyzed throughout the remainder of structure
Finally, if the application has little input or output, design are coupling and cohesion. Cohesion is a
but lots of processing, the application is process- measure of the intramodule strength. Coupling is a
bound. The special considerations of each of these measure of the intermodule linkage. Maximal, func-
occurrences deal with ensuring correct language se- tional cohesion and minimal coupling are the ideal
lection and meeting I/O and process time constraints. relationships. Coupling and cohesion are related in-
The scope of effect of a module identifies the col- versely (see Figure 8-12). If cohesion is high, cou-
lection of modules that are conditionally processed pling is low, and vice versa; but, the relationship is
based on decisions by that module (see Figure not perfect. That means that if you have strong co- .
8-11). The scope of effect can be identified by count- hesion, you may still have strong coupling due to
Definition of Structured Design Terms 287
Input-Bound
Application
'Input-Skewed'
Process-Bound
'Process-Skewed'
Output-Bound
'Output-Skewed'
Pathological Connection
End-of-file Sw
End-of-file Sw
Normal Connection
to decompose further or not relates to the details Figure 8-14), Nassi-Schneiderl11an diagrams (see
needed for the implementation language and how Figure 8-15), and flow charts (see Figure 8-16).
well the SEs understand the details. To complete design, program specifications (spe-
Structure charts are only one of many methods cifications is abbreviated to 'specs') must be devel-
and techniques for documenting structured design oped, but before specs can be developed, several
results. Most of the alternatives would replace, rather other major activities are required. First, the physical
than supplement, structure charts. Each technique database must be designed. Then, program package
has its own slightly different way of thinking about units are decided. Several activities not discussed
the processes to finalize a design, even though here (these are covered in Chapter 14) are per-
the goals are the same. Several alternatives are formed, including verification of adequate design for
IBM Hierarchic input-process-output diagrams inputs, outputs, screens, reports, conversion, con-
(HIPO) (see Figure 8-13), Warnier diagrams (see trols, and recoverability.
IprodLlce X I
I I I
I Get input II Make X II PutX
I
I
I
~ Format Print I
I I
PutX
Make X
• design user views (if this is not already done)
Produce
X (n) Disk • select the access method
Format .;) • map user views to the access method and
PutX { storage media
Write -- • walk-through the database design
{ Disk
(0,1) • prototype the database
• document and distribute access information to
Legend: all team members
• train team members in access requirements
EB Either/or
• develop a test database
Name Not Name to be performed
Name Name to be performed • develop the production database
(1) Execute ( ) times, here 1 Keep in mind that many other activities may be
(0,1) Execute zero or one times
(n ) Execute n times involved in designing a physical database for a spe-
cific implem~ntation environment.
1. Warnier, J-D., Logical Construction of Systems. NY:
While the details of physical database design and
Van Rostrand Reinhold Company, 1981. decomposition are being finalized, project team
members are also thinking about how to package the
modules into program units. A program unit or a
FIGURE 8-14 Warnier Diagram l program package is one or more called modules,
D Process or Module
Sequence
D Input/Output
( ) Terminator,
i.e., start/stop
Secondary Storage,
e.g., disk
Selection
Flowchart Example
Iteration
functions, and in-line code that will be an execute code is the structured program code that controls and
unit to perform some atomic process. In nonreal- sequences execution of modules and functions. For
time languages, an execute unit is a link-edited load instance, a 'read' module might do all file access; a
module. In real-time languages, an execute unit screen interaction module might do all screen pro-
identifies modules that can reside in memory at the cessing and have submodules that perform screen
same time and are closely related, usually by mu- input and screen output.
tual communication. The guiding principles during A function is an external 'small program' that is
these design activities are to minimize coupling and self-contained and performs a well-defined, limited
maximize cohesion (see Tables 8-2 and 8-3 for defi- procedure. For example, a function might compute
nition of the seven levels of coupling and cohesion). a square root of a number. Functions usually do not
An atomic process is a system process that can- call other modules but there is no rule against it.
not be further decomposed without losing its system- Even though the definitions of modules and func-
like qualities. An execute unit is a computer's unit tions are similar, they are different entities. Func-
of work (i.e., a task). A module is a 'small program' tions sometimes come with a language, for instance,
that is self-contained and may call other modules. the mathematical and statistical functions that are
Modules may be in-line, that is, in the actual pro- part of Fortran. Modules are usually user-defined
gram, or may be externally called modules. In-line and have a broader range of applicability, such as a
Functional Elements of a procedure are combined because they are all required to complete one specific
function. This is the strongest type of cohesion and is the goal.
Sequential Elements of a common procedure are combined because they are in the same procedure
and data flows from one step to the next. That is, the output of one module, for example, is
passed in sequence as input to the next module. This is a strong form of cohesion and
is acceptable.
Communicational Elements of a procedure are combined because they all use the same data type. Modules that
all relate to customer maintenance-add, delete, update, query-are related through com-
munication because they all use the Customer File.
Procedural Elements of a common procedure are combined because they are in the same procedure and
control flows from one step to the next. This is weak cohesion because passing of control
does not mean functions in the procedure are related.
Temporal Statements are together because they occur at the same time. This usually refers to program
modules, for example, 'housekeeping' in COBOL programs to initialize variables, open
files, and prepare for processing. Temporal cohesion is weak and should be avoided wher-
ever practical.
Logical The elements of a module are grouped by their type of function. For instance, all edits, all
reads from files, or all input operations are grouped. This is undesirable cohesion and should
be avoided.
Coincidental This is the random or accidental placement of functions. This lowest level of cohesion
occurs when there is no real relationship between elements of a module. This is undesirable
cohesion and should be avoided.
Process Design Activities 293
Indirect relationship No coupling is possible when modules are independent of each other and have neither a
need nor a way to communicate. This is desirable when modules are independent. An
example of no direct relationship is a date translate routine and a net present value rou-
tine. There is no reason for them to be related, so they should not be related.
Data Only necessary data are passed between two modules. There are no redundant parame-
ters or data items. This is the desirable form of coupling for related modules.
Stamp The module is given access to a complete data structure such as a physical data record
when it only needs one or two items. The module becomes unnecessarily dependent on
the format and arrangement of data items in the structure. Usually, stamp coupling
implies external coupling. The presence of unneeded data violates the principal of
'information hiding' which says that only data needed to perform a task should be avail-
able to the task.
Control Control 'flags' are shared across modules. Control coupling is normal if the setting and
resetting of the flag are done by the same module. It is a pathological connection to be
avoided if practical when one module sets the flag and the other module resets the flag.
External Two modules reference the same data item or group of items such as a physical data
record. In traditional batch applications, external coupling is unavoidable since data are
passive and not directly relating to modules. External coupling is to be minimized as
much as possible and avoided whenever practical. External coupling violates the princi-
pal of information hiding.
Common Modules have access to data through global or common data areas. This is frequently a
language construct problem but it can be avoided by passing parameters with only a
small amount of additional work. Common coupling violates the principal of information
hiding.
Content One module directly references and/or changes the insides of another module or when
normal linkage mechanisms are bypassed. This is the highest level of coupling and is to
be avoided.
screen interaction module. Functions are usually tions) relationships and communication; the other
reusable across applications without alteration; mod- documents intraprogram processing that takes place
ules are not. within the individual program. Another term for
When program packages are decided, program interprogram relationships is interface.
specifications are developed. Program specifica-
tions document the program's purpose, process
requirements, the logical and physical data defini- PROCESS ______________
tions, input and output formats, screen layouts, con-
straints, and special processing considerations that DESIGN _ _ _ _-----'-_ _ _ __
might complicate the program. Keep in mind that the ACTIVITIES _ _ _ _ _ __
term program might also mean a module within a
program or an externally called function. There are The steps in process design are transform (or trans-
two parts to a program specification: one identifies action) analysis, develop a structure chart, design the
interprogram (including programs in other applica- physical database, package program units, and write
294 CHAPTER 8 Process-Oriented Design
program specifications. Each of these steps is dis- 6. For functions that are not unique, decompose
cussed in this section. them into common reusable modules. Make
Since both transform and transaction analysis sure that the usage of the module is identical
might be appropriate in a given system, the first for all using transactions. Specifically iden-
activity is to identify all transactions and determine tify which transactions use the module.
if they have any common processing. This activity 7. For each function module, specify subordi-
can be done independently from the DFD and func- nate detail module(s) to process whole detail
tional analysis, or it can be done as a side activity steps as appropriate. If there is only one func-
while you are doing functional analysis as the pri- tional detail step, keep it as part of the func-
mary activity. If you cannot tell which is more tion module defined in step 5.
appropriate, do a rough-cut structure chart using
A typical transaction application is money trans-
both methods and use the one which gives the best
fer for banks. Transactions for money transfer all
overall results in terms of coherence, understand-
have the same information: sending bank, receiving
ability, and simplicity of design.
bank, sender, receiver, receiver account number, and
amount. There might be other information, but this is
required. What makes money transfer a transaction
Transaction Analysis system is that transactions can come from phone,
mail, TWX!felex, fax, BankWire, FedWire, and pri-
Rules for Transaction Analysis vate network sources. Each source of transaction has
The basic steps in transaction analysis are to de- a different format. Phone, mail, and fax are all es-
fine transaction types and processing, develop a sentially manual so the application can require a per-
structure chart, and further define structure chart ele- son to parse the messages and enter them in one
ments. A detailed list of transaction analysis activi- format. The other three are electronic messaging sys-
ties follows. tems to be understood electronically. TWX/telex,
which are electronic free-form messages, may have
1. Identify the transactions and their defining field identifiers but have no required order to the
actions. information. A summary DFD for a money transfer
2. Note potential situations in which modules system might look like Figure 8-17, which shows a
can be combined. For instance, the action is deceptively simple process. What makes the process
the same but the transaction is different-this difficult is that the data entry-parse-edit processes
identifies a reusable module. are different for each message type, having differ-
3. Begin to draw the structure chart with a high- ent edit criteria, formats, and acceptance parameters.
level coordination module as the top of the The partitioning for the transaction DFD can be
transaction hierarchy. The coordination mod- either a high-level summary or detailed. The sum-
ule determines transaction type and dis- mary partition (see Figure 8-17) shows afferent
patches processing to a lower level. flows on the summary DFD, which is annotated that
4. For each transaction, or cohesive collection structuring is by transaction type. The detailed DFD
of transactions, specify a transaction module (see Figure 8-18) shows each type of transaction
to complete processing it. with its own set of afferent and efferent flows.
5. For each transaction, decompose and create To create a first-cut structure chart, one control
subordinate function module(s) to accom- module is defined for each transaction's afferent
plish the function( s) of the transaction. If a stream and efferent stream; there may be only one
transaction has only one unique function, transform center. For each transaction, the afferent
then keep the unique action as part of the data flows are used to define data couples. The
transaction module identified in the previous control couples relate to data passed between
step. modules. When control is within a superior mod-
Process Design Activities 295
Afferent Flow
Raw Id'd
Trans
4.0
Process t--t--~
Customer Edited
Trans
Central
Transform Ack
Trans
Efferent Flow
ule, it is shown via a diamond to indicate selec- move to transform analysis to complete the struc-
tion from among the transaction subprocesses (see ture chart.
Figure 8-19).
TWX!Telex
Transaction
BankWire
Transaction
FedWire
Transaction
To properly structure modules, their interrelation- First, we identify the central transform and affer-
ships and the nature of the application must be well ent and efferent flows. Look at the DFD and locate
understood. If a system concept has not yet been each stream of processing for each input. Trace each
decided, design cannot be finalized until it is. The stream until you find the data flow that identifies
concept includes the timing of the application as valid, processable input that is the end of an affer-
batch, on-line or real-time for each process, and a ent stream. The afferent and efferent arcs refer only
definition of how the modules will work together in to the processes in the diagram. During this part of
production. This activity may be concurrent with the transform analysis, files and data flows are ig-
transform analysis, but should have been decided to nored except in determining afferent and efferent
structure and package processes for an efficient pro- flows.
duction environment. This activity is specific to the After identifying the afferent flows, trace back-
application and will be discussed again for ABC ward from specific outputs (files or flows to entities)
rental processing. to identify the efferent flows. The net afferent and
Process Design Activities 297
6.0
Update
Master
from Tran
New
Master
Record
Afferent Process
Coordination
Central
Flows Transform Efferent
Flow
efferent outputs are used to determine the initial The second input stream deals with the master
structure of the structure chart, using a process called file. The Master Record is input to Get Master
factoring. Factoring is the act of placing each Record; successfully read master records flow
unbroken, single strand of processes into its own through the process. Once the Logical Trans Record
control structure, and of creating new control and Master Record are both present, the input trans-
processes for split strands at the point of the split. formations are complete. These two afferent streams
The new control structure is placed under the input, completely describe inputs, and the arc is drawn over
process, or output controls as appropriate. the Logical Trans Record and Master Record data
A master file update is shown as Figure 8-20 to flows (see Figure 8-20).
trace the streams. In this diagram, we have two The two streams of data are first processed to-
afferent data streams which come together at Match gether in Match Trans to Master. Information to be
Trans to Master. The first input, Trans Data flows updated flows through Update Master from Trans to
through process Get Trans and through Edit Trans to become Updated Master. The error report coming
become Edited Trans. Successfully edited transac- from the match process is considered a trivial out-
tion parts flow through Collect Transactions to put and does not change the essential transform na-
become Logical Trans Record. ture of the process. The argument that Match Trans
Process Design Activities 299
to Master is part of the afferent stream might be net output data. So, in the example, the input stream
made. While it could be treated as such, the input is Get Input; the transform stream is Process; the
data is ready to be processed; that is, transactions output stream is Write New Master. Each stream rep-
by themselves, master records by themselves, and resents the major elements of processing. Because
transactions with master records might all be pro- the process and input streams both are compound,
cessed. Here, we interpret the first transformation each has at least two streams beneath them-one for
as matching. each sequential process stream to reach the net out-
The data flow out of Update Master from Trans is put data.
a net outflow, and Write New Master is an efferent Notice that the DFD process names identify both
process. The efferent arc is drawn over the data flow data and transformation processes. Make sure that
Updated Master. the lowest-level names on the structure chart are
Next, we factor three basic structures that relate identical to the name on the data flow diagram to
to input-process-output processing (see Figure 8-21). simplify completeness checking.
If there is more than one process in a stream, get- Notice also that there is transformation process-
ting the net output data may require some inter- ing within the afferent and efferent streams. Modules
process coordination. The coordination activities are frequently mix input/output and transform process-
grouped and identified by a name that identifies the ing, and there is no absolute way to distinguish into
Master File
Update
Updated
Master
Record
1
Get Input
; Master
EOF
Process
tMaster
Write New
Master
1 Master
Record
1 1
Master
Record
EOF
Edited
Trans
1 Master
EOF
1 Edited
Trans
Updated
Master
Record
Get Update
Get Master Match Trans from
Complete
Record to Master Master
Transaction
cp .. Edited EditeJP
Card .. Edited
Image, cb Card Card-' cb Trans
which stream the module belongs. The rule of thumb require a detailed understanding of the problem and
is to place a module in the stream which best a design approach that solves the whole problem. In
describes the majority of its processing. ABC Video's case, we have to decide what the rela-
Once the module is on the structure chart, we tionships of rent, return, history, and maintenance
specifically evaluate it to ensure that it meets the processing are to each other. If you have not done
principles of fan-out, span of control, maximal cohe- this yet, now is the time to do it. Before we continue
sion, and minimal coupling. If it violates even one with design of transform analysis, then, we first dis-
principle, experiment with moving the module to the cuss the design approach and r~tionale.
alternative streams and test if it better balances pro-
cessing, without changing the processing. If so, DESIGN APPROACH AND RATIONALE. In
leave it in the new location; otherwise note that the Chapter 7, Table 7-5 identified the Structured Eng-
unbalanced part of the structure chart may need spe- lish pseudo-code for ABC's rental processing and
cial design attention to avoid production bottlenecks. we did not discuss it in detail. Now, we want to
Decompose the structure chart entries for each examine it carefully to determine an efficient, cohe-
process. The three heuristics to guide the decompo- sive, and minimally coupled decomposition of the
sition are: process. When we partition the ABC Level 0 DFD
from Figure 7-26, customer and video maintenance
• Is the decomposition also an IPO structure? If
are afferent streams, reports are efferent, and rental
yes, continue; if no, do not decompose it.
and return are the central transform& (see Figure
• Does the control of the decomposed process-
8-22). We will attend only to create and return
ing change? If yes, do not decompose it. If no,
rentals since they are the essence and hardest portion
continue.
of the application.
• Does the nature of the process change? That
There is a design decision to have return process-
is, if the process is a date-validation, for
ing as a subprocess of rental processing that needs
instance, once it is decomposed is it still a
some discussion. Then we will continue with the
date-validation? If no, continue. If yes, do not
design. The overall design could be to separate
decompose it. In this example, I might try to
rentals and returns as two different processes, but are
decompose a date-validation into month-vali-
they? Think in the context of the video store about
date, day-validate, and year-validate. I would
how the interactions with custpmers takes place.
need to add a date-validate to check all three
Customers return tapes previously taken out. Then
pieces together. Instead of a plain date-vali-
they select tapes for rental and pay all outstanding
date, I have (a) changed the nature of the
fees, including current and past returns that gener-
process, and (b) added control logic that was
ate late fees. To have late fees, a tape must have been
not necessary.
returned. 2 Rentals and returns are separated in time;
The thought process in analyzing depth is simi- they have separate actions taken on files. ABC has
lar to that used in analyzing the number of organi- any combination of rentals with returns (with or
zationallevels in reengineering. We want only those without late fees) and open rentals. All open rentals
levels that are required to control hierarchic com- are viewed during rental processing, but need not
plexity. Any extra levels of hierarchy should be be during r"eturn processing. Adding a return date
omitted. Now let us turn to ABC rental processing to and late fees is a trivial addition. Returns could be
do transform analysis and develop the structure
chart.
ABC Video Example Transform Analysis 2 In a real video rental system, you would also have a delin-
quent or exceptional charges process to add fees for lost and
The decisions about factoring are based on the prin- damaged tapes. We do not consider that complexity here as it
ciples of coupling and cohesion, but they also does not materially add to the discussion.
Process Design Activities 301
End of Day
Rental Summary
3.0
Create
Rental
Order
Return, Payment
Return
Rental
Central Transform
5.0
Video New Video
Vendor Maintain
Video
Afferent
FIGURE 8-22 ABC Video Level 0 DFD Partitioned (same as Figure 7-26)
independent of rentals, so there are three design However, since returns can be done independently
alternatives: from rentals, the system should not require rental
processing to do a return. This alternative is an
• Returns are separated from rentals.
acceptable partial solution, but the rest of the solu-
• Rentals are a subset of returns.
tion must be included.
• Returns are a subset of rentals.
The second alternative is to treat rentals as part
If returns are separated from rentals, there would of the return process. This reasoning recognizes that
be two payment processes-one for the return and a rental precedes a return. All returns would need a
one for the rental. If a rental includes a return, this rental/no rental indicator entry and assume that more
is not 'minimal bureaucracy' and is not desirable. than 50% of the time, rentals accompany returns.
302 CHAPTER 8 Process-Oriented Design
Which happens more frequently-returns with start with the last DFD created in the analysis phase,
rentals, or rentals without returns? Let's say Vic does and the data dictionary entries that define the DFD
not know and reason through the process. Since details. Figure 7-28 is reproduced here as Figure
returns can be any of three ways, only one of which 8-23, with a first-cut partitioning to identify the cen-
is with rentals, coupling them as rental-within-return tral transform.
should be less efficient than either of the other First, we evaluate each process. We will use the
two choices. pseudo-code that is in the data dictionary (see Figure
Last, we can treat returns as part of the rental 8-24). The DFD shows three rental subprocesses:
process. If returns are within rentals, we have some Get Valid Rental, Process Fees and Money, and Cre-
different issues. What information identifies the ate and Print Rental. Each of the subprocesses might
beginning of a rental? What identifies the beginning be further divided into logical components. Try to
of a return? A customer number could be used to sig- split a routine into a subroutine for each function or
nify rental processing and a video number could sig- data change. First, evaluate the potential split to
nify a return. If we do this, we need to make sure make sure the subroutines are all still needed to do
the numbering schemes are distinct and nonoverlap- the routine. This double-checks that the original
ping. We could have menu selection for both rental thinking was correct. Then, evaluate each potential
and return that determines the start of processing; split asking if adding the subroutine changes the
then return processing also could be called a sub- control, nature, or processing of the routine. If yes,
process of rentals. Either of these choices would do not separate the routine from the rest of the logic;
work if we choose this option. For both alternatives, if no, abstract out the subroutine.
the software needs to be reevaluated to maximize For ABC, Get Valid Rental is the most complex
reusable modules because many actions on rentals of the routines and is evaluated in detail. Get Valid
are also taken on returns, including reading and dis- Rental has three subroutines that we evaluate: Get
play of open rentals and customer information. Valid Customer, Get Open Rentals, and Get Valid
Having identified the alternatives and issues, we Video. These splits are based on the different files
conduct observations and collect data to justify a that are read to obtain data for processing a rental.
selection. The results show that 90% of returns, or Without all three of these actions, we do not have a
about 180 tapes per day, are on time. Of those, 50% valid rental, so the original designation of Get Valid
are returned through the drop box, and 50% (90 Rental appears correct. Figure 8-25 shows refined
tapes) are returned in person with new rentals. The pseudo-code for ABC rental processing with clearer
remaining 10% of returns also have about 50% structure and only structured constructs. Subroutines
(10 tapes) accompanying new rentals. So, about are shown with their own headings.
100 tapes a day, or 50% of rentals are the return- If we are to accommodate returns during rental
then-rent type. These numbers justify having returns processing, we have to decide where and how rentals
as a subprocess of rentals. They also justify having fit into the pseudo-code. We want to allow return
returns as a stand-alone process. We will allow both. dates to be added to open rentals. We also want to
Deciding to support both separate and return- allow returns before rentals and returns within
within-rental processing means that we must con- rentals. This implies that there are two places in the
sciously decide on reusable modules for the process where a rental Video ID might be entered:
activities the two functions both perform: reading before or after the Customer ID. If the Video ID is
and display of open rentals and customer informa- entered first, the application would initiate in the
tion, payment processing, and writing of processing Return process; from there, we need to allow addi-
results to the open rental files. We will try to design tional rentals. If the Customer ID is entered first, the
with at least these functions as reusable modules. application would initiate rental; from there, we need
to allow returns. To allow both of these actions to
DEVELOP AND DECOMPOSE THE STRUC- lead to rental and/or return processing, we need to
TURE CHART. To begin transform analysis, we add some control structure to the pseudo-code (see
Process Design Activities 303
Customer File
Video File
Rental File
FIGURE 8-23 ABC Video Levell DFD Partitioned (same as Figure 7-28)
Figure 8-26). The control structure also changes the Valid Customer without changing the logic or adding
resulting structure chart somewhat even though the any new functions.
DFDs are not changed. The results of the other evaluations are presented.
Next, we evaluate the refined pseudo-code and Walk-through the same procedure and see if you
inspect each subroutine individually to determine if develop the same subroutines. Here we used the
further decomposition is feasible (see Figure 8-27). pseudo-code to decompose, but we could have used
For Get Valid Customer, does the processing stay the text or only our knowledge of processing to describe
same? That is, are the detail lines of procedure this thinking. When the decomposition is complete
information the same? By adding the subroutine we for a particular process stream, it is translated to a
want to add a level of abstraction but not new logic. structure chart.
In this case, the answer is yes. Now look at the
details of Get Valid Customer. The subprocesses are
Get Customer Number-a screen input process, Complete the Structure Chart
Read and Test Customer File-a disk input process
Rules for Completing the Structure Chart
with logic to test read success and determine credit
worthiness, and Display Customer Info-a screen Completion of the structure chart includes adding
output process. Again, we have decomposed Get data and control couples and evaluating the diagram.
304 CHAPTER 8 Process-Oriented Design
FIGURE 8-26 Get Valid Rental Pseudo-code with Control Structure for Returns
Structure chart completion rules are: 1. Evaluate the diagram for cohesion. Does
each module do one thing and do it
1. For each data flow on the DFD add exactly completely?
one data couple. Use exactly the same data 2. Evaluate the diagram for fan-out, fan-in,
flow name for the data couple. skew, and redesign as required, adding new
2. For each control module, decide how it will levels of control. Note skewed processing for
control its subs. If you need to refine the attention during program design.
pseudo-code to decide control, do this. Add 3. Evaluate the diagram for minimal coupling.
control couples to the diagram when they are Is the same data used by many modules? Do
required between modules. control modules pass only data needed for
3. For modules that select one of several paths processing? Do control modules minimize
for processing, show the selection logic with their scope of effect?
a diamond in the module with the logic at-
tached to the task transfer line. These are all discussed in this section.
First, the structure chart is drawn based on the de-
Rules of thumb for developing the structure chart composition exercises. Then data couples are added
are: to the diagram for each data flow on the DFD. If the
306 CHAPTER 8 Process-Oriented Design
structure chart is at a lower level of detail, use the Next, for each control module, decide how it will
data flow as a starting point and define the specific control its subprocesses and add the control couples
data passed to and from each module. Show all to the diagram. Decide whether the logic will be in
data requirements for each module completely. the control module or in the subprocess. If the logic
Make sure that all names are exactly as they are in is in the control module, the goal is for the controller
the dictionary. to simply call the subordinate module, pass data to
Process Design Activities 307
...
If data = x move 1 to go-sw.
If data = y move 2 to go-sw.
If data = z move 3 to go-sw.
Call GO-MOD .....
Pathological
Control
Structure
Go-Data f
Go-sw;
... GO-MOD
If go-sw = 1 do go-1.
If go-sw = 2 do go-2.
If go-sw = 3 do go-3 .
... Return
Solution 1
Control
Solution 2
L-<>-
Go
Da;a f G~
Data
f Go-
Data
f
g~a 11
... GO-MOD
Go-1 Go-2 Go-3 If data = x do go-1.
If data = y do go-2.
If data = z do go-3 .
... Return
transform, and receive the transform's data back. If An example of this problem and two solutions are
any other processing takes place, rethink the control illustrated in Figure 8-28. If the lower level is doing
process because it is not minimally coupled. too many things, then decompose them to create sev-
A control couple might be sent to the subprocess eral single-purpose modules. If the lower level is
for it to determine what to do. This mayor may not not doing multiple functions, then move control for
be okay. Where is the control couple 'set' and the module into the module itself. In both cases, the
'reset'? If in the control module, this is acceptable. If goal of minimal coupling is attained.
somewhere else, rethink the control process and sim- Next, the diagram is evaluated for cohesion, cou-
plify it. Any time you must send a control couple for pling, hierarchy width, hierarchy depth, fan-out, fan-
a module to decide which action to take, you identify in, span of control, and skew. Evaluate the diagram
a potential problem. The lower-level module may for cohesion (see Table 8-2 for definition of cohesion
be doing too many things; otherwise it would not types). Check that each module does one thing and
need to decide what to do, or the control may be in does it completely. If several modules must be taken
the wrong module. together to perform a whole function, the structure is
308 CHAPTER 8 Process-Oriented Design
excessively decomposed. Regroup the processes anq assembler or Cobol, might be used to make read/
restructure the diagram. write processing efficient. The opposite is true of
Evaluate the diagram for width, depth, fan-out, Cobol. Cobol is not good at high precision, scien-
fan-in, and skew. These are visual checks to see if tific, mathematical processing. In a Cobol applica-
some portion of the structure is inconsistent with the tion, process-bound modules and their data would be
rest of the structure. The inconsistency does not nec- designed either for another language, or to minimize
essarily mean that the diagram is wrong, only that the language effects.
there may be production bottlenecks relating to the Finally, evaluate the diagram for minimal cou-
out-of-balance processes. For a wide structure, dou- pling. First look at data couples. If you see the same
ble check that the subprocesses really aU relate to data all over the diagram, there may be a problem.
one and only one process. If not, add a new control Either you are not specifying the data at the element
module, else leave as is. level, or data coupling is the least coupling you will
For deep structures, check to see if each level of be able to attain. Make sure that only needed data is
depth is performing some function beyond control. identified for passing to modules. Data coupling is
Ask yourself why all the levels are needed. If there is not the best coupling, but it is tolerable.
no good reason, get rid of the level and move its Next look at control couples one last time. Make
functions either up or down in the hierarchy, prefer- sure that they are set and reset in the same or
ably up. Ask yourself if fewer levels can accomplish directly-related modules, and make sure that, if
the same process. If the answer suggests reducing passed, they are passed for a reason. If either of these
the levels of hierarchy, restructure the diagram and conditions are violated, change the coupling.
keep only essential levels. To summarize so far, decide the system concept;
For fan-in modules, check that each using module partition the DFD; develop a first-cut structure chart;
has the same type of data being passed and expects decompose the structure chart using pseudo-code of
the same type of results from the fan-in module. If the functions as needed to guide the process; add
there are any differences, then either make the data couples; add control couples; evaluate and
using modules consistent, or add a new module to re- revise as needed.
place the fan-in module for the inconsistent user
module. .
ABC Video Example Structure Chart
Skewed diagrams identify a fundamental imbal-
ance of the application that may have been hidden ABC's structure chart will begin with the Levell
before: that it is input-bound, output-bound, 1/0- DFD factoring and progress to provide the detail for
bound, or process-bound. Skew is not necessarily a modules as expressed in the pseudo-code. There are
problem that results in restructuring a diagram. three first level modules: Get Valid Rental, Process
When skewed processing is identified, you should Fees & Money, and Create and Print Rental (see
verify that it is not an artifact of your factoring. If it Figure 8-~9). To get the next level of detail, we use
is, remove the skew from the diagram by restructur- the pseudo-code or decomposed structure charts. In
ing the modules. our case, we use the pseudo-code. In Figure 8-27, the
Skew is not always a problem. When a skewed high level pseudo-code has only module names. We
application is being designed, the designers normally simply transfer those names to modules on the struc-
spend more time designing the code for the bound ture chart, attending to the control logic present in
portion of the problem to ensure that it does not the diagram.
cause process inefficiencies. For instance, Fortran is For each if statement, we need to decide whether
notoriously inefficient at physical input/output (i.e., that statement will result in a direct call (our choice,
reading and writing files). For anything but a here) or whether it will result in a control couple
process-bound application, Fortran is not the best being passed. Direct calls are preferred to minimize
language used. For a process-bound Fortran appli- coupling. When a direct call is used, the module is
cation, with many I/Os, another language, such as executed in its entirety every time it is called.
Process Design Activities 309
Legend:
Reused from
another diagram
Reused on this
diagram
We identify reused modules by a slash in the change may have a language impact, so we will not
lower left corner of the rectangles to show the com- change it until we decide program packages.
plete morphology of the diagram. The first-cut struc- We note it for attention during packaging and pro-
ture chart shows that the processing is skewed gramming. There are no other obvious problems
toward input. Because there are three data stores with the first-cut structure chart. Since we have
affected by every process, there is no way to get rid developed it bottom-up, using the pseudo-code as
of the skew without getting rid of the control level. Is the basis, it is as good as our pseudo-code.
the control level essential? If we omit the control Next, we add the data and control couples needed
level is the processing the same? Do we violate fan- to manage processing. The final diagram is shown in
out if we remove the control level ? The answers are Figure 8-30, which we evaluate next.
no, mostly, and no, respectively. If we remove the Each module appears to do only one thing. The
control level, its logic must go somewhere. The logic diagram is input -skewed as already discussed. The
can move up a module and not violate fan-out. The span of control and fan-out seem reasonable.
310 CHAPTER 8 Process-Oriented Design
Legend:
OR Open Rental
C Customer
V Video
VR Valid Rental
Upd. OR Updated OR
The reused modules each have the same input data. companies without job specialization, a project team
The hierarchy is not unnecessarily deep, although member acts as the DBA to design the physical data-
the control code for Get Valid Rental, Rent, and base. Physical database design is a nontrivial task
Return might be able to be combined depending on that may take several weeks or even months.
the language. Coupling is at the data level and is
acceptable. Next, we turn to designing the physical Rules for Designing the Physical Database
database.
The general physical database design activities are
summarized below. Keep in mind that many other
Design the Physical Database activities may be involved in designing a physical
database that relate to a specific implementation
Physical database design takes place concurrently
environment.
with factoring and decomposition. A person with
special skills, usually a database administrator 1. Define user views based on transaction types
(DBA), actually does physical database design. In and data accessed for each transaction.
Process Design Activities 311
2. Identify access method if choices exist. quirements to user views to processes. Each process,
3. Map user views to access method and storage then, has specific data items assigned. Every team
technology to optimize disk space and to member must know exactly what data items to
minimize access time. access and how to access them. If a module or pro-
4. Build prototype and test, revising as gram accesses the wrong data item, an inconsistent
indicated. database might result. Also, minimal data coupling
5. Develop database for application testing. requires that each process access only data that it
6. Document physical database design and dis- requires. Incorrect use of access methods can lead
tribute user view information to all project to process bottlenecks or an inconsistent database.
team members. To assure that programs are using the data correctly,
7. Work with conversion team to build produc- the DBA may participate in walk-throughs to moni-
tion databases. tor data access.
The DBA works with the test team to load the
Designing user views means to analyze the trans- data needed for testing. The DBA also works with
actions or inputs of each process to define which the conversion team to load the initial production
database items are required. In general, the data database. These activities may be trivial or may
items processed together should be stored together. require hiring of temporary clerks to input informa-
These logical design activities constrain the physical tion to the database. The DBA and the two teams
design and help the person mapping to hardware work together to verify the correctness of the data, to
and software. provide program test database access to the rest
In selecting the access method, the physical data of the development team, and to provide easily
designer seeks to optimize matching available access accessed backup when the test database is compro-
methods to access requirements. Access method mised. After the test database is loaded, the backup
choices usually are data sequenced (i.e., indexed), and recovery procedures, transaction logic proce-
entry sequenced (i.e., direct), inverted lists, or some dures, and other database integrity procedures are all
type ofb-tree processing. Each DBMS and operating finalized and tested.
system has its own access methodes) from which To summarize, a person who intimately knows
selection is made. The details of these access meth- the technical production data environment acts as a
ods are beyond the scope of this text. 3 DBA, mapping the database to a physical environ-
User views are mapped to the access method and ment and building both test and production data-
a specific media. Media mapping seeks to optimize bases. The DBA provides training and guidance to
access time for individual items and sets of items. the other team members for data access, and partici-
It also seeks to minimize wasted space while provid-
pates in data related walk-throughs.
ing for growth of the database. Since media have
become one of the major expenses in the computing ABC Video Example Physical
environment, there may be political issues involved
with physical database design. At this point, a data-
Database Design
base walk-through reviews all database design In order to do the physical database design, a DBMS
before a prototype is built. must be selected. We will design as if some SOL
The DBA documents and trains team members engine were being used. SOL's physical design is
in data access requirements. The DBA, working closely tied to the logical design so the design activ-
from the application specification, maps data re- ity becomes less DBMS software sensitive. In addi-
tion, SOL data definition is the same in both
mainframe and micro environments so the design
3 For more on access methods and storage considerations, see
activity does not need to be hardware platform sen-
references to Fabbri and Schwab [1992], Codd [1990], Bohl sitive. The amount of storage space (i.e., number of
[1981], and Claybrook [1983] in the references. tracks or cylinders) will vary, of course, since disks
312 CHAPTER 8 Process-Oriented Design
on PCs do not yet hold as much information as main- be walked through again at this point to verify pro-
frame disks. cessing requirements for the database. The database
Beginning with the logical design from Table is then prototyped and documented. The information
7 -7, we define the relations and data items that are needed for each program is included in program
required to develop user views. Remember from specifications. Team members are usually given an
database class, that the logical database design can overview of the database environment either as part
map directly to the physical database. The relations of the last walk-through or as a separate training
defining the actual database mayor may not be session. When the prototype appears complete
accessed by users. For security reasons, user views and workable, test and production databases are
may be used to control access to data and only the developed.
DBA would even know the real relation names.
To define user views, we examine each process
and identify the data requirements. List the require- Design Program Packages
ments by process (see Table 8-5). Match similar data
requirements across processes to identify shared user Rules for Designing Program Packages
views. The problem is to balance the number of
The activities for grouping modules into program
views against the number of processes. Ideally a
packages are listed below; as you can see, they are
handful of user views are defined; a heuristic for
general guidelines, not rules. There are no rules for
large applications is about 20 user views. Beyond
packaging because it is an environment-dependent
that, more DBAs are required and database mainte-
activity. Packages for firmware or an 8K micro
nance becomes difficult. In a large application, keep-
computer are entirely different than packages for a
ing the number of user views manageable may be
mainframe. Also, the implementation language de-
difficult and require several design and walk-through
termines how and when some types of coupling are
iterations.
done. With these ideas in mind, the guidelines apply
For ABC rental processing, we need a user view
common sense to identifying program execute units.
for each major data store: Customer, Video Inven-
tory, and Open Rentals. We also need user views for 1. Identify modules that perform functionally
the minor files: Video History, Customer History, related activities, are part of iteration units, or
and End OfDay Totals. If data coupling and memory which access the same data. The related mod-
usage are not an issue, using a SQL database, we can ules identified should be considered for pack-
create one user view for each of Customer, Video, aging together for execution.
and Open Rental, and create one joined user view 2. Develop pseudo-code for the logic functions
using the common fields to link them together. The being performed. Use only structured pro-
individual views are used for processes that do not gramming constructs: iteration, selection, and
need all of the data together; the joined view can be sequence. Document complex logic using
used for query processing and for processes that decision tables or decision trees.
need all of the data. The resulting data definitions for 3. Logically test the user views developed with
customer, video, open rentals, and the related user the DBA to reevaluate their usefulness for
views are shown in Table 8-6. We also need sepa- each program package.
rate user views for the history files and EOD totals. 4. Design each module to have one entry and
They are included in the table. one exit.
At this point, with SQL software, we are ready 5. Design each module such that its contents are
to prototype the database. If either access method unchanged from one execution to the next.
selection or storage mapping is an issue, a prototype 6. Design and document messages for called
should be built. Otherwise, the next step is to map modules. Reevaluate the messages to mini-
user views to access methods and storage media. mize coupling.
This activity depends on the implementation envi- 7. Draw a diagram of the module and all other
ronment and is beyond this text. The database may modules with which it interacts.
Process Design Activities 313
A program package is a collection of called mod- together. The other two considerations frequently
ules, called functions, and in-line code that does apply to functional groups as well.
some atomic process, and that will become an exe- If a group of activities repeat as part of an itera-
cute unit. The hierarchy of criteria for designing tive sequence, all activities in the group should be
packages is to package by function, by iteration clus- together in the program package. Individual mod-
ters, or by need to access the same data. At all times, ules can be coded and unit tested alone, but they
you must keep in mind any production environment should be packaged for integration testing and
constraints that must also be part of the design. For implementation.
instance, if the application will be on a LAN, you Grouping modules that access the same data min-
may want to design packages to minimize the possi- imizes physical reading and writing of files. The
bility of multiple users for a process. major goal is to read the same data record in anyone
Functional grouping is, by far, the most impor- pass of the processes no more than once. We want
tant. Functional grouping ensures high cohesion for to minimize physical I/O because it is the slowest
the program. Any modules that are required to per- process the computer performs. Grouping modules
form some whole function should be grouped by data accessed minimizes the frequency of read-
Process Design Activities 315
ing. Real-time applications, especially, are vulnera- removed when the execution is complete. When a
ble to multiple reads and writes of the same data, module must maintain a 'memory' of its last actions,
slowing down response time. coupling is not minimized.
Grouping modules by data access is a form of Design and document messages for called mod-
data coupling that minimizes the chance of unex- ules. Messages should contain, at most, calling/
pected changes to data. If we do not package mod- called module names, data needed for execution,
ules together, but only read and write data once, the control couples, and variable names for results of
major alternative to common packaging is to use execution.
global data areas in memory. Global data is not pro- You might draw a diagram of the module and all
tected and is vulnerable to corruption. other modules with which it interacts to facilitate
When the packages are complete, develop Struc- visual understanding of the module and its role in the
tured English pseudo-code for the logic functions application.
being performed. Use only structured programming
constructs-iteration, selection, sequence. Docu- ABC Video Example Program
ment complex logic using decision tables or decision Package Design
trees. Include control structures and names for all
modules. Pseudo-code may have been done as part Working with the final structure chart in Figure 8-30,
of analysis, or earlier in design, as we did for ABC our biggest decision is whether or not to package all
rental and return. Incidental activities, or less cru- of rental/return processing together, and how. Do
cial activities, may have been overlooked or not we write one program with performed modules, one
refined. Pseudo-code is completed now and struc- with called modules, or a combination of the two?
tured for use in program specifications. ABC is going to be in a SQL-compatible database
Decision tables and trees might be used to docu- environment, on a LAN, and requires access by PCs.
ment complex decisions. While a discussion of them The choice of language is not limited with these
is beyond this text, an example of each is shown in requirements, but packaging without knowing the
Figure 8-3l. language is not recommended. For this exercise, we
As we design the program packages, we logically will assume that Focus,4 the 4GL, will be used.
test the user views developed with the DBA to Focus' application generator, called the "Dia-
reevaluate their usefulness. The questions to ask are: logue Manager," allows both in-line and called mod-
Is all the needed data available? Is security ade- ules to be used. Calling modules of nonFocus
quate? Is extra data present? If any of these answers languages are allowed but can be tricky. The lan-
indicate a problem, discuss it with the DBA and guage has its own DBMS that is SQL-compatible,
determine his or her reasons for the design. If the but it is not fully relational. It falls in the category
design should change, the DBA is the person to do it. of DBMSs called 'born again relational,' that is, the
Design each module to have one entry and one DBMS is hierarchic, networked, or relational at the
exit. Multiple entrances and exits to program mod- DBA's discretion. Relationality is allowed but not re-
ules imply problems because of selection and go to quired in Focus. Focus does not support the integrity
logic required to implement multiple exits and rules. We will not redesign the database here since
entrances. If each module is kept simple with one of the SQL code above could be recoded without de-
each, there are fewer testing, debugging, and main- sign changes in the Focus DBMS language.
tenance problems. At this point, we need to step back and decide
Ideally, each module should have its internal data how to package the entire application. What kind
contents the same before and after a given execution. of 'glue' will hold customer maintenance, video
That is, the state and contents of the module should
be unchanged from one execution to the next. This 4 Focus is a trademark of Information Builders Inc., New York.
does not mean that no changes take place during Focus is representative of PC-based application generators,
an execution, only that all traces of changes are including Rbase, Dbase IV, Informix, etc.
316 CHApTER 8 Process-Oriented Design
Conditions
Customer Old Old Old Old Old Old Old Old New New
Open Rentals Y Y y y N N N N
Returns Y Y N N Y Y N N
New Rentals Y N Y N Y N Y N y N
Actions
Create Customer N N N N N N N N Y Y
Check Late Fees Y Y Y Y Y Y N N Y N
Process Return Y Y N N Y y N N N N
maintenance, end-of-day, and rental/return process- approach here as Figure 8-32 shows for the applica-
ing together. We do not discuss screen design here tion, and Figure 8-33 shows for rental and return
because it is not in the methodology (it is in Chap- processing.
ter 14), but we would finalize screens while these de- The alternative to called modules is in-line code
cisions are being made. We need all of the above that is 'performed' or executed as a pseudo-called
functions to do this application, so all of the func- module. This choice is selected with 3GL languages
tions must be available in a unified environment. such as Cobol, Fortran, or PL/1 because it can be
This means that all functions must be available for easier to code, test, and maintain.
execution within the same run environment. Screens
are the 'glue' that users see that unify application
processing. The code behind the screens mayor may Specify Programs
not be unified depending on the design techniques
Rules for Specifying Programs
and language. With Focus, unification is done
through the Dialogue Manager. The specification documents all known information
4GL and PC-DBMS languages are deceptively about programs. Program specifications document
simple. To perform trivial tasks is easy, but to build the program's purpose, process requirements, the
application requires expertise. Focus is no different. logical and physical data definitions, input and out-
The complexities with Focus relate to when, where, put formats, screen layouts, constraints, and special
and how often the databases are opened and pro- processing considerations that might complicate the
cessed, how the databases are related, and how many program. Keep in mind that the term program might
concurrent users are allowed. The concurrent envi- also mean a module within a program or an exter-
ronment increases DBA complexity but changes the nally called function, or even a code fragment (e.g.,
answers to the questions about databases; it does not DB call). A program specification should include the
change the application code. So, we will assume one items shown in Table 8-7. As with program packag-
user at a time for processing. ing, there are no 'rules.' Rather there are items that
Skeleton Focus code for the application is shown should be included if they relate to the item being
in Figure 8-32. Each DFD Level 0 process is ac- specified.
counted for at this level; we even have a query func- There are two parts to a program specification:
tion that is new. Most applications require interactive one identifies interprogram relationships and com-
file query and we have not talked about it at all as munication, the other documents intraprogram pro-
part of the rental return application. The trend in cessing that takes place within the individual
business today is for users to develop their own program. Interfaces to other programs generally doc-
reports and queries using some 4GL. When the lan- ument who, what, when, where, and how communi-
guage has a built-in query facility, you can add it to cation takes place. Who identifies who initiates the
the processing without any analysis or design work, communication and who, in the real world, is
as shown here with Focus. User developed queries responsible for the interface. What identifies the
allow users to 'stay in touch' with their data and message(s) content that is used for communication.
remove a major design burden from IS personnel. When identifies the frequency and timing of the
Now that the application is accommodated within interface. Where locates the application and system
one execute environment, we return to the problem in a hardware environment; where becomes compli-
of how to package rent/return processing. The ideal cated and is crucial to processing of distributed
is to code and unit test each lowest level box on a applications. How describes the nature of the inter-
structure chart as an independent module. Then, face-internal message, external diskette, and
using the 'call' feature of the language, build a con- so forth.
trol structure, based on the design of the control and Internal program processing information includes
coordination boxes on the structure chart that calls the data, processes, formats, controls, security,
modules as needed for execution. We will use this and constraints that define a particular program.
318 CHAPTER 8 Process-Oriented Design
TABLE 8-8 ABC Example Get Valid Customer Program Specification (Continued)
CPhone
or CustlD Valid Cust
(Clast, 1.0 2.0 3.0 Record 4.0 Return
Cfirst) Ack
• Accept
Input
Read
CUstomer
Check
Credit
Set Data
Values
Get Valid
Customer
• Cust
cb
.----~----,
Record
CCredit
Cust 9
Record ,.----"-----,
Get Check Set Data
Customer Credit Values
Accept
CPhone ...
CreditErr
Table Customer
State Char(2) Not null,
(Cphone Char(lO) Not null, Zip Char(lO) Not null,
Clast VarChar(50) Not null, CCtype Char(l) Not null,
Cfirst VarChar(25) Not null, Ccno Char(l7) Not null,
Clinel VarChar(50) Not null, Ccexp Date Not null,
Cline2 VarChar(50) Not null, CCredit Char(l),
City VarChar(530) Not null, Primary key (Cphone));
322 CHAPTER 8 Process-Oriented Design
with program specification or code generation (see details of the application. For implementation spe-
Table 8-9). cific details, that makes sense, but the heuristics for
evaluation cannot be applied in every situation. Con-
sequently, the SE must know what situations apply
and don't apply. More than the other methods dis-
STRENGTHSAND _________ cussed in this book, you must know when to adhere
to, bend, and break the rules of structured methods.
WEAKNESSES OF _________ The methodology's ability to result in minimal
PROCESS ANALYSIS _______ coupling and maximal cohesion is low because of its
reliance on the SE's ability. If coupling and cohesion
AND DESIGN ____________ are not optimal, maintenance will cost more than it
METHODOLOGIES _ _ _ __ should, and the application will be difficult to test. In
1972, D. Parnas wrote about maximal cohesion and
The objectives of structured analysis and design are minimal coupling as desirable characteristics of pro-
reasonably clear; the manner of obtaining the objec- grams. In 1968, Dijkstra wrote about the problems
tives is much less clear. Structured methods rely on with 'go to' statements in programs and proposed
the individual SE's expertise to design the technical goto-Iess programming. In 1966, Bohm and Jacopini
Strengths and Weaknesses of Process Analysis and Design Methodologies 323
proposed structured programming's minimalist con- evaluate designs, is required. The more complex the
tents as sequence, iteration (e.g., if ... then ... else) application, the more important having experienced
and selection (e.g., do while and do until). By the senior analysts becomes.
time structured analysis and design were docu- Another problem is that structured design does
mented in books, the notions of coupling and cohe- not encompass enough of the activities to make it a
sion were understood fairly well; but how to obtain complete methodology. We must have screen de-
them was not. signs in order to develop a program specification.
General statements about keeping the pieces We must know the details of interfaces to other
small and related to one part of the problem domain applications and messages to/from them to be able to
rely on the analyst to know what to do and when to develop program specifications. Structured methods
start and stop doing it. Unfortunately, only experi- do not pay any attention to either of these issues. To
ence can guide such vague suggestions. While develop an application, the SE needs to analyze
novices can learn to rely on the methodology to requirements and design for control, input, output,
guide their actions, they have no basis for evaluat- security, and recoverability. None of these are en-
ing the correctness or incorrectness of their work. compassed in the process-oriented methods. To sum-
Thus, the apprenticeship approach, with a junior per- marize, process methods are useful in analyzing and
son working with a more senior one to learn how to designing applications that are procedural in nature;
324 CHAPTER 8 Process-Oriented Design
but the methods omit a great many required analy- REFERENCES ____________
sis and design activities.
Alexander, Christopher, Notes on the Synthesis of Form.
Cambridge, MA: Harvard University Press, 1971.
SUMMARy ______________ B6hm, Corrado, and Guiseppe J acopini, "Flow diagrams,
Turing machines, and languages with only two forma-
In this chapter, structured design which follows tion rules," Communications of the ACM, Vol. 9, #5,
structured analysis in development, was discussed. May 1966, pp. 366-371.
The results of structured analysis-a set of leveled Couger, J. D., M. A. Colter, and R. W. Knapp, Advanced
data flow diagrams, data dictionary, and procedural System Development/Feasibility Techniques. NY: John
requirements-are the inputs to the design process. Wiley & Sons, 1982.
Curtis, B., M. I. Kellner, and J. Over, "Process model-
The major results of structured design are program
ing," Communications of the ACM, Vol. 35, #9, Sep-
specifications which detail the mapping of functional
tember 1992, pp. 75-90.
requirements into the production hardware and soft- DeMarco, T., Structured Analysis and System Specifica-
ware environment. tion. NY: Yourdon, Inc., 1978.
First, using either transaction or transform analy- Dijkstra, Edsgar W., "Go to statement considered harm-
sis, the DFD is partitioned into afferent, efferent, and ful," Communications of the ACM, Vol. 11, #3, March
central transform processes. The streams of process- 1968, pp. 147-148.
ing are factored to develop a structure chart. The Flaatten, P.O., D. J. McCubbrey, P. D. O'Riordan, and
processes are further decomposed into system-like K. Burgess, Foundations of Business Systems, 2nd ed.
subprocesses until further decomposition would NY: The Dryden Press, 1992.
change the nature of the process. Data requirements Frances, B., "A window into CASE," Datamation, March
1, 1992, pp. 43-44.
are documented in data couples; control is docu-
Krasner, J., J. Terrel, A. Lindhan, P. Arnold, and W. H.
mented in control couples. The chart is evaluated
Ett, "Lessons learned from a software process model-
for fan-out, fan-in, skew, cohesion, coupling, scope ing system," Communications of the ACM, Vol. 35,
of effect, and scope of control. The structure chart #9, September 1992, pp. 91-100.
is revised and reevaluated as required. Lindholm, E., "A world of CASE tools," Datamation,
The physical database is designed. Data needs for March 1, 1992, pp. 75-81.
each data flow in the application are listed by McClure, c., The Three R's of Software Automation:
process. Data similarities are matched and used to Re-Engineering, Repository and Reusability. Engle-
define user views. The access method and physical wood Cliffs, NJ: Prentice-Hall, 1992.
mapping are then decided. Physical database design McMenamin, S. M., and J. F. Palmer, Essential Systems
walk-throughs may be held to validate the design. Analysis. NY: Yourdon, Inc., 1984.
Olle, T. W., J. Hagelstein, I. G. MacDonald, C. Rolland,
Test and production databases are created.
H. G. Sol, F. J. M. Van Assche, and A. A. Verrijn-
Program packages are decided based on the
Stuart, Information Systems Methodology: A Frame-
application concept and timing. The packages de- work for Understanding. Workingham, England:
fine which modules will communicate and how. Addison-Wesley, 1988.
Pseudo-code for processes is finalized and uses only Page-Jones, M., The Practical Guide to Structured Sys-
structured programming constructs-iteration, se- tem Design, 2nd ed. Englewood Cliffs, NJ: Prentice-
quence, and selection. Decision tables and trees are Hall, 1988.
used, as necessary, to document complex decisions. Parnas, David L., "One of the criteria to be used in
Finally, program specifications are written to doc- decomposing systems into modules," Communica-
ument all known information about each module, tions of the ACM, Vol. 15, #12, December 1972,
function, or program. Specifications include data, pp. 1053-1058.
Swartout, W., and R. Balzer, "On the inevitable inter-
process, interface, constraint, and production infor-
twining of specification and implementation," Com-
mation needed for a programmer to code and unit
munications of the ACM, Vol. 25, #7, July 1982,
test the work. pp. 438-440.
Study Questions 325
3. How do you know the difference between a 8. What is the purpose of Structured English?
transform centered application and a trans- What are alternatives? For what are Structured
action-centered application? English and its alternatives used? Why?
4. What is the role cohesion plays in the partition- 9. List the contents of a program
ing process? in the decomposition process? in specification.
physical database design? in deciding program 10. Who usually does physical database design?
packages? in program specification? Why would a specialist perform this task? Can
5. What is the role coupling plays in the partition- SEs do physical database design as well? Why
ing process? in the decomposition process? in or why not?
physical database design? in deciding program 11. Partition the following DFD and draw a struc-
packages? in program specification? ture chart. Identify potential afferent and effer-
6. What are the major diagrams in the design ent flows. (There are several alternatives for
phase? How are they derived? How do they afferents.) Label the flows you decide best
relate to the work done in structured analysis? describe the processes you see. List other infor-
7. What is the reasoning process for packaging mation you need to decide what the best parti-
program elements? tioning should be.
Extra-Credit Question 327
DATA- ________________~______~
ORIENTED
ANALYSIS --------------------------~------------~
328
Definition of Business Area Analysis Terms 329
section, we describe the conceptual foundations processing with 'set' processing. Record processing
of data-oriented analysis. Then, the terminology of constrains languages and applications to one-at-a-
business area analysis is defined. This is followed time record read-manipulate-write processing
by the rules and examples of how to conduct actions even though most records receive identical
each activity. treatment in programs. By specifying the rules for
processing orlce and applying those rules to the set of
data records, or tuples as they are called in relational
theory, the individual program no longer does any
CONCEPTUAL _ _ _ _ _~ read-write processing-it is performed by the
DBMS. Applying set theory, the result of any oper-
FOUNDATIONS _ _ _ __ ation is always a set. Thus, using mathematically
Data-oriented analysis is based mainly on theories based rules, the results of database processing can be
about data. Process activities are based on the same known in advance and are provable.
systems theory which was the basis for the process Process activities performed are attributed to con-
development paradigm of Chapters 7 and 8. sulting practices that work and build on the systems
The data-related theories are semantic informa- theory underlying the process development para-
tion theory and relational database theory. Semantic digm. Some problems with DFDs are:
information theory seeks to understand the meaning • DFDs do not accommodate time.
behind the data in applications and is most obvious • DFDs have no implied sequence to
in the depiction of meaning underlying entity rela- processing.
tionship diagrams. By understanding the entities, or • DFDs assign media to data early in analysis
things, in the application, we know more about their without any real deliberation.
domains-the allowable sets of values they may
take. Eventually, rules about domain matching and These problems are eliminated in process data
entity integrity are applied to include domain pro- flow diagrams (PDFDs) that are built during IE
cessing along with data processing of the individual analysis. Process methods of decomposition rely on
attributes of entities. Relationships between entities analyst experience in process orientation. Data meth-
are as important as entities and domains. By know- ods, such as information engineering (IE), provide a
ing allowable business relationships, we can con- business-oriented approach to defining processes.
strain processing naturally, by applying business Structured process constructs-selection, iteration,
rules, without regard to organizatiortal design. Rela- and sequence-are not consciously considered in
tionship cardinality, or number, is important to process methods until structured design. Structured
knowing how many of each related item should be constructs are used in IE analysis to describe process
evaluated. Cardinality prescribes either individual relationships.
entity instances or sets of instances for processing.
By knowing more about the meaning underlying the
data in an application, constraints can be automated DEFINITION OF _ _ _ __
and made more general, thus, simplifying the appli- BUSINESS AREA _ _ _ __
cation development process.
Relational database theory is based on mathe- ANALYSIS TERMS _ _ __
matical set theory (or relational calculus) which The tasks performed during business area analysis
describes allowable operations on sets of data items. (BAA) are:
Relational theory was developed to support provably
correct processing of data items, something that can- 1. Data modeling
not be guaranteed by either hierarchic or network 2. Data analysis
database architectures. Set theory is the basis for re- 3. Functional decomposition (I.e., process
lational theory which replaces the notion of 'record' modeling)
330 CHAPTER 9 Data-Oriented Analysis
4. Process dependency analysis concept, application, or event from the real world
5. Process data flow diagramming about which we want to maintain data (see Figure
6. Process/data interaction mapping and 9-1). There are three kinds of entities: fundamental,
analysis attributive, and associative. A fundamental entity,
for instance, an order, is independent of all other
Throughout the analysis, a data dictionary or repos-
entities and can be defined without thinking about
itory is assumed to be used for documentation. The
other entities. An attributive entity is an entity
final step of BAA is completion of the repository
whose existence depends on the presence of a fun-
for all information found during analysis.
damental entity. If order is the fundamental entity,
For data modeling, the two major activities are
then order item would be an attributive entity related
the creation and refinement of an entity-relationship
to order (see Figure 9-2). Technically, you wouldn't
diagram (ERD) and entity structure analysis, along
have an order without any items, but you cannot
with an accompanying repository. When complete,
have an order item without an order. Attributive
the ERD describes the normalized data environment
entities contain repeating information relating to a
and data scope of the application. Each part of an
fundamental entity. An associative entity is used to
ERD requires definition. An entity type (shortened
simplify and define complex relationships between
to entity in this discussion)1 is some person, object,
entities. All entities are drawn on the entity relation-
ship diagram (ERD) as rectangles. 2
1 Technically, a customer is an entity who is uniquely described
by a set of attributes. The set of all customers describes an
entity type which is described by having the same attri- 2 One method of diagramming is to show relationships with a
butes. A specific entity, e.g., customer 'Wells,' is an entity diamond bisecting the line connecting entities. An associative
instance. In this text we use entity to be synonymous with entity, promoting a many-to-many relationship, is drawn as a
entity type. rectangle with the diamond inside.
EXAMPLES
Advisor to Student
Many-to-Many N:M Student to Course Part to Work Order Detail Item
Professor to Section
A relationship is a mutual association between attributive entities. For an m:n relationship, the rela-
two or more entities. It is shown as a line connect- tionship is promoted to create an associative entity.
ing the entities. A relationship has cardinality, or A synonym for associative entity is relationship
the number of the relationship. Cardinalities may be entity. The cardinalities of m:n are reversed to create
one-to-one, one-to-many, or many-to-many (see Fig- two l:m relationships (see Figure 9- 4).
ure 9-3). Cardinality is shown on a diagram by The tabular method is recommended when data
crows' feet to indicate a 'many' relationship and a and relationships are not clearly specified. The tab-
single line to indicate a singular relationship. ular method forces explicit definition of all attributes
Refinement of the ERD has two activities: attri- and their relationships. When these dependencies are
butes are defined, and the ERD is normalized. removed, each relation's data are fully, functionally
Attributes are named properties or characteristics of dependent on the primary keys. An example is
an entity which take on values. We use the terms shown in Figure 9-5. By removing repeating infor-
attribute, field, or data item, as synonyms. An in- mation (first normal form), we create attributive
stance is one occurrence of an attribute or relation. entities (for l:n relationships) and associative enti-
For example, an instance of the attribute customer- ties (for m:n relationships). In Figure 9-5, we create
ID is the number 2922951. the items from a purchase order as an attributive
Normalization is the refinement of data relation- entity. By removing partial key (second normal
ships to remove repeating information, partial key form), and nonkey (third normal form) dependen-
dependencies, and nonkey dependencies. Normal- cies, we create new fundamental entities. In the
ization can be directly applied to the ERD or can example, the new fundamental entities relate to
use a tabular method of data analysis. The direct items and vendors.
method proceeds by examination of the relation- Upon completion of data modeling, entity struc-
ship cardinalities and the attributes of entities. For ture analysis is performed to determine whether
l:n relationships, and for entities with repetitive a class structure applies. This analysis evaluates
information in the entity, we create ( or validate) each entity to determine if the same processes and
332 CHAPTER 9 Data-Oriented Analysis
Before:
After:
Associative Entity
Created by promoting
Fundamental Entity the NB relationship Fundamental Entity
A /' AlB ~ B
V
"'"
Attributive Entity
/ 1\
Created to
accommodate B's BIC
repeating
mformatlon
attributes apply to all entities of a given type. If con- included are for banking, retail, governments,
tingent data usage applies, then classes are defined schools, and manufacturing. Other functions are
and a data hierarchy depicting the structure is general, like Finance, which every organization has.
developed.
Next, business functions are identified as a pre- Accounting Funds Management
lude to process modeling. A business function is a Alumni Affairs Funds Transfer
group of activities that accomplish some complete Audit Health and Hospitals
job that is within the mission of the enterprise. Busi- Community Programs Services
ness functions are ongoing and are not related to Control and Human Resources
organization structure. Functions describe what Measurement Administration
is done in the organization from a high level of Customer Relations Information Systems
abstraction. Business function analysis is usually Data Administration Judicial Management
performed at the enterprise level, but can be the first Distribution Legal Services
activity of process modeling, if required. Represen- Engineering Support Management
tative or generic functions that may be present in a Facilities, Equipment, Manufacturing
business are listed below. Some of the functions are and Supplies Marketing
specializations, for instance, public protection is usu- Administration Material Acquisition
ally a government function. Specialized functions Finance (Purchasing)
Definition of Business Area Analysis Terms 333
Un normalized First Normal Form Second Normal Form Third Normal Form Relation Name*
*X indicates deleted items or relations. Relations are deleted if they are duplicates, are consolidated if they have identical
keys or are proper subsets, or are named. Attributes are deleted if they are derived by the application. POI Extended
Price is derived by multiplying POI Quantity by POI Price.
Operations Public Service Sample business functions for ABC Video are
Planning Research and shown in Figure 9-6.
Product~anagement Development When the functions applicable to application
Product/Customer Research development are identified, functional decomposi-
Service Sales tion is performed. Functional decomposition starts
Public Aid Scheduling at the business function level to identify the major
Public Facilities Service Offering, activities of the function, and progresses to identify
~anagement e.g., Instruction in the processes and subprocesses for each function
Public Protection a school (see Figure 9-6). An activity is some procedure
~anagement Student ~anagement within a business function that can be identified by
Public Relations its input data and output data, which differ. The
334 CHAPTER 9 Data-Oriented Analysis
Business {
Function
Business
Analyze Area
Business Activities
activity level must fully define the function. That is, an elementary process is the smallest unit of work
the activity level is complete when all possible pro- users identify.
cedures performed within the scope of the function Figure 9-7 is a sample decomposition showing
are present in the diagram. Full definition is required processes that define the two purchasing activities
to ensure complete data, process, impact, and orga- within ABC Video. Don't forget that the business
nization design analysis. activities and processes in a decomposition fully
Activity names are usually of the form verb- define the scope of the parent business function.
object, where the verb identifies the major transfor- Decomposition results are used to develop a
mation and the object identifies what is transformed. process dependency diagram. A process depen-
Exceptions to this rule are accepted when a name dency diagram, like an ERD for data, identifies the
is conventionally called by a different form, for sequence and types of relationships between pro-
instance, Cash Management is more common usage cesses. Process relationships describe logical con-
than Manage Cash. nections that include cardinality, sequence, iteration,
Activities are decomposed into their processes. and selection components (see Figure 9-8). Thus, the
A business process identifies the details of an process dependency diagram shows the logic of
activity, fully defining the steps taken to accomplish sequence, iteration, and selection for each process.
the activity. Again, full definition is required to The process dependency diagram is then expanded
ensure completeness of the ensuing analysis. Proce- to include entities and data stores to emulate a data
dural steps named by processes are repeated and flow diagram from process analysis. The result is a
have definable beginnings and endings. Decompo- process data flow diagram (PDFD).
sition continues until the elementary, or atomic, level Connections between procedural steps in a PD FD
of each process is identified. An elementary process are due to data passing from one step to the next and
is a procedure that cannot be decomposed further causing it to activate. This type of connection is
without making the procedure lose its identity. Thus, called a process data trigger. A trigger identifies the
Definition of Business Area Analysis Terms 335
Purchasing
Place Monitor
Order Order Receipt
Call Vendor to
Verify Availability Call Vendor
and Price and Inquire
or Reconcile
Send Invoices
File Order to Accountant
Copy by Vendor
arrival of some data that causes a business process to name the events. For instance, the arrival of a new
execute. Process data triggers (or just data trig- video releases list (see Figure 9-9) is an event that
gers) identify data that flow from one process to triggers the purchasing process.
another to start execution of the receiving process. In Because the components of the process depen-
a PDFD, the directed lines between processes signify dency diagram are different from those of a DFD,
a data trigger. In addition, external events can cause the PDFD that results from process dependency
a process to activate. An event trigger signifies data analysis is also different. Several key differences
from some business transaction that causes process- are important. First, there is a sequence to the pro-
ing to take place. Event triggers are drawn on the cess data flow. The directed arrows on Figure
PDFD by large arrows with words inside the icons to 9-9 indicate that some output from a process causes
336 CHAPTER 9 Data-Oriented Analysis
Identify Items
&
Call Vendor
Until no more videos to Verify
Availability
and Price
Create and
Mail
Order
Until no more vendors
File
Order Copy
by Vendor
Until no more vendors
the execution of the next process. Variations in In a DFD, this information either is characterized as
the directed arrow lines define variations in the a data flow or is hidden within process logic.
sequence. Second, the media that connect processes The last step of BAA is the development and
are not implied as in a DFD.3 The information that analysis of an entity/process matrix, also known as
passes between processes is identified, but the form a CRUD matrix. If no enterprise level ERD exists
of the data is not. For example, the Identify Items and first, then an ERD is created. The entity/process
Vendors process in Figure 9-9 generates data that matrix lists entities across the top and business
passes to later processes. The shared data might be processes down the side (see Figure 9-10). Each
mental, paper, an automated data flow, or a file. The cell of the matrix, then, points to a process-entity
decision of media, or stored form, of data is deferred combination. For each cell, the systems engineers
until design unless it is fixed. Data files, such as Ven- define Create (C), Retrieve (R), Update (U), Delete
dor and Order files on Figure 9-9, are identified (D), or no (blank) responsibility of each process for
because they are known. Third, data and event trig- each entity. Subject area databases are defined by
gers identify the cause of execution of each process. analyzing logical groupings of processes and entities
based on their affinity. Affinity means 'attraction' or
3 Remember, DFDs require identification of either a data flow 'closeness.' Affinity analysis clusters processes
or a data store as the data linkages between processes. which share data creation authority for an entity.
Definition of Business Area Analysis Terms 337
Identify Items
& Vendor File
Create and
Mail
Order
Until no more vendors
File
Order Copy Order File
by Vendor
Until no more vendors
These logical groupings become the basis for data- of processes is related back to the organization (in a
base design. In Figure 9-10, a partial example of similar matrix). Ideally, processes that share data
Create Order and Monitor Order Receipt processes, responsibility should be in the same organization and
and the entities they use, are analyzed in an entity/ report to the same manager. For instance, the ABC
process matrix. The matrix shown is clustered by Purchasing processes show three potential group-
entity affinity and is ready for analysis. After analy- ings. If each process is evaluated with all of the data
sis, the processes and entities are sorted to show it uses, the three groupings meld into one based on
affinity based on the actions taken on the same enti- the criteria that 70% or more of the data are com-
ties (see Figure 9-11). monly shared. If all of these processes report to one
Two sets of analysis are performed on the results manager, the organization is probably adequate. If
of affinity analysis. The first analysis is to determine the three possible groupings all report to different
the adequacy of organization design based on who managers, the organization should probably be
creates and has responsibility for data. Each cluster redesigned.
338 CHAPTER 9 Data-Oriented Analysis
Identity Items
& Vendors R CRU
Call Vendor to
Verify Avail/Price RU
Verify Receipts
against Order RU RU
Send Invoices
to Accountant RD RD
The second analysis looks at the data entities The last step of BAA is to finalize all informa-
by process cluster to define subject area databases. tion found during the analysis in a data dictionary
A subject area database is normalized across or CASE repository. Since dictionaries were dis-
the organization and provides shared support cussed in detail in Chapter 7, in this chapter we will
for one or more business functions. At the ap- document the information found using the same for-
plication level, one subject database is assumed. mat as in Chapter 7, but will not comment again on
In the ex-ample in Figure 9-11, one database the format of entries.
would support the purchasing function; the database To summarize, business area analysis begins with
would have at least two user views to package Pur- an entity-relationship diagram that is fully identified,
chase Order with Purchase Order Item and normalized, and analyzed for class structure. Busi-
Inventory Item with Vendor. A fourth user view ness functions are identified and decomposed to cre-
linking all entities might be used for retrieval ate process hierarchy, process dependency, and
processing. process data flow diagrams. The business proces~es
At the organization level, if the process groupings from the decomposition are coupled to entities from
are logical and useful, they are the basis for reaf- the ERD. Data-related responsibilities are described
firming the scope of applications. At the business for each process. Affinity analysis of the CRUD
area level, the groupings of processes should be con- matrix is used to decide organizational and database
sistent with the scope of the activities defined for groupings for further design and management action.
the application. If they are not consistent, then man- Next, we turn to a detailed description of how to per-
agement review and rescoping of the project are form each activity, exemplified by the ABC Video
required. Rental Processing application.
Business Area Analysis Activities 339
Identity Items
& Vendors R CRU
Subject Area 2
Call Vendor to
Verify Avail/Price RU
application. When in doubt, define more entities ERDs depict the big picture, capturing the orga-
rather than less. You can always eliminate unneces- nization and its constituent activities. For this dia-
sary entities when the information for deciding gram, we must constantly remember to ask: What
becomes clear. processes and activities are legal in the context of the
It is important to define each entity using terms business? Not: What is legal based on today s pro-
that apply for all of its uses in the company. Such cedures in our company?
definitions may not match current definitions of the In general, entities define something about which
entity in use in the organization. An example in the business keeps information. An entity can be a
defining the terms from an educatiopal pension firm person, object, application, concept, or event about
(see Example 9-1) shows the difficulty dealing with which the application maintains information. For
current thinking about entities and th~ir definition. example, customer, order, and inventory are all
Current thinking is frequently imprecise, muddled, entities. Entity names are usually nouns, however,
and even inconsistent as the example shQws. Unrav- NOT all nouns are entities. First, define a list of pos-
eling the spaghetti of definitions imbedded in the sible entities. Then, examine each entry and ask
various terms used to describe institutions, colleges, yourself the following:
campuses, plans, and their relationships took t4ree
people much of six months, working with 10 user 1. Is this a noun? If yes, continue. If not, either
departments for the information. rename it or strike it from the list.
Business Area Analysis Activities 341
(Continued)
2. Is this potential entity (replace with the name 5. Give a formal name to the entity and define
of the potential entity) unique with a clearly its primary key.
defined purpose? If yes, continue. If no, 6. Draw one rectangle for each entity to begin
either define the item uniquely from the con- developing the ERD.
text that led to its being on the list, or strike it
from the list. Once you are comfortable with the entities,
3. Can this potential entity take a value? If yes, begin defining their relationships. Relationship
it is an attribute; strike it from the list. If no, names, describing entity associations, are usually
continue. verbs, however, NOT all verbs describe relation-
4. Does the business area need to keep informa- ships. The goal is for all rules of association to be
tion about this potential entity? If yes, con- unambiguous. First, define possible relationships.
tinue. If no, ask why it is on the list. If it trig- In general, ask yourself how entities relate to each
gers processes, continue. If it is a different other. If I have Entity A, do I also have Entity Bs? If
form of some other entity (for instance, an so, how many are legal? Ask the question without
order report is a paper version of an order), regard to each entity's current usage in the company.
strike it from the list. If it is unique but does As with entities, relationships should define what is
not fit the other criteria, leave it on the list legal within a business context. Sometimes, ignoring
for now. current definition is extremely difficult because we
342 CHAPTER 9 Data-Oriented Analysis
and users internalize such definitions and use them read the relationship above the line from left-to-
to narrow our focus and simplify the world. right, and the relationship below the line right-
Examine each possible relationship and ask your- to-left. For instance, customer places order and order
self the following: is placed by customer (see Figure 9-12). The words
are placed differently depending on the placement of
1. Is this a verb? If yes, continue. If not, either
the entities on the diagram. By convention, the ac-
rename it or strike it from the list.
tive verb (in this example, 'places') is positioned on
2. Is this verb an action? If no, continue. If yes,
top of the line with the acting entity (' customer'
remind yourself that relationships do NOT
here) on the left of the diagram.
describe processes or processing. If the verb
Next determine the number, or cardinality, of the
is a process, strike it from the list.
relationship. The number of the relationship is one of
3. Is this potential relationship (replace with the
three possibilities: one-to-one, one-to-many, or
name of the potential relationship, e.g., place
many-to-many. A one-to-one relationship defines
as in customers place orders) unique with a
a situation in which every entity A relates to one and
clearly defined purpose? If yes, continue. If
only one entity B. In a one-to-many relationship
no, either define the item uniquely from the
every entity A relates to zero to n, that is, any number
context that led to its entry on the list, or
of entity Bs. In a many-to-many relationship all
strike it from the list.
As can relate to any number of Bs. Decide cardinal-
4. Is this potential relationship needed to fully
ity by asking the same questions of each side of the
describe the business area's data? If yes, con-
relationship: If I have one entity A, how many
tinue. If no, ask yourself why it is on the list.
entity Bs can I have associated with it at any point
If it is not clear what the reason is, continue,
in time? Conversely, if I have one entity B, how
leaving the relationship to be reevaluated
many entity As can I have associated with it at any
when more information is known. If the rea-
point in time?
son is not related to the business area, strike
An example of the time issue relates to student
it from the list.
registration and tracking. A student may take many
Once you define a relationship, draw a line(s) to classes in one semester; this describes a l:n relation-
connect the entities participating in the relationship. ship. Over time, students take many courses and
Mark the diagram with a verb to describe each courses contain many students; this is an m:n rela-
direction of the relationship. The convention is to tionship. Which is correct? The m:n relation that
Places
Customer Order
Is Placed by
Is Placed by
Order Customer
Places
Places
"'/
'-'"
Customer I Order
I
Is Placed by
-f-
Contain Is Contained
by
/ ~
Order Item
M:N Relationship:
~v_endor~>->--fm-----+-in~~_part --'
Similarly, associative entities are created by pro- tabular normalization can be used to complement,
moting m:n relationships, joining the primary keys validate, or replace direct normalization. Tabular
of each participating entity to identify the associa- normalization requires complete definition of data
tion. Other fields might also be needed to provide and relationships, and results in exactly the same
unique identification. The m:n relationship is con- entities as direct normalization.
verted into two l:m relationships in the promotion To use tabular normalization, first describe each
process (see Figure 9-15). entity and all entity attributes. Cluster attributes
After all known relationships are defined and depending on whether they are singular or multiple
entered on the diagram, we define attributes for the occurrences. (Tabular normalization rules are sum-
entities and normalize them (Steps 3-6 of list on marized in Table 9-1.) Then, proceed to remove
p. 339). The goal of this part of the exercise is to de- repeating groups. For each repeating group create a
fine hidden attributive and associative entities. In the new relation. The key of the new relation is the key
example above (see Figure 9-14), Order and Cus- of the repeating group and the original key. To
tomer are fundamental entities. Order-Item is an at- remove partial key dependencies, create new rela-
tributive entity. If it had not already been identified, tions of any attributes and the part of the key to
either normalization would identify it, or it would which they relate. The key of the new relation is the
be identified by answering the question: Can any of part of the original primary key that functionally
the attributes relating to entity Order occur more defines the relationship. Finally, remove nonkey
than once? If the answer to this question is yes, there dependencies by creating new relations from the
are attributive entities to be identified. nonkey attributes that are related. The key to the new
Direct normalization of ERDs is possible but relation is the attribute(s) that define the functional
requires detailed understanding of data. When you relationship. In the tabular method, multivalued
have an ERD but are less comfortable about your dependencies are treated as single attribute, repeat-
understanding of the data and their relationships, ing groups in the nonnormalized set-up stage.
TABLE 9-1 Normalization Rules
For Unnormalized Data
1. Identify all attributes that relate to an entity. Keep in mind that there are several types of attributes.
• Nonrepeating, primary key attributes(s). A nonrepeating attribute is a single fact about an entity type.
A primary key is a unique identifier for all attributes associated with an entity type.
• Nonrepeating, nonkey attributes(s) are single facts about an entity type.
• Repeating attribute(s) are facts that may have more than one occurrence for a specific value of an entity's
primary key. Repeating attributes may be single repeating facts, such as the date of birth of offspring; or may
be groups of repeating fqcts, such as date of birth and name of offspring. Repeating attributes are either
repeating key attributes or repeating nonkey attributes. Repeating nonkey attributes are listed with their
primary key identifier.
2. List all attributes that relate to an entity together. Indent repeating information. Skip a line or leave a space
between entities and between repeating groups. Repeating groups might have only one attribute that repeats; this
is also called a multivalued dependency. Place an asterisk at the first attribute of each repeating group to show
its beginning.
3. Underline the primary key field(s) of the unnormalized relations, including keys of both singular groups and
repeating groups.
4. Proceed to first normal form.
1.1. Examine each relation. If the relation has no repeating groups, it is in INF. Draw an arrow from the unnormal-
ized column to tp.e normalized colpmn to show that the analysis i~ complete, and continue.
1.2. If the relation has repeating groups, build a relation from the single nonrepeating fields. The key of the relation
is the key of the original relation. Contique.
1.3. Next, for each repeating group, build a new relation of the repeating information. Append the key of the original
relation to the repeating information. The key of this relation is the key of the original relation plus the key of
the repeating group.
Second Normal Form (2NF)-The Goal of 2NF Is to Remove Partial Key Dependencies
2.1. Examine each relation independently. If the INF relation does not have a compound key, it is in 2NF. Draw an
arrow from the relation through the 2NF column to show that it is complete, and continue.
2.2 If the INF relation has a compound key for each nonkey field, ask the following question: Do the data field
relate to the whole key? In other words, do YOll need to know the whole key to know the values of the attribute,
or do you only need part of the key to know the value of the attribute? If the answer is that you need the whole
key for all fields, the relation is in 2NF. Draw an arrow from the relation through the 2NF column to show that it
is complete, and continue.
2.3 If by knowing a part of the key we know the value of one or more data fields, then we will build two new types
of relations. First, build a relation with the nonkey data field(s) that are wholly dependent on the compound key.
The key of this relation is the key of the INf r~lation.
2.4 Second, build one new relation for each partial key identified. The new relation(s) include the nonkey data
field(s) and the part of the original !cey on which they are fully dependent.
345
346 CHAPTER 9 Data-Oriented Analysis
3.1 If the 2NF relation(s) have only one nonkey data field, it is in 3NF, go to optimization.
3.2 If all data fields in the relation(s) are dependent upon the key and nothing but the key, then the relation is in
3NF. The question here, is "Do nonkey fields relate to the key or do they really relate to each other?"
3.3 If a nonkey dependency exists, build one relation of the nonkey data field(s) that are dependent on the 2NF key
(this include the nonkey field that is the key in the step below).
3.4 Build one new relation for each nonkey dependency identified. The new relation(s) include the nonkey data
field(s) and the nonkey field on which they are dependent. The key of this relation is the nonkey field from the
original relation on which the other field( s) is dependent.
Now, check for anomalies ... conditions that still will cause errors. This is one way of double-checking that
your original relationships were correctly defined. Ask two questions.
1. Given a value for a key(s) of a 3NF relation, is there just one possible value for the data? If the answer is NO,
then multivalued dependencies exist. Check that the correct data relationships are defined, then treat the multi-
valued single fact as a single-attribute repeating group and renormalize the data.
2. All are attributes directly dependent upon their related key(s)? If the answer is NO, then transitive dependencies
exist. Treat the transitive dependency like a nonkey dependency and renormalize the data.
Finally, synthesize and integrate the relations.
1. Remove any fields that are computed in the application. This does not mean that these attributes are not stored in
the physical database; it means that they are not logically required to define the entity.
2. If two or more relations have exactly the same primary key, combine them into one relation. Make sure that each
attribute occurs only once.
At third normal form, synthesis of the resulting the fundamental entities are added to the diagram as
relations is performed to needed to fully depict the information.
Next, the entities and relationships are analyzed
• combine relations that have identical primary
to determine if a class structure is needed. The rea-
keys but different nonkey attributes
soning process is as follows:
• eliminate relations which are exact duplicates,
or proper subsets, of other relations
1. Ask if this entity occurs in this, and only this,
• combine relations for which the primary key
form (i.e., with all attributes) for every legal
of one is a proper subset of the primary key of
occurrence of the relationship being exam-
another
ined? If the answer is yes, continue. If the
Mter normalization and synthesis are complete, answer is no, you must define subclasses that
new entities (or relations) and their relationship to describe the contingencies of existence for
Business Area Analysis Activities 347
the entity. This procedure is described in the To determine subclasses, you must determine
next section. which information is kept (or which processing is
2. Does this relationship hold for all occur- done) for which type (or subclass) of orders. Ask
rences of the entity? If yes, continue. If no, questions about every possible variation of infor-
follow the reasoning below to determine the mation and processing until 'if-then-else' logic sur-
subclasses of the entity and their relation- faces. Use the alternative situations to define the
ships. subclasses. That is, one subclass for the if logic,
3. Is this entity ever optional? If no, continue. If another subclass for every other else if logic. Ask
yes, follow the reasoning below to determine questions of each type of information about every
the subclasses of the entity and their relation- entity. Don't stop just because you find one subclass;
ships. there may be others. When you have found all sub-
4. Can only a subset of occurrences of an entity classes, verify them with the user and modify the
participate in a given relationship? If no, con- diagram accordingly.
tinue. If yes, follow the reasoning below to For instance, in an order fulfillment application, a
determine the subclasses of the entity and legal entity relationship describes 'customers place
their relationships. orders' (see Figure 9-16), but that information may
5. Have several types, or kinds, or categories of not be the same for all customers' orders. Does the
an entity been identified? If no, continue. If time of day or time of month affect the relationship?
yes, follow the reasoning below to determine Do the shipping address differences affect the rela-
the subclasses of the entity and their relation- tionship? Does the sold-to/ship-to arrangement
ships. affect the relationship? Does the type of goods
6. Are words like "either, or, sometimes, usu- ordered affect the relationship? Does the type of pay-
ally, generally, in certain cases" ever used in ment affect the relationship? In this example, we will
describing entity behavior? If no, continue. If say that Cash Order information kept includes Cus-
yes, follow the reasoning below to determine tomer ID and Total Amount, where Credit Order
the subclasses of the entity and their relation- information kept includes Customer ID, Name, Sold-
ships. to/Ship-to addresses, Order Date, Shipping Terms,
Before
Subclasses: After Subclasses:
Customer
Customer
-c~-I-c~:
/~j I~
_C~h _I_cr~di~
Order
Order
for each item (Item Number, Item Description, first-cut definition of the potential fundamental enti-
Quantity, Price, Extended Price), Sales Tax, and ties in ABC rental processing includes: customer,
Total. Here, we know there are subclasses because video, rental, printed rental, clerk, and system. These
different sets of data are kept. The next issue is to entities are identified from the ABC Rental Process-
decide the entity(s) to which the subclasses relate. ing requirements in Chapter 2. Next we analyze each
To decide which subclasses apply to orders, we potential entity to see if it really is in the business
ask if the entity Order is affected differently by cash area and application.
and credit sales. If the answer is yes, different infor- Customer is a noun. It uniquely defines the people
mation is kept for each. In this example, there would who rent and return videos. By itself, customer does
be subclasses for Cash Order and Credit Order. not take on a value; rather, each customer is de-
Then, we ask if the entity Customer is affected dif- scribed by a set of attributes. The business must keep
ferently for cash and credit customers. Are all cus- information about customers renting videos to do
tomers either cash or credit? What are the rules for business with them. The formal name is Customer.
buying on credit? The common answer is applied Video is a noun. It uniquely defines an item from
here. Some customers are only cash, thus, creating inventory that is available for rent. By itself, video
a cash customer subclass. Some customers are qual- does not take on a value; it has descriptive attributes.
ified to buy on credit, but they are not required to The business must keep information about videos to
buy on credit. That is, credit customers can pay conduct its business. The formal name is Video.
either by cash or by credit. Therefore, knowing Rental is a noun that uniquely describes videos
which type of order a customer will create is only rented by customers for a specific period. By itself,
possible if the customer is a cash customer. Depend- rental does not take on a value; it combines attri-
ing on the application, these customer subclasses butes of Customer and Video with attributes of its
might be important. Here, we will say they are. The own. The business must keep information about
ERD is altered to show the subclasses of each entity rentals to provide an audit trail for tax purposes. The
class and how they now relate to each other. Notice formal name is Rental.
that the simple before diagram in Figure 9-16 is A Printed Rental is a noun that describes videos
more complex with subclass additions. rented by customers for a specific time period. A
To summarize, first define entities, then relation- printed rental is not unique since its definition mir-
ships, then attributes. Promote the many-to-many rors that of rental. However, it is unique in that it
relationships to associative entity status and modify shows the customer signature. If there is a legal dis-
the diagram to reflect the new entities. Add attribu- pute over charges, the business is required legally to
tive entities as required for repeating information provide documentation that rental took place, and
relating to entities. Identify all new attributes of all the customer knowingly rented. The business does
entities. If necessary, do tabular normalization of not keep infortnation about a printed rental, though;
the relations. Analyze each entity to determine if the information is about a rental. 5 Printed rentals are
subclasses are required and modify the diagram to another medium or form of Rental. Printed Rental
describe them. These activities are best documented is stricken from the list.
in a CASE tool with repository (or dictionary or Clerk is a noun uniquely describing the person
encyclopedia) entries made as the work progresses. who initiates processing for the application. By
At the end of ERD creation, you have not only the itself, clerk does not take on a value. The business
ERD, but also the repository definitions for all items does not need to know who did the entry of infor-
in the ERD. mation unless Vic changes the requirements of the
ABC Video Example Entity-Relationship 5 If customer signature was kept, or if we just left printed rental
Diagram on the list, when the data were normalized we would find that
the primary keys to the printed rental and the rental were
The first step (refer to the list on p. 339) in develop- identical. That would lead us to combine the fields in one rela-
ing the ERD is to identify fundamental entities. A tion called Rental.
Business Area Analysis Activities 349
Customer
Is
Request Requested
by
/\
Contains
Rental / Video
Is Contained in "'"
application. Since clerk is not required, we strike it relationship. That is, each Customer may place one
from the list. or more Rentals. Each Rental is placed by one and
Similarly, system is a noun that uniquely de- only one Customer.
scribes the hardware/software environment that will Similarly, each Rental contains one or more
do rental processing. The system has no personal Videos; each Video can be rented by one and only
values, and neither do we maintain information one Rental at a time. We have a problem with the
about the system. System is stricken from the list. clause at a time in this definition. Relationships are
N ext we draw a rectangle for each of the three supposed to be defined without regard to time. How
entities that remain: Customer, Video, and Rental. do we account for this problem? We might defer a
Figure 9-17 shows the entities and relationship( s) decision on how to deal with this until some later
between the fundamental entities. Customers request time, making a note ofthe need for 'date' as an iden-
Rentals. Rentals contain Videos. The relationship tifier for the video-rental relationship. Or, we might
names are unique verbs describing the interactions. remove time from the definition, creating the ERD in
The line connecting Customer and Rental contains Figure 9-18 which shows a many-to-many relation-
crows' feet at the Rental side to show a one-to-many ship with rental and video. That is, each video may
Customer
-c-
Is
Request
( Requested
) by
/\
" ""Contains I /
Rental Video
~s~ontainedl in"
Customer
Is
Request Requested
o by
J\
~I
Contains
Rental
/1
Is
Contained (
by )
/""'-
Copy
'\v
(D
Is Described Describes
by
-t-
Video
be rented more than once, and each rental may Identify attributes and associative entities. The
contain more than one video. We take this option m:n relationship of Videos and Rentals should be
at the moment, knowing that it is an incomplete promoted to make an associative entity. The new
definition of the relationships which need to be entity relates to each physical tape being rented.
refined. Thus, we have a Video entity and a Copy entity. We
Next we decide the nature of the relationships, reason through this creation in another way. Video
whether they are required or optional. A Customer information is not detailed enough to keep track of
must exist to place Rentals. A Video must exist to every physical tape in inventory because each video
be contained in a Rental. Does this make sense; must may have many copies. This leads us to add infor-
you have both a Customer and a Video to do a mation about copies. Referring to the case in Chap-
Rental? Yes, this makes sense. Now analyze the ter 2, we find that Vic wants to be able to track the
other side of the relationships. Are Rentals required status of any tape. The minimum copy information
for Customers to exist? No, Customers do not nec- needed is Video ID, Copy ID, Date Received, and
essarily have rentals every day. Are Rentals required Status. Other information might be considered, for
for a Video to exist? No, Videos can exist without instance, current month rental counts, but we defer
being related to a Rental. Both relationships of this for the moment. Figure 9-19 shows the ERD to
Rental to the other entities are optional. this point.
Business Area Analysis Activities 351
Does the insertion of Copy take care of the many- tabular normalization to proceed, first define the
to-many relationship? We can still have a Copy on attributes of each entity. From the functional
many rentals over time and Rentals can contain requirements in Chapter 2, list all attributes of each
many items, so the answer is no. Next we look at the entity. The list is shown in Table 9-2, in unnormal-
Rental to further examine its details. Rentals are sim- ized form, with the copy information identified as
ilar to orders. Just as an order has one or more items, repeating within video information. Make a sepa-
each rental can have one or more rental items. There rate list for each entity. For each entity, list together
is a one-to-many relationship of Rental to Rental- attributes that occur only once. Indent repeating
Item which we add to the diagram. By itself, this groups under the related entity, making sure that all
does simplify the many-to-many relationship; a information for each group is together. Underline
Rental-Item belongs to a specific Rental and relates primary keys for both nonrepeating and repeating
to a specific inventory Copy. Now the entities and information. Remember, the primary key uniquely
relationships look clean with all many-to-many identifies its information.
relationships promoted, and all apparent one-to- Next apply the rules in Table 9-1 to remove
many relationships explained (see Figure 9-20). repeating groups, partial key dependencies, and non-
To confirm the original and promoted entities, we key dependencies. Synthesize the 3NF results to
will normalize the data using the tabular method. For ensure minimal redundancy. The result of ABC's
Customer
-I-
Is
Request Requested
<D by
/1\
Rental
Contains - - Is
<) Contained
/ " by
...... Refers to I
Rental-Item Copy
'" '-" I
Is Referenced by
'\v
<D
Is Described Describes
by
-I-
Video
Customer Phone
Customer Name
Customer Address
Customer City
Customer State
Customer Zip
Customer Credit
Card Number
Credit Card Type
Credit Card
Expiration Date
Customer Phone
All Customer Info
from Above
Rental Date
Total Rental Fees
*Video ID
Copy ID
Video Name
Rental Date
Return Date
Rental Rate
Late Fee Due
Fees Due
Video ID
Video Name
Entry Date
Rental Rate
Copy ID
Date Received
Status
normalization is shown in Table 9-3. Now we have entire relation containing VideoID, Video Name, and
six relations to be synthesized and evaluated. Rental Rate is deleted because it exactly duplicates
In the synthesis step, several pieces of informa- information already in the next relation which has
tion are deleted. 'All Customer information' is not more attributes.
required to maintain rental information; only a Cus- To reconcile the 3NF results to the ERD, we look
tomer Phone or ID is required as a cross reference, at the Rental relationships again, and use some 'out
or foreign key, to the Customer relation. Total Rental of the box' thinking. The relationship we identified
Fees are calculated and, therefore, not required. The for Rental to Rental-Item is similar for many busi-
Business Area Andlysis Activities 353
Customer Phone
Customer Name
Customer Address
Customer City
Customer State
Customer Zip
.. • ..
Customer Credit
Card Number
Credit Card Type
Credit Card
Expiration Date
Customer Phone
All Customer Info
from Above
Customer Phone
All Customer Info
from Above
.. • X
ness transactions: orders, confirmations, shipping business transaction. The question then is: Do we
papers, back-orders, and invoices. The question here need the Rental information separated? Is it uniquely
is: Do we need both entities? We require the Rental- different? Customer Phone is also in Rental-Item;
Item entity information because it documents the Rental Date is also related to each video the
354 CHAPTER 9 Data-Oriented Analysis
Customer: xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx, xx xxxxx
(xxx) xxx-xxxx
Open Rentals:
customer has. We eliminate Total Rental Fees as a a kludge, that is, a mess! If we delete this entity/
computed field but we need to redecide if we will relation, can we get the information another way?
ever need this information stored in a file. That is, can we recreate this relationship if we need
Continuing this reasoning, think of the processing to for any reason? The answer in this case is, yes.
to be done. When a customer requests a video, the Rental-Items all have Customer Phone and the first
system should display all open rentals regardless of one accessed can be used to retrieve customer infor-
when they were rented. The Rental-Item information mation. We conclude that we can eliminate the
will be listed down the screen in rows, one row per 'Rental' entity entirely. The completed, revised ERD
video (see Figure 9-21).6 A total of all open rental is shown as Figure 9-22. Rental-Item is renamed to
fees plus any new fees will be near the bottom. From Open Rental to avoid confusion about its contents.
where will customer information come? If we keep After removing the Rental entity, the relation-
the Rental relation/entity, we either choose one from ships and entities now appear minimal. That is, we
potentially several for display, or, if Customer Phone must keep all of these entities. If we remove anyone
is entered first, we ignore them all. This sounds like of these entities, we cannot recreate the desired in-
formation for the removed entity, nor can we com-
6 This is another example of the jumping between levels of pletely describe all data relationships. With these
detail required to complete each logical step in the process. entities, we can represent the entire problem data
Business Area Analysis Activities 355
space, and we can accommodate all the processing An accurate and complete ERD is crucial to
required in the application. The ERD now appears developing an application that solves a real-world
complete. Keep in mind that complete does not mean problem. During development of the ERD, pay par-
cast in concrete; the ERD can be modified as re- ticular attention to entity definitions, making sure
quired to accommodate new information. they are distinct, simple, and precise. Analyze each
The reasoning process we used to eliminate the entity for selectivity in processing, data, or timing
rental entity can be used on any similar entities, for to determine if a class structure is warranted. Also
instance, orders. In other applications the higher analyze each entity for its actual need. If an entity
level entity analogous to the Rental entity here might can be recreated from other information, has no
be required. You cannot eliminate an entity when unique attributes of its own, and is not required for
any of the following conditions is true: legal purposes, omit it. Analyze every possible rela-
tionship to determine relationship existence. When
• The entity has unique information of its defining relationship cardinality and required/
own. optional status, make sure time and current proce-
• The entity, or its attributes, cannot be recre- dures are ignored. Do pay attention to legal require-
ated through combining other entities. ments and business requirements in defining
• The entity is required for legal purposes. cardinality and required status.
Customer
-f-
Is
Request Requested
by
(D
/~
" ,..... Refers to I
Open Rental V 'oJ I Copy
Is Referenced by
'\v
<D
Is Described Describes
by
-f-
Video
identify. Name each process with a verb-object component parts. Therefore, these processes are
name. Within Funds Management, for example, atomic, or elementary. That is, each can be per-
processes might include: Manage Overnight Funds, formed as a unit, but cannot be further decomposed
Manage Cash, Manage Payroll Accounts, and Man- without losing its unit identity.
age Savings Accounts. Each of these processes can The difficulties of process decomposition lie in
be further decomposed to identify the details of the achieving parallel levels of abstraction and com-
procedure used to perform this process. Continuing pleteness. The goal is to maintain consistency within
with this example, Manage Overnight Funds might a level of process decomposition. The SE and user
include: Identify Funds, Identify Options, Analyze must work together during this definition because the
Options, Place Funds, Complete Accounting Entries. levels of detail are beyond IS knowledge. Only job
Each of these is a process, too, but these processes incumbents know exactly what they do and how they
cannot be further decomposed without requiring do it. The user is the main person defining the
interrogation of multiple processes to locate all of its decomposition, but the SE is the person who actually
358 CHAPTER 9 Data-Oriented Analysis
abstracts the diagram and systems information from application is concerned only with Rental Process-
the user-supplied information. The user relates each ing, so we decompose only the Rental Processing
process to all of the other processes, describing each function.
in detail. First, we define the activities of Rental Processing
Some clues to consistency of abstraction are and place them on the diagram in rounded rectan-
amount of work, user comfort, same type of inputs gles. Return to the case in Chapter 2 and outline the
and outputs, and timing. If all processes appear to major activities. If you have difficulty finding activ-
do similar amounts of work, they are probably at a ities, look at the entities and define the actions taken
similar level of abstraction. If the user feels comfort- for each entity. Obvious activities relate to customer
able that the information is similar, it probably is. and video maintenance and actual rent/return pro-
If the processes have similar types of inputs and cessing. Can you identify any others? If not, add
outputs, that is, they have no error processing and these to the diagram and decompose them. Activity
no exception processing at the same level, then they identification is not a one-time activity; it is ongo-
are probably at a comparable level of abstraction. ing and other activities might become obvious as
Similarly, if one process has error and exception you work through the processes. Keep in mind that
processing, the others also should have error and when you identify activities with a user, it is from
exception processing at the same level. their experience and not from written text, so it is
For concurrent processes, each process must be somewhat more direct.
performed completely independently of all other Both maintenance activities are decomposed into
concurrent processes. If concurrent processes are create, read, update, and delete processes (CRUD).
independent, then the abstraction level is probably Notice that the activity names are of the form verb-
okay. If concurrent processes have dependencies, object. The resulting additions to the decomposition
then determine the relationship between the pro- are shown in Figure 9-24.
cesses. Either the dependent process is, in fact, a Next, we must decide if rent and return are one
subprocess, or the processes are not concurrent. activity or two. This is the same issue we dealt with
During process identification and definition, mark in process design (in Chapter 8); here we will have
the diagram for processes that are used in more than slightly different results because the reasoning
one place. This identifies both potential reusable process is different. The questions here are: Can we
processes for the design activity and possible job define rental without reference to return? Can we
consolidation for organizational analysis. Make sure also define return without reference to rental? And,
that the names assigned to reusable processes are does this completely define rent/return processing?
exactly the same and actually perform the same The first two answers are yes, the third is no. Both
work. rentals and returns must accommodate the other
The larger the organization, the more likely you process as a subprocess for completeness. Therefore,
will need more than one level of process decomposi- rent and return processing must be combined as one
tion to describe fully the processes of each activity. activity.
Continue to decompose levels of subprocesses until An easy way to decompose these processes and
you reach processes that can no longer be described be reasonably sure we are complete and correct is to
as performing some whole action. decompose the four options separately. The options
are rent without return, return without rent, rent with
ABC Video Example Process return, and return with rent. A table listing the four
options and their subprocesses is shown as Table
Decomposition
9-4. Several issues can be identified for discussion.
To begin, we ask ourselves what are the functions First, is Check for Late Fees the same level of
of ABC that relate to this BAA. The functions of abstraction as the other processes? Second, is Print
ABC are Purchasing, Rental Processing, Accounting Receipt the same type of process and does it belong
and Personnel/Payroll as shown in Figure 9-6. This on the table? Third, does this look complete? For
Business Area Analysis Activities 359
Customer
Maintenance
instance, where are Create Customer and Create This is all logic; there is no reading or writing to
Video when the items are not found in a database? files. Thus, this is a simple process that borders on
Last, can we consolidate these four lists to develop being too small to be called a process. This logic
one list for the decomposition diagram? could be included in another process if and only if
First, Check for Late Fees appears to be at a lower the other process has the same execution pattern for
level of detail than the other processes. To check each pass of the logic. This means we next look at
this, walk-through the process. To check for late how often Check for Late Fees is executed. Check
fees, data from an open rental must be in memory. for Late Fees is in every list, but is it executed for
every rental and return? The answer is that for all
If the Return Date is not equal to zero, subtract Rental open rentals, this process would execute to check for
Date from Return Date to get Number Of Days fees owed whether there are current returns or not.
Rented.
Also, for all returns, after the return date is added,
If Number Of Days Rented is greater than the allowed
the process Check for Late Fees should be executed.
amount (here we use two), multiply (Number Of
Days Rented - 2) by $2.00 (the late charge) to get Next we review the logic to see if exactly the
Late Fees. same procedure is followed in both cases. The
If Late Fees are greater than zero, display Late Fees answer to this issue depends on when late fees are
and add Late Fees to Total Amount Due. considered. So far, we have talked about late fees for
360 CHAPTER 9 Data-Oriented Analysis
Get Customer ID Get Return Video IDs Get Customer ID Get Return Video IDs
Get Valid Customer Get Open Rentals Get Valid Customer Get Open Rentals
Get Open Rentals Get Valid Customer Get Open Rentals Get Valid Customer
Check for Late Fees Add Return Date Get Return Video IDs Add Return Date
Get Valid Videos Check Late Fees Add Return Date Check Late Fees
Process Payment and Update Open Rentals Check for Late Fees Get Valid Videos
Make Change
Create Open Rental Update/Create History Get Valid Videos Process Payment and
Make Change
Print Receipt Process Payment and Process Payment and Create Open Rental
Make Change Make Change
Print Receipt Create Open Rental Update Open Rental
Update Open Rental Update/Create History
Update/Create History Print Receipt
Print Receipt
tapes with return dates only. You may be tempted to sets of fields, one for the fee and a flag for fee pay-
charge fees every day as they accrue, whether the ment. The data and processing for the first option are
tape is returned or not. If you do this, you need very simpler, but this now makes the processes creating
complex logic to identify what fees are accrued, and updating open rentals dependent on successful
what fees are paid, and what fees are still owed. Process Payment and Make Change. This is not only
Complex logic is frequently wrong and is always an acceptable tradeoff, but a better business practice
error prone. If possible, use the KISS (Keep It Sim- since we do not want to update with unsuccessful
ple, Stupid) method and charge fees only when a payment processing. We note the new attributes and
return date is present. To continue this thinking, what add them to the repository.
rental attributes do we need to deal with late fees? The second issue deals with Print Receipt. Is
Do we need a late fees field? A flag when late fees Print Receipt the same type of process and does it
have been paid? The case does not tell us what Vic belong on the table? The printed rental orders could
wants; so we need to talk to him about this. be considered an output data flow of Process Pay-
In this case, Vic and the accountant decide that, ment and Make Change rather than requiring its own
for accounting purposes, they want to know all process. Since ABC defines printing of orders as a
charges applied to a rental. Information to be kept separate process required of the application, we
includes: regular fees, regular fees payment, late could leave it on the list. Unfortunately, the method-
fees, late fee payment, any extraordinary fees, and ology does not give guidance in the issue of whether
extraordinary fee payment. Notice they do not care to include or omit data printing processes. In general,
about payment dates. We have two choices for deal- if the printing is incidental to another process, that is,
ing with late fee data. First, we can compute fees and it is a record of the processing, then it is not separate.
add them to the file when paid or second, keep two A print process should be distinct if it fulfills legal
Business Area Analysis Activities 361
obligations, or is independent of all other processes, the history files will answer most of his questions. In
or is contingent on other processing. On the job, the his manual system, Vic purges the files once a year at
SE, with the analysis team, decides which method of tax time, but he says there is too much paper to look
defining inputs and outputs will be used, then is con- at any paper records unless a customer actually dis-
sistent in their definitions. A related issue is the putes a charge. In any case, Vic, the accountant, and
relationship of Print Receipt to the other processes. Mary jointly decide to purge the transaction files
Does it follow payment processing, does it follow monthly and move deleted records to an off-line
and confirm file creation and updating, or is it inde- archive file. This discussion causes a new activity
pendent? At the moment, printing appears related to to be added to the decomposition under Periodic
payment processing only, but here again is some- Processing.
thing we need to ask Vic. A similar problem arises Next, Mary broaches the subject of keeping track
with data entry procedures that we will discuss later. of file updates and printing the receipt only when the
Here is a sample dialogue between Mary and Vic file updates (or creates) are successful. Vic has two
to resolve the relationship issue. concerns. He needs the ability to fix a file problem
if one occurs, and he wants the ability independently
Mary: "We are trying to decide about when to
of the rental process. Second, he is leery about
print receipts and how receipts relate to the rest
using the receipt as notification of a problem. "If
of the process. Can you tell me the legal
users think there is a problem with the computer sys-
requirements and if you have any other
tem, they might not trust the information we give
business requirements?"
them about late fees and other charges." Vic decides
Vic: "Hm, now, we write down all the customer
that printing is independent of file updates and that
numbers, video numbers, amount paid, and rea-
an operator message should be displayed for errors
sons for each transaction. We don't really give
in writing to files.
customers a receipt in the manual system. I'm
The third issue is to evaluate the completeness of
not sure what the legal requirements are; I'll get
the processing defined. In particular, where are Cre-
the accountant in here, too."
ate Customer and Create Video when the 'valid'
The accountant comes in and is asked the same
items are not found in a database? From a simple
question. She says, "It would be nice to have a
evaluation of process names, the processing appears
paper copy of each transaction in which money
complete. To resolve the issue about the two create
is processed so I can locate errors when I do the
processes, we look specifically at those processes.
bookkeeping. Trying to find an error by query-
Again, there are two options for dealing with the
ing the computer might be longer than just
need to create customers and videos: It can be a sep-
adding up the days' receipts in different cate-
arate process or it can be a subprocess to the associ-
gories. It would also provide IRS documentation
ated Get Valid . .. process. The question to answer is:
if you don't plan to do that on the computer.
How important, in the rent/return activity, are create
Do you?"
customer and video? The answer is that they are not
This leads to a discussion of the tax processing very important. They are performed on an excep-
possible and the potential costs to the project, which tion basis to allow processing continuity. Both pro-
are negligible at this stage. The final decision is to cesses are important to the related file maintenance
require receipts not only for transactions in which activity. A related issue is the name given to the
money is processed, but to offer a receipt as an processes--Get Valid Customer and Get Valid Video.
option to the customer for nonmoney transactions. The implication from these names is that both valid
The discussion then digresses into the issue of and invalid conditions are dealt with within the pro-
how long records must be kept on the rental file. If cedure; only valid customers and videos will be
all money-related transactions are printed, records of passed for further processing. A missing condi-
paid transactions could be deleted. Vic wants access tion would lead to the initiation of the create proce-
to transaction data for historical analysis but thinks dure. The resolution, then, is to leave the process
362 CHAPTER 9 Data-Oriented Analysis
definitions as they are and to treat the Creates as sub- use the separate lists of processes again in the
processes under the associated Get Valid process. next activity, developing the process dependency
Figure 9-25 shows the details of the two get valid diagram.
processes for the next level of decomposition. To summarize, process decomposition can be per-
The final issue is to consolidate these four lists to formed independently of ERD development. This
develop one list, completing the decomposition dia- step concentrates on activities, processes, and sub-
gram. The consolidated list is shown, with sequence processes of all functions in the BAA. First, all
implied but without selection, in Figure 9-26, the activities are defined, then the processes for each
final decomposition diagram. The fourth activity, activity are identified and defined. Both activities
Periodic Processing, has been added. At the mo- and processes are defined without regard for current
ment, this activity includes archival, end-of-day, and organization, timing of processing, or current pro-
query processing. Other processes may be added as cedure. Emphasis is on processes and procedures
we continue through analysis and design. We will that are required to fulfill business obligations. The
Business Area Analysis Activities 363
Get Return 10
Update/Create History
Print Receipt
final decomposition should be validated through decomposed, we examine the processes and se-
user review. quence them by order of occurrence: what happens
first, then second, and so on. A diagram using
rounded rectangles for each process and arrows to
Develop Process Dependency connect them shows the sequencing of the processes.
Processes that are independent of other processes are
Diagram placed on the diagram but not connected to anything.
Rules for Developing Process Dependency One diagram is created for each activity. The steps
for creating the process dependency diagram (PDD)
Diagram
are as follows:
Process dependency relates processes and shows
cyclical, logical, and data connections between pro- 1. For each activity, draw the processes on a
cesses. For each activity and level of processes sheet of paper.
364 CHAPTER 9 Data-Oriented Analysis
Until
No More
Open Rentals
Multiple Input Connections
L)
Multiple Output Connections
c'---_~C_____--.----)
C______)
2. Examine each process to determine how it add the selection conditions under which
is initiated. For processes that pass data to processing takes place.
begin work, connect the process to its data 5. For all connected processes, examine
receivers. These connections depict the each to determine Boolean connections.
sequence of processing. Alter the diagram to include required
3. For all connected processes, examine each Boolean logic.
to determine the cardinality of execution. 6. Review all connections with the users to ver-
Define iterative processing and document it ify correctness.
on the diagram. Be careful to uncouple to the
maximum extent possible based on business The types of connections between processes in a
requirements. process dependency diagram differ from those of
4. For all connected processes, examine each to data flow diagrams discussed in Chapter 7. In pro-
determine selection in processing. For mutu- cess dependency, four types of connections are
ally exclusive processes, alter the diagram to allowed: sequence, iteration, selection, and Boolean
depict exclusivity. For all selected processes, (see Figure 9-27). All connections identify the data
Business Area Analysis Activities 365
If A
(---p_1---)r~L~~~=·:(:~~~P_2~__~)==:t--~~
If notA
~
r,.------.......
P1 else if B
PB
else if C ,.------.....
PC
else
PD
\
Boolean Connections:
Or process
( A ) • 0 ( B )
( C ) 0 • ( D )
Or process
.. F
E (And processes)
.. G
passing between processes by writing its name, Iterative connections between processes are
when known, above the line. shown with feedback loops, with an indication of
Sequential connections may be singular or multi- how many iterations are performed. A popular
ple, with many processes feeding another process, alternative is Martin's notation of iteration which
possibly feeding the same data (as in reusable uses cardinality indicators, i.e., crows' feet. This
processes) (see Figure 9-27). Multiple entries into notation implies a coupling between processes that
(or exits from) a single process do not imply any may not exist, so the decoupled, more standard iter-
relationship between the multiple processes. That ation loop is used in this text. Both Martin's nota-
is, no control structure is required to ensure correct tion and the decoupled notation are in Figure 9-27.
order of execution of the processes. In fact, multiple Selection, or conditional, connections show the
processes could be concurrent, if needed. alternative choices connected by a solid circle to
366 CHAPTER 9 Data-Oriented Analysis
Until No Until No
More New More Open
Rentals Rentals
Until No
More Open
Rentals
Until No
More Open
Rentals
Until No
More Valid
Videos
)
Until No Until No
More New More Open
Rentals Rentals
grams. If the diagrams were already consolidated, from Get Customer ID so returns do not include the
we could go to the program design level of detail to selective execution of Get Valid Customer. Also
choose the iteration grouping. The more uncoupled notice that we again have coupling options for re-
dependency is shown in the completed diagram, Fig- turn processing (the coupling options for return pro-
ure 9-35. The decisions about preferred looping are cessing are shown in Figure 9-38). In the selected
deferred until design. option we have three iteration cycles. Get Open
The second difference in Figure 9-35 is that a Rentals is performed for all open rentals. Get
receipt has selection criteria applied to its creation. A Return IDs and Add Return Date are performed
receipt must be printed whenever a payment is made, together for all returns which may be a subset of
and may be printed upon request of a customer with open rentals. Check for Late Fees is performed for
returns but no payments. This selection is shown on all open rentals whether or not returned today. The
the diagram. final difference is for history processing which is
Figure 9-36 shows rentals with returns. In this selected for open rentals with Return Date equal to
procedure, we have two iterative cycles: one for today's date.
return processing and one for new rental-item The last procedure is for returns with rentals (see
processing. These, in effect, consolidate the previous Figure 9-37) which is similar to Figure 9-36 except
two diagrams. Notice here that the initial input is for the initial entry of information. If a return is first,
370 CHAPTER 9 Data-Oriented Analysis
Until No
More Open
Get Valid Customer Rentals
Until No
More
Returns
Until No
Until No
More Open
More Rentals
Returns
Print Receipt)
Until No
More New
Rentals
Get Return ID is the first process and we need the change is reflected back to the decomposition dia-
selective execution of Get Valid Customer. gram also.
Now, we are ready to consolidate the diagrams Next, for returns, we need selective execution of
into one (see Figure 9-39). The obvious complexity Get Valid Customer. To consolidate, we need to
is in dealing with all of the return options, so they know whether we are processing a rental or a return.
will be done first. If we look at the first step of each Two changes are required. Get Request must call
procedure, the differences are that for returns, Video either Get Valid Customer or Get Open Rental,
IDs are entered first and for rentals, Customer IDs depending on the type of entry. This is indicated by
are entered first. If these are separate processes, we the selection logic in Figure 9-39. Second, Get
have a problem knowing which is, in fact, being Request has to pass some indicator to Get Open
executed. If we consolidate these processes, we can Rentals that it is the caller; this means data is trig-
use program logic to figure out which numbers are gering the process.
for videos and which for customers. This means that The last return issue is what to do with Check for
Get Return ID and Get Customer ID are replaced Late Fees. There are three options. First, include it in
with one process we will call Get Request. This both Get Open Rentals and Add Return Date to
process will select either Get Valid Customer or Get ensure complete processing of late fees for old and
Open Rentals depending on the data entered. This new returns. Second, leave it separate and execute it
Business Area Analysis Activities 371
Get Customer 10
Until No Until No
More Open More Returns
Rentals
Until No
More Open
Rentals
Until No
More
Videos
Print ReceiPt)
Until No
More New More
Rentals Returns
for all open rentals, including those returned today; because there is no necessary connection between
as a separately iterated process. The first option any of the processes. It reflects the independence of
guarantees double processing for all returns when the processes, and is the basis for the PDFD which
rentals are also done. The second option requires completes the dependency diagram. This type of
somewhat complex logic for memory loop process- independence also identifies possible concurrent
ing. Both options are acceptable technically and processes and is considered a normal diagram.
from a business perspective. The last option Notice that even though these processes would be
is to defer a decision. Since we have no business connected on a menu for processing, no menu
basis for a decision, we leave the process on the selection options are shown at this logical level. The
diagram and defer any decision about grouping reason is that the business requires no menu.
until design. The final dependency diagram is shown To summarize, to develop the dependency dia-
in Figure 9-39 and reflects all of the decisions dis- gram list the processes for an activity, in sequence.
cussed above. Then, examine each process to determine its rela-
The dependency diagram for periodic activities tion to all other processes. If complex processing is
is in Figure 9-40. The diagram is somewhat strange involved, as we have here, separate out the options
372 CHAPTER 9 Data-Oriented Analysis
Until No
More Open
Rentals
Until No
More
Returns
Until No
More Open
Rentals
Until No
More Valid
Videos
Print ReceiPt)
Until No
More
Returns
Get Return ID
No More
Open Rentals
Check Late Fees
Until No
More Open
Rentals
Until No
More
Returns
Add Return Date
Until No
More Open
Rentals
tion of the work. For each external event, add 3. Review the triggers and files with the user to
an event trigger and identify the event (or the verify correctness.
data it provides).
2. For entities from the ERD, examine their use U sing the process dependency diagram, first add
by processes in each diagram. For known the information about triggers, that is, the data
connections, add one file for each entity to or events that trigger each process. If arrival of
the diagram and connect them to processes information from another process is the trigger,
with arrows depicting the direction of data identify the data on the lines connecting the rec-
flow. For all files, when a relation is not the tangles. Use large arrow outlines for event triggers.
unit of data retrieved, list the attributes that Use single-directed lines for data triggers (see Fig-
make up the data flow. ure 9-41).
374 CHAPTER 9 Data-Oriented Analysis
Until No If First
More Open
Rentals
Until No
More
Returns
Print ReceiPt)
Until No
More
Returns
Until No
More Open
Rentals
Open Rental
Until No
More
Returns
Until No
More Open
Rentals
triggered but it now needs the Video ID, external 9-43). The formula used is Total Amount Due - Cus-
information, to process. The event trigger added to tomer Payment Amount =Balance. When the Bal-
the process, then, contains Video IDs (see Figure ance is zero, the rental/return process is complete
9-42). The data is made available to the Add Return and all files may be updated as required. Each line of
Date process. Get Return ID and Add Return Date the rental/return, signifying either an existing Open
iterate until the Return ID is ended (exactly how is Rental with/without Return Date or a new Open
decided during design). Then all Open Rentals (and Rental is processed separately to determine the next
returns) are Checked for Late Fees. process to execute. This represents the normal pro-
Next, the Get Valid Video process executes to cess; now we must also think about exceptions:
identify videos requested for rental. The informa- What if the balance does not go to zero? Can a cus-
tion needed for this process comes from an external tomer ever overpay and leave so fast that they are
trigger, the customer-supplied Video ID. The ID is owed change? Can a customer ever owe money and
validated by reading the Video File and a Copy File. leave without paying? If the answer to either of these
For rental/return processing, the Video and Copy questions is yes, we also need an optional event trig-
files are always used together, so they are shown in ger End of Payment that forces completion of the
one file symbol. By doing this, we are reminded that Process Payment process and shows that the cus-
we need a user view that connects the two relations tomer is owed money. For the present, we assume
for rental processing. Customers are to be reminded that we iterate through Process Payment until Bal-
when they have already rented a particular video, ance equals zero. Finally, process payment needs to
therefore, Customer History File is also read during provide information for End of Day totals. A file for
this process. Its file symbol is added to the diagram. EOD data will be created from this process. Notice
The Total Amount Due is passed to trigger Pro- that this file is not on the ERD, but should it be? It
cess Payment and Make Change. The Total Amount does not represent an entity that the company keeps
Due is displayed from the previous process and information about, or does it? When the ERD was
awaits the external entry of Customer Payment developed, we focused on the rent/return processes
Amount to compute change. This requires an event only and ignored nonrental activities. By ignoring
trigger for Customer Payment Amount (see Figure accounting and its needs for rent/return data, we
Business Area Analysis Activities 377
Customer History
End of Day
missed the entity for financial inform.ation relating to null), the Open Rental is rewritten to the file (see
rent/return. We should recheck with the accountant, Figure 9-44). For each paid returned video, some
but it appears that the EOD Accounting Information logical delete indicator must be set and the Open
should be an entity that is added to the ERD, con- Rental is then rewritten to the file. If an existing
nected to the Open Rental entity. Open Rental had no processing, no action is re-
The last 'chunk' of the PDFD is for file update quired, but it might be easier, and more consistent, to
and print processes. For each new rental, Create only look at return and paid criteria to determine
Open Rental writes the new rental to the Open correct writing. No business criteria exist for this
Rental File (see Figure 9-44). For each unpaid return option, therefore, this is a design decision not
(i.e., existing Open Rental with Return Date not made here.
Copy
Until No
More
Returns
Until No
More Open
Rentals
) 4 - - - - - - - ; Video, Copy
'------.---r-'"
Until No
More Valid
Videos
End of Day
Copy
Next, history file processing updates both Video them yourself. The remaining PDFDs are shown as
History and Customer History. Notice that the de- Figure 9-46, for query processing, and Figure 9-47
tails of history processing require another level of for customer maintenance processing. The PDFDs
decomposition, which is left as a student exercise. for Video Maintenance processing are a practice
Last, the receipt is printed. The data trigger from exercise at the end of the chapter.
Process Payment initiates this process; the physical Next we evaluate the PDFD for completeness
output is not on the PDFD. based on the decomposition information from the
The composite PDFD with all of the chunks client and the original statement of the problem
integrated is shown as Figure 9-45. Before you look (Chapter 2).
at the other diagrams, try to develop one or all of Errors to watch for are:
Business Area Analysis Activities 379
1. Processes on the decomposition that are user if necessary, to determine what data are
not self-contained are not processes. For required for the dependent process.
instance, 'end process' is a system action, 4. If a process data trigger exists in a different
not a business process. You do not need a time, the connection is probably wrong. For
process to which all other processes feed to instance, you might be tempted to connect
show a termination point on a PDFD (see query processing to rental/return in some way
Figure 9-48). (see Figure 9-50). These are disjoint activi-
2. Processes on the PDFD that are not identical ties and the only connection is through
to the processes on the decomposition (see the database.
Figure 9-49). 5. For query processing, do not try to simulate a
3. If process data trigger contents cannot be menu selection process in the PDFD (see
identified, there may be no dependency. Figure 9-51). Each type of query has its own
Reevaluate the relationship, talking to the event trigger requesting information. Each
Customer
Customer History
Video
Copy
Video History
EODArchive
EOD Process
EOD
EOM Process
Open Rental
Add Customer
Update Customer
Delete Customer
Query Customer
( Get Request)
versus
Query Customer
( Do Data Entry )
FIGURE 9-49 Name Names Do Not Match FIGURE 9-50 Data Trigger Timing
Decomposition Problem
Business Area Analysis Activities 381
( Main Menu )
If Periodic
,
( )
,
Periodic Menu
( Query Customer') (
,- 1
Query Video (
,
Query Rentals)
,
( End of Day Process)
Develop and Analyze may be one to five for a small application, such as
ABC, or seven or more for a large application.
Entity/Process Matrix To perform manual affinity analysis, perform the
following procedure (here we do create affinity
Rules for Developing and Analyzing an
only). Keep in mind that you are 'normalizing'
Entity/Process Matrix process-entity relationships. Look at each process
This matrix is composed of the results from the ERD and its entities. For an entity/process cell, look down
and process decompositions; it requires neither the the column and identify other cells in which create
process dependency nor the PDFD for completion. processing is done (C). Make an erasable, colored
Along the left margin, list each lowest-level process mark in those cells. Do this for all entities for
from the process decomposition diagram. Use the each process.
lowest-level processes, such that all elemental pro- Even though it is an extra step, and quite a bit of
cesses for the organization and application area are work, create an interim matrix for each potential
present. Along the top, list the normalized entities cluster. This interim matrix makes your visual
from the ERD, with one entity in each column. inspection of relationships easier and actually speeds
Completely identify which processes are allowed the affinity analysis. Iterating, build the interim
to Create, Retrieve, Update, and Delete (CRUD) matrix, analyze it as described below, and add the
each entity. Enter one or more of the letters as resulting cluster(s) to the new process/entity matrix.
allowed by the current organization's policies and Iteration is required because the interim clusters may
procedures for each entity. change as the relationships of each potential cluster
When the matrix is complete, entities are grouped are analyzed.
by their affinity, or closeness, in processing entities. To analyze a potential cluster, start at the first
If you do this step manually, group processes that process and look at the data it shares with the next
share create responsibility first. If the number of process in the list. Do these two processes share
clusters is reasonable for the size of the project, stop. 80% 7 or more of their data creation (or update,
When you have analyzed the entire matrix, rearrange delete) responsibility? If yes, mark the original
the matrix by its clusters. You may have several clus- matrix to show they are together and add the pro-
ters that overlap. That is normal and not a cause for cesses and their entities to the interim matrix. If the
worry. If you have only one cluster, reanalyze as nec- percentage is less than 80%, circle the second
essary using first update processing, then delete pro-
cessing, then retrieval, as the clustering criteria. 7 80% is not a hard number. You adjust the percentage affinity
When you obtain a reasonable number of clusters, go needed to find multiple clusters. If all processes share all
responsibilities, the organizational processes must first be
to the next step of the analysis. A reasonable number
redesigned, then this analysis is repeated.
382 CHAPTER 9 Data-Oriented Analysis
Customer History
Video
Copy
Video History
Add Customer
Separate
page
Update Customer
I EOD Archive
J
Delete Customer
,
I
process for potential deletion from this cluster. If moment. Continue to do this type of stepwise com-
the percentage affinity is between 50-80%, look at parison of processes using entity affiliation to deter-
the next process that might be related. Do either of mine process affinity. Each successive process's
the two first processes share more than 80% of their functions on the entity are compared to all previous
data with the third process? If all three share, clus- processes, not just the first. If a new process is
ter them all. If the third strongly relates to the second strongly related to all of them, the cluster remains
process but not the first, or the third relates to the first intact. If the new process strongly relates to some
but not the second, still cluster all of them for the subset of processes, keep it. If the new process
Business Area Analysis Activities 383
strongly relates to only one process, consider those First, we check each entity to see if all possible
two processes as a second cluster and set them aside processing is accounted for. Customer, Copy, and
(i.e., create a new interim matrix) with their data for Video all have CRUD processing and appear com-
analysis of that cluster. As you complete analysis of plete. Open Rental has CRUD processing during
a cluster, add it to the new process/entity matrix. rent/return and R processing as part of Query. Open
Return to the original matrix and draw a line through Rental, too, looks complete.
each process that has been added to a cluster, to EOD Financial Information is created but not
ensure that there is no replication of a process and ever deleted, which is wrong. It should be archived
to ensure that processes that are not currently in a or deleted at the end of the processing day. We will
cluster are added to a cluster eventually. assume archival at the moment and add both process
As you create the new process/entity matrix, and data changes back to all other diagrams as
leave several lines and columns of space between needed. We can further assume that the delete
each cluster. At the end of the analysis, reanal- process and create process follow. This is an exam-
yze processes that have not been assigned to any ple of what happens with late identified entities. The
cluster. Look at the interim matrices to which each processing is not as thoroughly analyzed and some
odd process was compared. Find the cluster to which information could 'fall through the cracks.' The
it has the most affinity, and add the process to entity /process matrix helps assure that processing
that cluster. If there is no affinity, leave the entity is completely defined.
separate. Finally, history is only created and retrieved. We
When affinity analysis is complete, the clustered have not yet defined history, so the decision may not
processes are ready for analysis to determine if they be final. In general, history files are only created and
can be in the same execution unit, and the data retrieved. They are permanent records of past trans-
shared by a cluster should be analyzed to determine actions or business states, so they can not be updated
the physical design of the database and the needed or deleted and still be known as 'history.'
user views of data. These activities are done during When the matrix is complete, we cluster the
the design phase. processes by their entity affinity (see Table 9-6).
There are five possible clusters, but most of the data
ABC Video Example Entity/Process are used by many of the processes. So, the cluster-
ing shown is to give an example of how, at the
Matrix
application level, affinity analysis can be used to de-
To develop the entity/process matrix, list the lowest termine user views for DBMS access. For ABC, be-
level processes from the decomposition diagram cause of the extensive retrieval activities, one subject
down the left column. Then, list the entities across database would be defined. EOD data are kept sepa-
the top, one per column. For each process, add which rate from all other data. Customer, Video, Copy, and
functions it has for each entity. Possible functions Open Rental data are all used to create individual
are create, retrieval, update, or delete (CRUD, relations and joint user views.
respectively). The ABC process-entity matrix is First we analyze organizational sufficiency as it
shown as first completed in Table 9-5. In completing relates to processes. Is each entity created by one
the table refer back to the PDFD. Use the arrows and process only? The answer here is yes. Do all pro-
names of the processes to identify the type of pro- cesses creating, updating, and deleting an entity
cessing. For entities with arrows only going into a report to the same manager? Here the answer is
process, the correct code is 'R,' for retrieval. For again, yes. So the organization is sufficient.
entities with arrows only going out of a process, the Next we look at the entities and their usage to
correct codes are 'C,' 'U,' or 'D,' for create, update, determine subject area databases. Again, ABC is
or delete, depending on the processing to take place. a small company, so the data are mostly in one
For example, Create Video has a 'C' under Copy and
a 'C' under Video because it creates both. (Text continues on page 386)
384 CHAPTER 9 Data-Oriented Analysis
Print Receipt
Query Customer R R R
Query Rental R R R R R
Query Video R R R R
Query History R R R R R R R
Query EOD R
EOD Processing CRD
Rental Archive D C
Processing
Create Customer C
Update Customer U
Delete Customer D
Create Video/Copy C C
Update Video/Copy U U
Delete Video/Copy D D
Business Area Analysis Activities 385
Delete Customer D
Query Customer R R R
Update Customer U
Create Video/Copy C C
Update Video/Copy U U
Delete Video/Copy D D
Query History R R R R R R R
Query Video R R R R
Query Rental R R R R R
Rental Archive D C
Processing
Update/Create I CU CU
I
History
Query EOD R
Get Request
Print Receipt
386 CHAPTER 9 Data-Oriented Analysis
Data Entities and Final Attributes Activities for Rental/Return and All Processes
database. Video, Customer, Open Rental, and End torical information could be stored in a separate
of Day information will be stored together. Video database or set of files. In most companies and ap-
and Customer are separate from the other entities plications, history files are kept separate from the
because they are only modified by one process. His- other databases and files. For applications with huge
References 387
entity, develop an attribute list and normalize 17. What are the steps to developing a PDFD?
the data. Discuss the problems you have in 18. Define the allowable inputs to a process on a
developing the answer with your class. PDFD.
4. What is a 'promoted relationship' in an ERD 19. What is a CRUD matrix? How is it used?
and what is the result of the promotion? 20. What are the allowable connections on a
5. Normalization assumes that you know the rela- process dependency diagram?
tionships of data within and between entities. 21. What are the allowable connections on a
What happens if you do not have the data rela- process data flow diagram?
tionships correctly specified in normalization? 22. List four problems and their solutions when
*
6. What does normalization, as performed during developing a PD FD.
analysis, define? What does it not define?
7. What is the purpose of an entity/process EXTRA-CREDIT QUESTIONS
matrix?
1. Develop an IE analysis for the accounting (or
8. Describe the analysis of an entity/process
purchasing) function at ABC Video. Refer to
matrix.
other books to obtain details about accounting
9. What is the significance of subject area data-
applications. One such book is Online Business
bases? What do subject area databases have in
Computer Applications, 3rd edition, Alan L.
common with normalization?
Eliason, NY: MacMillan, 1991.
10. What is the importance of an organizational
2. Compare IE to process analysis. What are the
ERD? What problems might arise when you
similarities? What are the differences? How are
begin the ERD definition for an application
the same terms used differently? Which method
during the business area analysis?
has the least ambiguity? Which method results
11. Describe the relationships between the dia-
in a more complete analysis?
grams developed throughout IE-BAA. That is,
3. Do an entity-relationship diagram for the AOS
how is each diagram used in the creation of
Tracking System problem in the Appendix. Nor-
successor diagrams?
malize the data. Compile a list of issues for
12. What is the purpose of functional decom-
future resolution dealing with the data. The
position?
issues should relate to how many relations are
13. What are the three conditions under which you
needed, how the data will be used, and how to
cannot eliminate an entity?
minimize the number of relations without hav-
14. On a process dependency diagram, what is the
ing many unused attributes in each relation.
significance of directed lines connecting two
4. Do a process decomposition diagram and a
processes? Does this meaning change when
PDFD for the AOS Tracking System described
the processes are connected on a PDFD? If
in the Appendix.
so, how?
5. What do you not know after BAA is complete?
15. When should printed items be included ort a
PDFD?
16. What is a functional decomposition in IE?
Define the diagram and the contents at each
level of detail. How do you know when the
decomposition is complete, i.e., when to stop?
C HAP T E R 10
__ DATA-
------------------------------~--------
____ ORIENTED - - - - - - - - - - - - - - - - - - - - - - - -__________r - - - -
.. ----
____ DESIGN~~~~~~~~~~~-
INTRODUCTION _ _ _ __ design, these tenets are practiced in structuring the
application as well as the' program modules.
Data-oriented design uses data as the basis for clus- Subject area database design is based on theories
tering processes, building databases, and identify- of relational database and practice of data design.
ing potential distribution of the application. In this Data should be clustered with processes which cre-
chapter, we continue the discussion of Informa- ate the data. Those processes determine 'subject
tion Engineering as the example of data-oriented areas' of data. Subject databases are stored in the
methodology. Since IE has several 'incarnations' same database environment and their processes are
that differ slightly, it is important to note that IE in in integrated applications. These topics were dis-
this chapter is consistent with the Martin [1992], cussed in Chapter 5 and are not repeated here. Dur-
Texas Instruments [1988], and Knowledgeware™l ing analysis, the data entities are normalized and
versions. relations are identified (Chapter 9). Normalized data
is the starting point for physical database design.
Physical database design may automate the normal-
CONCEPTUAL _________ ized relations directly or may denormalize for per-
formance purposes. Also, in organizations with
FOUNDATIONS _ _ _ __
many using locations and potential for distribution
Information Engineering is the closest to a complete of data and processes, a strategy for distribution is
methodology of the methods in common use. It bor- defined. These two activities, potential denormaliza-
rows from research and practice to build a complete tion and distribution, are based on practical guide-
view of the application and its environment. Struc- lines rather than theory.
tured programming tenets describe the importance of From practice, we know that there is more to
limiting program structure, as much as possible, to implementing an application than designing program
selection, iteration, and instruction sequence compo- specifications and a database. We need to design
nents. 'Go to' statements should be minimized. screens, a screen dialogue, provide for unauthorized
Modules should have one entry and one exit. In IE and unwanted damage to the data, provide for con-
version from the old to the new method of data stor-
1 Knowledgeware™ is a product of Knowledgeware, Inc., age, design and plan application implementation,
Atlanta, Ga. install hardware, design and plan application tests,
391
392 CHAPTER 10 Data-Oriented Design
and develop training programs for users. While all of 9. Develop, schedule, and conduct training pro-
these tasks are discussed in some books on IE, these grams for users (Chapter 14)
activities are done regardless of methodology, and to
discuss them as pertaining only to IE would be mis- The topics in this chapter are design of data usage,
leading. For this reason, the topics in this chapter action diagrams (which are program specs), screen
include screen dialogue design, hardware planning, dialogues, security, recovery, audit controls, and
and providing for data security, recovery, and audit installation planning. They are discussed in this sec-
controls, in addition to procedure and database tion in the order above, by the amount of work
design. Human interface design, conversion, and involved, and their importance to the application.
training are discussed in Chapter 14; testing is the The first activity in IE design is to confirm design
subject of Chapter 17. of the database and determine the optimal data loca-
tion. Invariably, when the details of processing are
mapped to specifications, data usage changes from
DEFINITION OF _ _ _ _ __ that originally envisioned. To confirm database
design, the data is mapped to application processes
INFORMATION _ _ _ _ __ in an entity/process (CRUD) matrix and the matrix is
ENGINEERING _ _ _ _ __ reanalyzed. (See Chapter 9 for a more complete dis-
cussion of entity/process matrices.) The entity/
DESIGN TERMS _ _ _ __ process matrix (see Figure 10-1) clusters data
together based on processes with data creation
A full list of the activities in IE design is given here;
authority. The subject area databases defined by the
included are references to chapters in which some
clusters are stored in the same database environment.
topics are discussed.
The second step of database design is to deter-
1. Design security, recoverability, and audit mine a need to denormalize the data. Recall that nor-
controls malization is the process of removing anomalies
2. Design human interface structure that would cause unwanted data corruption. Denor-
malizing is the process of designing storage items of
• Develop menu structure
data to achieve performance efficiency (see Figure
• Define screen dialogue flow
10-2). Having normalized the data, you know where
3. Data analysis the anomalies are and can design measures to pre-
vent the problems.
• Reconfirm subject area database
The next activity in data analysis is to determine
definition
the location of data when choices are present. A
• Denormalize to create physical database
series of objective matrices are developed and ana-
design
lyzed. The matrices identify process by location and
• Conduct distribution analysis and recom-
data by location and transaction volume. These are
mend production data distribution strategy
used to develop potential designs for distribution of
4. Develop an action diagram and conduct data. The application processes and data are both
reusability analysis mapped to locations. Cells of the process/location
5. Plan hardware and software installation and matrix contain responsibility information, identify-
testing ing locations with major and minor involvement (see
6. Design conversion from the old to the new Figure 10-3). This information is used to determine
method of data storage (Chapter 14) which software would also be required to be distrib-
7. Design and plan application tests (Chap- uted, if distribution is selected.
ter 17) Two data/location matrices are developed. The
8. Design and plan implementation (Chap- first data/location matrix identifies data function as
ter 14) either update (i.e., add, change, or delete) or retrieval
Definition of Information Engineering Design Terms 393
Processes
Create & Mail Order CRUD CRUD CRU R R
Verify Receipts
against Order RU RU RU R
Send Invoices
to Accountant RD RD
Identify Items
& Vendors R R CRU
Call Vendor to
Verify Avail/Price RU RU
by location (see Figure 10-4a). The second defines cesses are clustered to minimize transmission traffic.
options for data in each location (Figure 10-4b). Then formulae are applied to the irtformation to
Together these matrices identify options for distrib- determine whether the traffic warrants further con-
uting data. The options for distributed data are repli- sideration of distribution.
cation, partitioning, subset partitioning, or federation Finally, subjective reasons for centralizing or for
(see Figure 10-5). Replication is the copying of the distributing the application are developed. The sub-
entire database in two or rriore locations. Vertical jective arguments ensure that political, organiza-
partitioning is the storage of all data for a subset of tional, and nonobjective issues are identified and
the tuples (or records) of a database. Subset parti- considered. Examples of subjective motivations for
tioning is the storage of a partial set of attributes for centralization/distribution relating to Figures 10-4,
the entire database. Federation is the storage of dif- 10-5, and 10-6 are in Table 10-1. Recommendations
ferent types of data in each location, some of which on what, how, and why to distribute (or centralize)
might be accessible to network users. The selection data are then developed from the matrices and sub-
of distribution type is determined by the usage of jective analysis. The recommendations and reason-
data at each location. ing are presented to user and IS managers to accept
Then, a transaction volume matrix is developed or modify.
to identify volume of transaction traffic by location. After data are designed, the design of the human
Cells of this matrix contain average number of trans- interface can begin with a definition of interface
actions for each data relation/process per day (see requirements. The hierarchy diagram is used to
Figure 10-6). In an active application, hourly or peak determine the structure of selections needed by the
activity period estimates of volume might be pro- application. A menu structure is a structured dia-
vided. During matrix analysis, the data and pro- gram translating process alternatives into a hierarchy
394 CHAPTER 10 Data-Oriented Design
Unnormalized First Normal Form Second Normal Form Third Normal Form DeRelation
Terms
Customer Number
Terms
Customer Number
.-
Customer Name Customer Name
Customer Number
Item Price
Item Description
Item Number
Item Description ..
Item Quantity Item Quantity
Description
Price
Purchasing x
Marketing x X
Customer Service X
Sales X X
Product Development X X
Research & Dev. X X
Manufacturing X
Legend:
X-Major Involvement
\-Minor Involvement
of options for the automated application (see Figure lowest level of the process hierarchy, a process cor-
10-7). In general, we plan one menu entry for each responds to either a program or module. Screens at
process hierarchy diagram entry between the top and the lowest level are determined by estimating exe-
bottom levels. One level of menus corresponds to cute units. These functional screens may not be
one level in the process hierarchy diagram. At the final in menu structure definition because execute
U = Update, R = Retrieve
unit design is usually a later activity. Once the menu options for movement from that level. From the Cus-
structure is defined, it is given to the human inter- tomer Maintenance menu, the options are to move to
face designer(s) for use during screen design (Chap- the main menu or to one of the four subprocesses.
ter 14). The dialogue flow diagram is used by the designers
The structure is then analyzed further to deter- in developing program specifications, by the human
mine the allowable movement between the options interface designer( s) in defining screens, and by
on the menu structure. The dialogue flow diagram testers in developing interactive test dialogues.
documents allowable movement between entries on Next, procedure design begins with analysis of
the menu structure diagram (see Figure 10-8). On the the process hierarchy and process data flow dia-
diagram, rows correspond to screens and columns grams developed during IE analysis (Chapter 9).
correspond to allowable movements. For instance, in Remember, in analysis, we developed one process
the menu structure example (Figure 10-7), Customer data flow diagram (PDFD) for each activity. Now
Maintenance has four subprocesses. A dialogue flow each PDFD is converted into an action diagram. An
diagram shows how Customer Maintenance is C\.cti- action diagram shows procedural structure and pro-
vated from the main menu (or elsewhere) and the cessing details suitable for automated code genera-
Definition of Information Engineering Design Terms 397
Location A Location B
~ ~
~ L:J
Vertical Data Partitioning-Complete 'records' or tuples of data are stored with different
data in more than one location.
Location A Location B
~ ~
~ ~
Horizontal (or Subset) Data Partitioning-Partial 'records' or tuples of data are stored
in more than one location.
Location A Location B
A1,A3, A2,A4,
A6, B1, A5, B2,
C2,C4, 83, C1,
G,H,I D,E,F
Data Federation-Different data are completely stored in more than one location.
Some data may be accessed by remote sites.
Location A Location 8
A,C,D,F Q,R,S,T
B - local only, U - local only,
E - local only V - local only
tion. An action diagram is drawn with different types gram specifications may then be packaged into mod-
of bracket structures to show the hierarchy, rela- ules that perform one function. Data entities are
tionships, and structured code components of all added to the diagram at the level they are accessed
processes. (see Figure 10-11). Progressively more detail about
The first-cut action diagram translates the PDFD data usage is provided about data attributes. Arrows
into gross procedural structures (see Figure 10-9). are attached to show reading and writing of data (see
Then, using detailed knowledge obtained during the Figure 10-12).
information gathering process, the details of each When the details are completely specified, the
procedure are added to the diagram to develop pro- action diagram is mapped to procedural templates
gram specifications (see Figure 10-10). These pro- to determine the extent to which reusable modules
398 CHAPTER 10 Data-Oriented Design
Subject Database
B
Customer Service 250 R 250 R 50 R 250 R 250 R 250 R
50 U 400 U
Sales 25 R 25 R 10 R 70 R 2R 2R 15 R
20 U 5U 100 U
Marketing 20 R 10 R 10 R 50 R 2R 5R
D
Manufacturing 50 R 50 R 500 R
5U 250 U 2,000 U
E
can be used in the application, and the changes to the cation is specified manually, the action diagrams are
action diagrams required to define modules for given as program specifications to programmers who
reuse. A procedural template is a general, fill-in- begin coding. If the application uses a CASE tool,
the-blanks guide for completing a frequently per- automatic code generation is possible. A code gen-
formed process. For instance, error processing and erator is a program that reads specifications and cre-
screen processing can be defined as reusable tem- ates code in some target language, such as Cobol or
plates (see Figure 10-13). A data template is a partial C. If the application uses a code generator, the action
definition of an ERD or database that is consistent diagram contains the symbols and procedural detail
within a user community. For example, the insurance specific to the code generation software. If the appli-
industry has common data requirements for policy cation uses a 4GL, the action diagram might con-
holders, third party insurance carriers, and policy tain actual code. If manual programming uses a 3GL
information; most companies have similar account- or lower, the action diagram contains pseudo-code
ing data needs, and so on. To be a candidate for consisting of structured programming constructs.
template definition, a process must do exactly the The next activity in IE design is to develop
same actions whenever it is invoked, and data must security plans, recovery procedures, and audit con-
be consistent across users. trols for the application. Each of these designs re-
Mter reusability analysis, the action diagram set strict the application to performing its activities in
is finalized and used to generate code. If the appli- prescribed ways. The goal of security plans is to
Definition of Information Engineering Design Terms 399
Location A
Measure-Argument
Location B
Measure-Argument
C Customer service needs fast response to fulfill corporate objectives (90% of requests serviced within one
phone call, less than three minutes)
C Most application expertise in division is located here
C IS manager, located here, wants the applications and data under his control
Location C
Measure-Argument
Location D
Measure-Argument
Location E
Measure-Argument
Legend:
D/e =Strong argument for Distribution/Centralization
d/e =Weak argument for distribution!centralization
400 CHAPTER lODato-Oriented Design
- Purchasing Application
1. Order Fulfillment
1. Order Entry
[ 2. Order Change
3. Order Delete
4. Order Inquiry
- Analyze Business
2. Inventory Allocation
1. Create Allocation
Customer
[ 2. Change Allocation
3. Inquire on Allocation
- Create Purchase Order
Service - 1 - - - -
3. Customer Maintenance - Monitor Purchase Order
1. Customer Create
2. Customer Change
3. Customer Delete
[
4. Customer Inquiry - End Purchasing
4. Management Reports
1. Customer Reports
~:~:o::::e:iC~ ~ = ~ =- =f- =- f-
:::::9---------- -_1 -- ---- -f--------------------- ~
Create Order -
Change Order _
Delete Order - - - - - - -
] j ]
==- - - - - ] ] - - =-:
Order Inquiry _ _ _ _ _ _ _ _ _ _ _ ,_ _ _ _ _ ] _ ~
,...-- Purchasing
ments to program design that need to be accom-
modated.
Next, audit controls are designed to prove trans-
I-- Analyze Business action processing in compliance with legal, fidu-
ciary, or stakeholder responsibilities. Audit controls
usually entail the recording of day, time, person, and
I-- Create Purchase Order function for all access and modification to data in the
Do Until All Items Are Identified application. In addition, special totals, transaction
traces, or other special requirements might be
Identify Item and Vendor
( applied to provide process audit controls.
EndDo Last, hardware installation is planned and imple-
Sort by Vendor, Item
mented, if required for the application. Again, there
~ Do While There Are Items to Be Processed
is no theory or research about hardware installation,
r- IF First-Record but long practice has given us guidelines on the
activities and their timing.
Set Last-Vendor = Vendor
_ End Purchasing
• data use and distribution analysis
Monitor Purchase Order • security, recovery, and audit controls
- • action diagrams
• menu structure and dialogue flow
• hardware and software installation and testing
FIGURE 10-10 Action Diagram with Create plans
Purchase Order Process Detail
....--- Purchasing
r- IF First-Record
Get Price
- ELSE
Create Order
Mail Order
File by Vendor
-ENDIF
L ENDDO
for data and software location that best fits user new entity/process matrix which is compared to
needs. the one developed during analysis. If the definition
The entity/process (CRUD) matrix from IE of subject area databases does not change, the distri-
analysis is reanalyzed and mapped to the completed bution analysis can begin. If the definition of sub-
action diagram. Each process is identified on the ject area databases does change, the logical definition
action diagram with its associated data items and of the databases is redone as discussed in Chapter 9.
the related entity. Recall that the clustering of entities The second step to data analysis is to determine
and processes on the matrix is primarily based on the potential for data distribution. Distribution analy-
which processes have create responsibility for the sis uses three matrices as the objective basis for
data. The entities and processes are arranged into a determining whether data should be distributed.
Information Engineering Design 403
Purchasing
New Releases
Analyze Business
Vendor Name
Video Name
End Purchasing
First, a location/process matrix is developed to iden- trix is used to determine the potential age of data
tify major and minor performance of processes in the required by each location. For instance, retrieval data
application (see Figure 10-14). This location/process might be down-loaded from a centralized location
matrix determines which software is needed at each each day at the close of business, rather than main-
location to support the functions. The informa- tained at the remote sites. Created data must be
tion needed to complete the matrix is provided by available for creation, and therefore, up-to-date at
the users. the creating sites. The information needed to com-
Next, a data distribution by location matrix is plete the matrix is provided partly from the entity/
developed to show creation and retrieval needs by process matrix from the first data analysis, and partly
location (see Figure 10-15). This datal1ocation ma- by the users.
404 CHAPTER 10 Data-Oriented Design
Return ErrorResponse
The next matrix shows data usage by location basis. So, for most processing, a vertical partition
(see Figure 10-16). Recall from above that data can of the customer database, the branch's customers,
be centralized, vertically or horizontally partitioned, could be accessible locally in the branch to speed
or federated. For instance, a bank branch might processing.
create data about customers, but it only accesses The last objective matrix summarizes transaction
information about its own customers on a regular volume by process by location (from the process/
Purchasing x
Marketing x X
Customer Service X
Sales X X
Product Development X X
Research & Dev. X X
Manufacturing X
Legend:
X-Major Involvement
\-Minor Involvement
U = Update, R = Retrieve
location table) against each subject database from the Work in Process and Inventory databases at loca-
the data analysis. Two daily transaction volume tion E. The initial recommendation would be to
estimates for each process and location are devel- centralize this data at E. Even though D's volume
oped (see Figure 10-17). The first estimate is for is significantly less than E's, the data usage table
transactions that create or update the database. The shows that each site accesses only its own data, so
second estimate is for read-only retrieval processing. the option to vertically partition data and provide
Also notice that if no database access is performed 'home ownership' could be used to support the busi-
by a process, no entry is made. This increases the ness needs.
readability of each matrix. The other databases all have access competition
The analysis of this data is to first identify the from two sites (Figure 10-18). Two locations, A and
location with the highest total transaction count for B, have fairly even usage of the Prospect and Cus-
each database. The example shows a thick box tomer, Customer Order, and Customer History data.
around each such location (see Figure 10-18). If the The options from the Data Usage table show that
application were distributed, with centralization of Replication would be the distributed recommenda-
subject databases in one location, the boxes would tion since the sites both access all data. Customer
identify the most likely location for each database. History processing differs from the other databases
All other transactions, outside the boxes, represent in that it is all read-only and it has a much lower vol-
transmission traffic. When the transmission traffic is ume than the others. Therefore, it could be central-
a high percentage of the total traffic, say over 40%, ized at either site with an access delay at the other
different types of replication, federation, and parti- site for retrievals. This option might be chosen if
tioning are tried. To analyze the data, first box the there are hardware configuration differences that
transaction numbers for the site(s) representing 50% favor centralization.
or more of the total processing. If there is one site Locations Band E compete for the Manufactur-
boxed in a column, that identifies a centralized data- ing Plan data (Figure 10-18). Location B only
base at the location corresponding to the box. We retrieves the data, while the location E volume
have two of these in the example (Figure 10-18)- of updates is low. The database could either be
406 CHAPTER lODato-Oriented Design
centralized at B to provide fast query access, with to argue for distribution. Distribution should be con-
delayed access by E, or, if politics are involved, the sidered when retrieval volume is less than the ratio
data could be centralized at site E, the owner, with of locations to the delay (D). The delay is for update
delayed retrieval by B. transactions which are now transmitted in bulk once
The second part of the analysis is to compute the per period to each other location. In the example,
ratio of data retrieval transactions (DR) to data with even a 15-minute delay, the numbers over-
update transactions (Du). If the ratio is greater than whelmingly favor distribution. The rationale for
one less than the number of locations (L) (or nodes these ratios is given in Table 10-3.
in the network), distribution should be considered This discussion about distribution is important
(see Table 10-2). In the example, the ratio clearly because it highlights an ethical problem in software
favors centralization of data (Table 10-2). Keep in engineering. The numbers can be made to argue for
mind that centralization here means that each data- distribution regardless of transaction activity. If the
base is stored at one location. It does not mean that transaction ratio of retrievals to updates is large, then
the databases are all at the same location. the no-delay argument is more likely to favor distri-
If a delay can be introduced for retrieval process- bution. If the retrieval to update ratio is less than one,
ing, then the ratio changes. It becomes much easier the delay argument is likely to favor centralization.
Information Engineering Design 407
As an ethical person, you are bound to tell the client Needs/does not need specific DBMS
about all computations and how the formulae can Requires/does not require larger machine than
make either argument. local sites have
Last, a subjective list of reasons for and against Data ownership is/is not an issue
centralization and distribution is developed for Data replication needed in one/many locations
the organization. The exact topic headings for Unique data/application in one location
this list are tailored to the company and application Data affects/does not affect central corporate
environment. management
Fast response time important/not important
Critical data should be managed centrally High availability important/not important
Data is/is not critical to corporation/business Local staff skilled/unskilled with computers
unit Application/data security is/is not vital to
Most data can/cannot be stored locally/ organization/business unit
centrally Centralized operations is/is not at capacity
Subject Database
A
Customer Service 100 R 250 R 5R 2R 2R
20 U 400 U
Sales 50 R 50 R 150 R 50 R 2R 2R 15 R
20 U 30 U 50 U
Marketing 15 R 5R 10 R 50 R 2R 1R
B
Customer Service 250 R 250 R 50 R 250 R 250 R 250 R
50 U 400 U
Sales 25 R 25 R 10 R 70 R 2R 2R 15 R
20 U 5U 100 U
Marketing 20 R 10 R 10 R 50 R 2R 5R
E
Manufacturing 100 R 200 R 500 R
15 U 2,500 U 25,000 U
Legend:
Subject Database
A
Customer Service 100 R 250 R 5R 2R 2R
20 U 400 U
Sales 50 R 50 R 150 R 50 R 2R 2R 15 R
20 U 30 U 50 U
Marketing 15 R 5R 10 R 50 R 2R 1R
B
Customer Service 250 R 250 R 50 R 250 R 250 R 250 R
50 U 400 U
Sales 25 R 25 R 10 R 70 R 2R 2R 15 R
20 U 5U 100 U
Marketing 20 R 10 R 10 R 50 R 2R 5R
Manufacturing 50 R 50 R 500 R
5U 250 U 2,000 U
E
Manufacturing 100 R 200 R 500 R
15 U 2,500 U 25,000 U
Legend:
R = Retrieve
Down-loading of yesterday's data would/would Each reason is rated as weak or strong justification of
not work in local sites its position. The purpose of list creation is to sur-
Updates with delay would/would not work in face and attempt to objectify objections and argu-
this application environment ments from each stakeholder viewpoint regarding
Partitioning of data would/would not work in distribution of data in the application. An easy analy-
supporting this application sis is to count the capital and small letters of each
Replication of data would/would not work in type, and compare them. A more elaborate analysis
supporting this application might entail giving a weight to each item and devel-
Data integrity is/is not paramount to the oping a weighted ranking of the central/distributed
application positions. If the results of this analysis support the
Disaster recovery protection is/is not vital to the objective measures and results, a compelling justifi-
application cation for the result can be developed and presented
Operators are/are not at remote sites to user management for approval. If the subjective
Information Engineering Design 409
TABLE 10-2 Distribution Ratio Fonnulae maintained, more easily staffed, and less costly {or
incremental upgrades. Therefore, a LAN is the
The breakeven point for distribution occurs when choice. Most multiuser mini-computers allow eight
DR/Du > N -1.
units without major expenditures for an additional
I/O controller board. Mini-computers tend to have
If the transaction ratio is greater than N - 1, distribute proprietary operating systems and use packages
data.
that tie the user to a given vendor. The strength of
An alternative is to allow a time delay for update transac-
tions with all data replicated at all locations in a network.
Then only updates generate network traffic. The break-
even point for distribution occurs with this scenario when TABLE 10-3 Rationale for Distribution
Du < N/TimeDelay or Du * TimeDelay < N Ratios
If the number of changes is less than the number of nodes If T is the number of traffic units per hour (i.e., transac-
divided by the time delay, distribution is favored. tions), and if all data is centralized at one location (not
Legend: necessarily the same), then the total traffic units per hours
is
DR =Number of data retrieval transactions
Tcentralized =(DR + Du) * (N - l)/N
Du =Number of data update transactions
Then, if all data is decentralized (i.e., fully replicated at
N = Number of network nodes all user locations), only update transactions generate net-
D = Total number of data transactions (DR + Du) work traffic, and
Tdistributed = Du * (N - 1)
Adapted from Martin (1990), p. 360.
Fully replicated, decentralized data generates less traffic
than centralization if
Subject Database
Customer Video
Location/Function Customer Video Item History History EOD Archive
Dunwoody Village
Rent/Return 500 R 500 R 250 R 500 R 500 R
15 U 5U 400 U 500 U 500 U
Video 20 R 150 R
Maintenance 5U 50 U
Customer 5R
Maintenance 5U
multiuser minis is in their added horsepower that compromise of data or programs. Trusting individu-
allows them to support applications with a high vol- als' ethical senses to guide them in not hurting your
ume of transactions (in the millions per day). A company's applications simply ignores the reality
multiuser mini is not recommended here because, for of today's world. Morally, not having planned for
the money, it would be analogous to buying a new attempts to compromise data and programs, you, the
Porsche 911 Targa when a used Hyundai would do SE, are guilty of ethical passivity that implicitly war-
just fine. To discuss configuration of the LAN, we rants the compromiser's actions. Therefore, design
move to the next section on hardware and software of security, recovery, and controls should become
installation. an integral activity of the design of any application.
The major argument against security, recovery,
and audit controls is cost, which factors in all deci-
Define Security, Recovery, and sions about these issues. The constant trade-off is
between the probability of an event and the cost of
Audit Controls minimizing its probability. With unlimited funds,
Guidelines for Security, Recovery, and most computer systems, wherever they are located,
can be made reasonably secure. However, most com-
Audit Control Planning
panies do not have, nor do they want to spend,
The three issues in this section-security, recovery, unlimited money on probabilities. The trade-off
and controls-all are increasingly important in soft- becomes one of proactive security and prevention
ware engineering. The threat of data compromise versus reactive recovery and audit controls. Audit
from casual, illegal acts, such as viruses, are real and controls, if developed as part of analysis and design,
growing. These topics each address a different per- have a minimal cost. Recoverability has on-going
spective of data integrity to provide a total solution costs of making copies and of off-site storage. Each
for a given application. Security is preventive, type of security has a cost associated with it. Keep
recovery is curative, and controls prove the other the cost issues in mind during this discussion, and try
two. Having one set of plans, say for security, with- to weigh how you might balance the three methods
out the other two is not sufficient to guard against of providing for ABC's application integrity.
Information Engineering Design 411
Security plans define guidelines for who should does not use chemicals near computer
have access to what data and for what purpose. equipment.
Access can be restricted to hardware, software, and 4. Determine the capability of the facility to
data. There are few specific guidelines for limiting withstand natural hazards such as earth-
access since each application and its context are dif- quakes, high winds, and storms. Evaluate
ferent. Those guidelines are listed here: the facility's water damage protection
and the facility's bomb threat reaction
1. Determine the vulnerability of the physical procedures.
facility to fire. Review combustibility of con- Design the facility without external win-
struction. Determine adjacent, overhead, and dows and with construction to withstand
underfloor fire hazards. Determine the status most threats. To minimize bomb and terrorist
of current fire detection devices, alarms, sup- threats, remove identifying signs, place
pression equipment, emergency power equipment in rooms without windows, and
switches, extinguishers, sprinklers, and do not share facilities. To minimize possible
smoke detectors. Determine the extent of storm damage, do not place the facility in a
fire-related training. If the facility is shared, flood zone or on a fault line.
evaluate the risk of fire from other tenants. 5. Evaluate external perimeter access controls
Plan·for fire prevention and minimize fire in terms of varied requirements for different
threats by using overhead sprinklers, C02, or times of day, week, and year. Determine
halon. Develop fire drills and fire contin- controls over incoming and outgoing materi-
gency plans. If no emergency fire plans exist, also Evaluate access authorization rules,
develop one, reviewing it with the local fire identification criteria, and physical access
department, and practicing the procedures. controls.
2. Consider electrical/power facilities. Review Plan the security system to include
electrical routing and distribution of power. perimeter lights, authorization cards, physical
Review the means of measuring voltage and security access, etc. as required to minimize
frequency on a steady-state or transient basis. the potential from these threats. Establish
Determine whether operators know how to procedures for accepting, shipping, and dis-
measure electrical power and can determine posing of goods and materials. For instance,
both normal and abnormal states. Define shred confidential reports before disposal.
electrical and power requirements for the Only accept goods for which a purchase
new application hardware and software. order is available.
Determine power sufficiency for the comput- 6. Evaluate the reliability and potential damage
ing environment envisioned. from everyday use of terminals and remote
Correct any deficiencies before any equip- equipment from unauthorized employees.
ment is delivered. For instance, install a Plan physical locking of equipment,
universal po~er supply (UPS) if warranted backup copies of data, reports, etc. to mini-
by frequent power fluctuations or other mize potential threats. Design remote equip-
vulnerabilities. ment to minimize the threat of down-loaded
3. Review air-conditioning systems and deter- data from the central database except by
mine environmental monitoring and control authorized users. Usually this is done by hav-
mechanisms. Evaluate the 'housekeeping' ing PCs without any disk drives as terminal
functions of the maintenance staff. devices.
Correct any deficiencies before any equip- 7. Evaluate the potential damage from unautho-
ment is delivered. For instance, make sure rized access to data and programs.
the maintenance staff cleans stairwells and Protect programs and data against unau-
closets, uses fireproof waste containers, and thorized alteration and access.
412 CHAPTER 10 Data-Oriented Design
_ _ Does access authority for each area employees and screening visitors, reduces vulnera-
require management review? bility even further.
Is access controlled by The major vulnerability is not related to the phys-
_ _ locking devices ical plant in most cases; it is from connections to
_ _ guard force computer networks. The only guaranteed security
_ _ automated card-key system against telecommunications invasion is to have all
anti-intrusion devices computers as stand-alone or as a closed network
_ _ sign-in/out logs with no outside access capability. As soon as any
_ _ photo badge system computer, or network, allows external access, it is
closed circuit TV vulnerable to invasion. There are no exceptions, con-
other _ _ _ _ _ _ _ _ _ _ __ trary to what the local press might have you believe.
_ _ Are unique badges required? Data and program access security protection reduce
_ _ Do employees challenge unidentified the risk of a casual break-in to an application. Mon-
strangers? itoring all accesses by date, time, and person further
8. Control Mechanisms reduces the risk because it enables detection of
_ _ Do signs designate control/restricted intruders. Encrypting password files, data files, and
areas? program code files further reduces the risks; it also
If locks are used makes authorized user access more complex and
_ _ is key issuance controlled? takes valuable CPU cycles.
_ _ are keys changed periodically? The most common security in an application is
9. Administration to protect against unwanted data and program
_ _ Does management insist on strict access. Data access can be limited to an entire phys-
adherence to access procedures? ical file, logical records, or even individual data
Are individuals designated responsibility items. Possible functions against data are read only,
for read/write, or write only. Users and IS developers
access control at various control consider each function and the data being manipu-
points lated to define classes of users and their allowable
_ _ authorizing visitor entry actions. Allowable actions are to create, update,
_ _ establishing and maintaining policy, delete, and retrieve data. A hierarchy of access rights
procedures, and authorization lists is built to identify, by data item, which actions are al-
_ _ compliance auditing lowed by which class of users. A scheme for imple-
_ _ follow-up on violations menting the access restrictions is designed for the
application.
The probability of total hardware and software Backup and recovery go hand-in-hand to provide
loss is low in a normal environment. In fact, the correction of errors because of security inadequa-
probability of occurrence of a destructive event is cies. A backup is an extra copy of some or all of the
inversely related to the magnitude of the event. That data and software, made specifically to provide
is, the threat from terrorist attack might be miniscule, recovery in event of some disaster. Recovery is the
but the damage from one might be total. Each type of process of restoring a previous version of data or
threat should be considered and assigned a current application software to active use following some
probability of occurrence. High probability threats damage or loss of the previously active copy.
are used to define a plan to minimize the probabil- Research by IBM and others has shown that com-
ity. If the company business is vulnerable to bomb panies go out of business within six months of a dis-
threats, for instance, buildings without external glass aster when no backup copies of computer data and
and without company signs are more anonymous programs are kept. In providing for major disasters,
and less vulnerable. Having all facilities locked at all such as tornados, off-site storage, the storing of
times, with a specific security system for authorizing backup copies at a distant site, is an integral part of
414 CHAPTER 10 Data-Oriented Design
guaranteeing recoverability. Off-site storage is usu- the entire database or software library. An incre-
ally 200+ miles away from the computer site, far mental backup is a copy of only changed portions
enough to minimize the possibility of the off-site of the database or library. A week's worth of back-
facility also being damaged. Old salt mines and other ups are maintained and rotated into reuse after, for
clean, underground, environmentally stable facilities example, the fifth day. To minimize the time and
are frequently used for off-site storage. money allocated to backup, incremental procedures
The disasters of concern in recovery design are are most common. A full backup is taken once each
user error, unauthorized change of data, software week with incremental backups taken daily. An
bugs, DBMS failure, hardware failure, or loss of active database would be completely backed-up
facility. All these problems compromise the integrity daily with one copy on-site for immediate use in
of the data. The most difficult aspect of recovery event of a problem. Regardless of backup strategy,
from the first three errors is error detection. If a data an extra copy of the database is created at least once
change is wrong but contains legal characters, such a week for off-site storage.
as $10,000 instead of $1,000 as a deposit, the only The extensiveness of backup (and recoverabil-
detection will come from audit controls. If a data ity) is determined by assessing the risk of not hav-
change is wrong because it contains illegal charac- ing the data or software for different periods (see
ters, the application must be programmed to detect Table 10-4). The less the tolerance for loss of access,
the error and allow the user to fix it. Some types of the more money and more elaborate the design of the
errors, such as alteration of a deposit to a bank ac- backup procedures should be. The severity of lost
count or alteration of a payment to a customer, access time varies, depending on the availability of
should also have some special printout or supervi- human experts to do work manually and the criti-
sory approval required as part of the application cality of the application. In general, the longer a
design to assist the user in detecting problems and work area has been automated, the less likely manual
in monitoring the correction process. DBMS soft- procedures can be used to replace an application, and
ware frequently allows transaction logging, logging the less time the application can be lost without
of before and after images of database changes and
assisted recovery from the logs for detected errors.
DBMS failure should be detected by the DBMS
and the bad transaction should automatically be
TABLE 10-4 Backup Design Guidelines
'rolled-back' to the original state. If a DBMS does
for Different Periods of Loss
not have a 'commit/roll-back' capability, it should
not be used for any critical applications or applica- Type of
tions that provide legal, fiduciary, or financial pro- Length of Loss Backup
cessing compliance. Commit management software
monitors the execution of all database actions relat- 1 Week or longer Weekly Full with
ing to a user transaction. If the database actions are Off-site storage
all successful, the transaction is 'committed' and 1 Day Above + Daily
considered complete. If the database actions are not Incremental/Full
all successful, the commit manager issues a roll-
back request which restores the database to its previ- 1 Hour Above + 1 or more
types of DBMS
ous state before the transaction began, and the
Logging
transaction is aborted. Without commit and roll-back
capabilities, partial transactions might compromise 15 Minutes or less Above + All DBMS
database integrity. Logging Capabilities:
Other data and software backup procedures are Transaction, Pre-Update
and Post-Update Logs
either full or incremental. A full backup is a copy of
Information Engineering DeSign 415
severe consequences. The less important an appli- appropriate control points. Controls are specified by
cation is to the continuance of an organization as an designers in the form of requirements for program
on-going business, the less critical the application is validation. For instance, controls for the validity of
for recovery design. An application for ordering expense checks might be as follows:
food for a cafeteria, for instance, is not critical if the
company is an oil company but is critical if the com- 1. Only valid, preauthorized checks can be
pany is a restaurant. written.
To define backup requirements, then, you first 2. Check amounts may not exceed authorized
define the criticality of the application to the organi- dollar amounts.
zation, and the length of time before lost access 3. Checks may not exceed the expense report
becomes intolerable. Based on those estimates, a total amount.
backup strategy is selected. If the delay until recov-
ery can be a week or more, only weekly full back- Application audit controls address the complete-
ups with off-site storage are required. If the delay ness of data, accuracy of data, authorization of data,
until recovery can be one day or less, then, in addi- and adequacy of the audit trail. Detection of pro-
tion to weekly backups, daily backups should be cessing errors is either through edit and validation
done. If the recovery delay can be only an hour, checks in programs, or through processing of redun-
the two previous methods should be supplemented dant data. Examples of controlled redundancy of
with one or more types of DBMS logging scheme. data include double entry bookkeeping, cross footing
Finally, if a I5-minute recovery delay is desired, all totals and numbers, dual departmental custody of
types of DBMS logging, plus daily and weekly back- replicated critical data, transaction numbering, and
ups should be done. primary key verification. Edit and validation rules
Last, we consider audit controls which provide a are designed to identify all logical inconsistencies
record of access and modification, and prove trans- as early in the process as possible, before they are
action processing for legal, fiduciary responsibility, entered into the database.
or stakeholder responsibility reasons. Audit controls
allow detection and correction of error conditions for
data or processing. As new technologies, greater ABC Video Example Security, Backup/
dependence on ITs, and interrelated systems that are
Recovery, and Audit Plans
vulnerable to telecommunications attacks all in-
crease, business emphasis on controls also increases. To design ABC's security, we first review the physi-
In manual systems of work, control points are eas- cal plant and recommend changes to the planned
ily identified; procedures are observable, errors can computer site to provide security. The six threats are
be reconstructed, and controls applied by humans. In considered, but the byword from Vic in discussing
automated applications, the application is the solu- the possibility of changes is "be reasonable." So, if
tion, nothing is directly observable, and complexity there is a 'reasonable' chance that a problem will
of functions makes identification of control points occur, we will recommend a reasonable, and low
increasingly complex. cost, solution to the problem.
A control point is a location (logical or physi- Moving from most to least serious, we consider
cal) in a procedure (automated or manual) where the the six types of threats to application security: loca-
possibility of errors exists. Errors might be lack of tion failure, hardware failure, DBMS failure, soft-
proper authorization, misrecording of a transaction, ware failure, hacker change, and user error. For each
illegal access to assets, or differences between actual threat, we consider the potential of occurrence for
and recorded data. Control points are identified dur- ABC, then devise a plan to minimize the potential
ing design because the entire application's require- damage. All threats and responses are summarized in
ments should be known in order to define the most Figure 10-21.
416 CHAPTER 10 Data-Oriented Design
Ra-Dan
>
80'
Fire I
Exit
II Drama Horror Files
(')
~~
0-
m
m-
e---
OJ
~
,,~~ ~ ~:::r
000
Sci Fi Sci Fi
Cheap's
Drugs Music Comedy
0
0::
Action <ii"
rn
I Check-out Desk
Current Releases
~ WindowWall
Front Door
First, we review the physical plant and relate it The northeast corner of the area (abutting Ra-Dan's)
to location and hardware failures. ABC Video is contains a 12' x 16' office which contains two desks,
located in suburban Atlanta, Georgia, 300 miles one supply closet, and a bathroom. The office has
from the ocean and 25 miles from the nearest large no windows and can be locked, although it is fre-
lake. The company is located in a mall, the Dun- quently empty and unlocked. The supply closet has
woody Village, a clustering of small shops and double doors which do not currently have a lock.
offices in open-square buildings containing a plaza The clerk's checkout counter is near the customer
in the middle of the square. The company occupies doors on the south side of the building in the western
3200 square feet of 80' x 40' space in the southeast corner. The counter is an 'L' shape with the entry on
corner of Building A. The adjoining spaces are oc- the short side. A fire door, equipped with an alarm
cupied by Cheap's Drugs and Ra-Dan Hair Salon. bar, is located in the northwest corner of the area and
A schematic of the space is shown in Figure 10-20. opens on a short alley behind the building.
Information Engineering Design 417
Location failure usually results from violent added or the toilet could also be rebuilt in the new
weather, terrorist attacks, or government takeover. location with whatever precautions are needed to
The chance of violent weather is the only potential preclude the spring overruns.
major problem in the area. Tornadoes occur in the There is another problem with the planned server
area regularly. The expectation is that there is a 20% location. The planned location-the supply closet-
chance of tornado damage some time in the next has no ventilation. If the closet doors are open, ven-
10 years (see Figure 10-21). Tornadoes also imply tilation for the office is sufficient for the planned
strong thunderstorms which are common to the area. equipment, but, ideally, the server closet doors
The chance of damage from a storm is about 30% should be locked. If the doors were locked, the prob-
within five years to the windows, and about 65% ability of server failure due to lack of ventilation is
within two years for lightning to cause electrical 50% in two years. The solutions possible are to build
spikes. a new area for the server equipment, or to add ven-
The response to location threats is to provide off- tilation to the planned area to reduce this probabil-
site backup of all information, with the site far ity to near zero. Both solutions should be presented
enough away that it is unlikely to be affected by the to Vic for his decision.
same storm (see Figure 10-21). Vic should investi- Less serious problems stem from the building
gate the possibility of closing in the window wall in location. Glass windows that run along 60' of exter-
the southeast side of the building to minimize storm nal front wall and the drop ceiling are accessible
damage. He can also install lightning rods on the from neighboring companies. Theft and break-ins
roof of the building to dissipate lightning when are somewhat common in the area, but the probabil-
it hits. ity of a break-in is 50% in 10 years. Most burglars
The next category of problems relate to the hard- are looking for money, but some might maliciously
ware selected for the rental/return application. tamper with the computer equipment. Therefore, the
Vendor-cited reliability is 99 years mean time be- probability of computer damage during a break-in
tween failure (MTBF) for individual components. is 60% according to police estimates.
When the components are considered as a whole, the The recommendations to minimize theft have to
probability of component failure is once in two years address the easy access to the company through win-
(see Figure 10-21). The current plan is to have an dows and ceiling. If the office remains in its current
extra PC in the office that could be moved to the location, a security system with movement sensors
front desk if needed. A hardware service contract in the ceiling and glass-breakage sensors on all win-
with a local company to provide response within dows should be added (whether or not the computer
24 hours is recommended. is installed). Long-term, Vic should investigate the
The planned server location is near the bathroom possibility of closing-in some or all windows to
in the northeast corner of the area. The toilet has a improve security of the company.
history of overflows during wet spring months. Be- Next, because of the location of the checkout
cause of the way the office was constructed, the desk at the front of the building, the ability of clerks
water is confined to a small area but almost always to monitor approaches to the office is low due to lim-
runs into the supply closet and has been as high as ited visibility. Further, theft of tapes is possible
one foot. The probability of component failure to file because clerks cannot see down all aisles without
server and/or disks from water due to toilet over- moving away from the desk area. For application
flow is 50% in two years. The answer to this problem security, we are concerned with office access; but, as
is simple, but expensive: Build a new area, specifi- professionals, we can make recommendations that
cally for the computer, away from the toilet area to will improve Vic's ability to reduce general theft as
reduce this probability to near zero. Ideally, if the well. An easy, but somewhat expensive solution is to
windows are closed in, the office could be moved to move the checkout desk to the center of the floor and
the front of the building and the old office removed. assign surveillance duties to clerks. Even if the desk
A new enclosure for the toilet facilities could be is not moved, mirrors installed in the corners of the
418 CHAPTER 10 Data-Oriented Design
Finding Recommendation
Location failure-Probability of tornadoes 10% in Select off-site storage facility no closer than 200 miles.
10 years. Probability of strong storms causing damage
Investigate closing in the front windows, at least the contigu-
to windows is about 15% within two years. Probability
ous 40 feet of windows on the southeast corner.
of lightning causing electrical spikes is 15% within
two years. Install lightning rods on the roof.
Hardware failure-Vendor-cited reliability is 99 years Move the extra PC in the office to the front desk if needed. A
MTBF for each component. The probability of com- hardware service contract with a local company to provide
ponent failure is once in two years for some network response within 24 hours is recommended.
component.
Hardware failure from external reasons-Planned Build a new area to reduce this probability to near zero.
server location is near bathroom with history of
periodic overflows. Probability of component failure to
file server and/or disk is 50% in two years.
Hardware failure from external reasons-Planned Build a new area or add ventilation to the planned area to
server location is a closet in the office area without reduce this probability to near zero.
any ventilation. Probability of server failure is 50% in
two years.
Hardware failure from external reasons-Current If the office remains in its current location, add security
location has glass windows along 60' of external system with movement sensors in the ceiling and glass-
front wall and a drop ceiling accessible from breakage sensors on all windows.
neighboring companies. Probability of break-in is
Long-term, investigate the possibility of closing-in some or
30% in 10 years; probability of computer damage
all windows, moving the office to the front of the building
during a break-in is 60%.
(away from plumbing).
Physical location vulnerabilities-Ability of clerks to
Move the clerks' desk to the center of the floor and assign
monitor approaches to the office is low because of
surveillance duties to clerks.
desk location and limited visibility.
Install mirrors in corners of room to allow monitoring of
customers' actions.
DBMS failure-Vendor-stated reliability is two years Do not install latest releases until thoroughly tested using
MTBF. This is one of the best on the market, but each regression test package.
new release is unstable for at least six months.
Negotiate with vendor for data access software in event of
DBMS failure. Include this software access in the vendor
contract.
DBMS failure-Other reasons (e.g., electrical spike). Install a surge protector on the entire ABC electrical
Probability is 100% that electrical surges will occur, system to accommodate spikes (cost is about $100).
since they are common in the summer months.
Install surge protectors on each individual outlet used by
Probability of brownouts with reduced power are computer equipment to further protect the equipment since
30% in two years. whole system protectors do not guarantee integrated chip
safety in any devices.
Finding Recommendation
Software failure-Application failure due to software The application is designed for 15-minute recovery of all
defects should be less than once in 15 years after the data and programs. Loss of transactions in process will al-
first three months. During the first three months of ways occur with any failure; they will have to be reentered.
operation, the probability of application failure is about
Program problems will be fixed within one business day.
75%; no more than one is expected.
Any lost transactions will be reentered free of charge by
Software Engineers Unlimited.
Hacker change-Outside user access to the system Install security precautions listed above: security mirrors,
should be zero since no telecommunications capabilities move desk, assign clerks monitoring responsibility.
are planned. However, the untended server and occa-
Always lock office door; always lock file server door.
sional lack of clerks at the desk area may provide a local
hacker enough time to access and modify the system.
User error-The use of computer novices as clerks Restrict data and process access to those required to per-
guarantees user error. Probability is 100% within one form each job.
week of system operation.
Design application to withstand any casual error-hitting
any key on keyboard, scanning any bar code type, etc. A
report of such errors can be created and printed on demand
by Vic to allow retraining (or other action) for repeated
errors by one user.
room would allow clerks to monitor customers' simple solution to this problem is that unless a fea-
actions. Both recommendations are made with the ture of a new release is needed, no change from the
understanding that the mirrors should be installed current stable version should be made. In addition,
whether or not the desk is moved. no software, whether vendor package or customer
After physical issues are evaluated, we next look designed, should be allowed into production use
at software security and reliability. Vendor-stated until it is thoroughly tested using the application
reliability for the planned DBMS is two years regression test package that will accompany the
MTBF. This SQL software is one of the best on the system.
market, but each new release is unstable for at least A secondary problem with DBMS errors is that, if
six months, and those instability figures are not in the DBMS fails, there is no other way to access the
the MTBF estimates. The company routinely dis- data. Part of the contract negotiation should include
claims any responsibility for new release errors and discussion of such software for the vendor to provide
loss of data or processing to using companies. The in event of DBMS failure. Other companies have
DBMS does stabilize and is usually reliable after a successfully received such commitments from this
six-month trial period for each new release. The vendor, although it is not volunteered. Such data
420 CHAPTER lODato-Oriented Design
access software should be included in the vendor fice and file server doors should be implemented (see
contract. Figure 10-21).
Additional problems that might cause DBMS Finally, the use of computer novices as clerks
failure are electrical surges and brownouts due to guarantees user errors. The probability of user
uneven service in the area. Surges generally occur errors is 100% within one week of system opera-
during the summer months when equipment comes tion. To prevent any application or DBMS damage
on-line to service air-conditioning in the area. The from user errors (inadvertent or otherwise), the first
probability of surges is 100% based on local electri- line of defense is to restrict what users may do and
cal company history. The probability of brownouts the data they may access as a way to prevent errors.
with reduced power is 30% within two years, also Each job should be defined and a security access
using electrical history as the basis for the estimate. scheme developed to allow access to all processes
Problems from both causes can be minimized by a and data required for the job, and nothing more.
surge protector on the entire ABC electrical system Second, the application should withstand any
which shuts down power if a particularly large surge casual error-hitting any key on keyboard, scanning
is experienced. In addition, one surge protector for any bar code type, and so on. If required, a report of
each outlet should be installed to further protect the such errors can be created and printed on demand
equipment since whole system protectors do not by Vic to allow retraining (or other action) for
guarantee integrated chip safety. Finally, a limited, repeated errors by one user. Application design also
inexpensive, uninterrupted power supply (UPS) includes validation of all fields such that only valid
should be installed to provide emergency power in data can be in the database. Such checks are not pos-
the event of electrical failure and for limited use dur- sible for alphanumeric data, however, so on-demand
ing brownouts to supplement reduced electricity reports of new customer and video entries will
from the local provider. allow Vic to monitor the typing skills of employees.
We consider application software failures next. Application training will use computer-based
Failure due to software defects should be less than training (CBT) in entering application data. The
once in 15 years after the first three months of oper- CBT will use simulated transactions and should min-
ational use. During the first three months of opera- imize the user errors if taken seriously by clerks. \
tion, the probability of application failure is about New-hire orientation should include discussion of
75%; no more than one is expected. The application the importance of accuracy of work, especially with
is designed for IS-minute recovery of all data and the computer. Further, new hires should be assigned
programs. Loss of partial transactions will always a more senior 'mentor' for learning the application
occur with any failure; they will have to be reen- after training.
tered. Program problems will be fixed within one After disaster recovery is planned, application
business day. Any lost transactions will be reentered security must be developed. From the recovery plan,
free of charge by Software Engineers Unlimited we know that each job should be evaluated to deter-
(Mary's company). mine the data and processing requirements of the
Outside user access to the system should be position. ABC jobs evaluated include clerks, owner,
zero since no telecommunications capabilities are and accountant. The owner should be allowed to do
planned. However, the untended server and occa- any functions on the application and system that he
sionallack of clerks at the desk area may provide a desires. However, many owners do not want to
local hacker enough time to access and modify the become the chief user of the computer. When asked,
system. If the physical security precautions recom- Vic's reaction is, "Does this mean I can never take a
mended above are provided, such hacker break-ins vacation? Do I have to be here in the morning and
would be nearly impossible. Therefore, at a mini- at night? If so, define a new position that can do most
mum the precautions for security mirrors, assigning of my functions, just not delete data!" So the posi-
clerks monitoring responsibility, and locking the of- tion of chief clerk is also considered.
Information Engineering Design 421
Owner
I
Clerk and accountant each have
different subsets of chief clerk Clerk Accountant
rights.
The owner should be the lead person and still be 15 minutes, if an outage were to occur during a peak
allowed to perform all functions, access all data, and time, as many as four transactions could need to be
provide security password changes, and so on (see reentered and as many as 15-20 transactions would
Figure 10-22). The chief clerk, according to Vic's be queued for entry upon system return to produc-
wishes, has all of those functions except deleting tion. Ideally, the system should be functional during
information (see Table 10-5). If there were sensitive all business hours.
data in the system, more discussion of the chief The recovery requirements imply the most
clerk's duties and access rights might take place. The backup protection possible. From Table 10-4, a
clerks have access rights to rent and return videos, 15-minute recovery requirement means the use of
and to create and update customers and videos. weekly full backups with off-site storage, daily
Finally, the accountant has limited read-only access backups, and logging for transactions, preupdate
to several files. data items and postupdate data items. Therefore,
Backup and recovery are considered next. First these are the backup and recovery requirements.
we decide the maximum tolerable time loss for a
computer outage, then select the backup scheme that Requirements: Application and system availabil-
best fits the time loss maximum. The rental/return ity during all store open hours, with no more
application is critical to ABC's ability to conduct than 15 minutes of down-time from failures
business. Vic knows that when he moves all produc- of any type.
tion work to the computer that the clerks will quickly Backups: Transaction, preupdate, and post-
forget the manual way of conducting business. Also, update logs
we know that if the databases are not kept up to date, Transaction logs maintained one week until
the system is next to useless because the clerks won't weekly backups are verified. Pre- and
know whether to look at manual or automated files postupdate logs maintained for 72 hours.
for returns, fees, and so on. Therefore, the maximum Daily complete database backups with on-
outage should be less than 15 minutes with recov- site copy plus off-site storage at owner's
ery of all fully complete transactions. Even at home.
422 CHAPTER 10 Data-Oriented Design
Customer
Create X X X
Retrieve X X X X
Update X X X
Delete X
Video
Create X X X
Retrieve X X X X
Update X X X
Delete X X
Open Rentals
Create X X X
Retrieve X X X X
Update X X X
Delete X
Video History
Create
Retrieve X X X X
Update X
Customer History
Create
Retrieve X X X X
Update X X
Startup X X
Shutdown X X
End Of Day
Create X X
Retrieve X X X
Delete X X
Initiate End of
Month Process X X
Paper copy of transactions maintained for one If ABC's application processed millions of trans-
calendar year in accountant's office. actions each day, we would do further analysis of
Weekly complete disk backups with on-site copy the cost of backup and recovery, but here that is
plus off-site storage at owner's home and a not necessary.
third copy at Finally, we need to decide about audit controls
as summarized here:
Disaster Prevention Storage
321 Maple Ave. Data accuracy and completeness-All edit
Somewhere, OK checks possible will be used as data are
(618) 123-1234 entered to prevent errors from entering the
Information Engineering Design 423
system. Sight verification by clerks and cus- Nonmonetary transactions (e.g., return
tomers will be used to verify alphanumeric of on-time tapes), have no paper audit trail.
information. If a question about a tape return arises,
Rental transaction accuracy can be veri- the database can be checked to verify the
fied by customers' signing for all monetary information.
transactions. In case of discrepancy, transac-
tion logs and historical paper copies of trans- All edit checks possible should be used as data are
actions can be consulted. entered to prevent errors from entering the system.
Data authorization-Security controls will pro- To ensure complete editing, we review the data dic-
vide sufficient authorization for data process- tionary to check that all nonalphanumeric fields have
ing. Only the owner is authorized to perform edit and validation criteria.
any delete functions on customer, video, and On names, addresses, and other alphanumeric
open rental data. No delete functions for his- fields, little verification can be performed automati-
tory records are provided. cally. What cannot be done automatically should be
User ID, date, and time of user to last done manually. Procedures for operators should be
change data will be maintained in Customer, developed to document clerical 'sight verification'
Video, and Open Rental databases. and customer verification standards. An example of
Audit trail-A paper trail of receipts should be such a procedure that would be part of the user man-
maintained by the accountant for each ual is shown as Figure 10-23. Sight verification
calendar year. This is a sufficient trail means that the person entering information into the
since ABC is a cash business without any computer reads the monitor to verify the accuracy
accruals. of the information he or she entered. The user, then,
Customer Maintenance
When customers are being added to the system, the clerk should read back all information as shown on the screen to
verify its accuracy, as the computer cannot verify mixed alphabetic and numeric information.
Video Maintenance
When videos are being added to the system, the clerk should compare all information shown on the screen with the origi-
nal printed information to verify its accuracy, as the computer cannot verify mixed alphabetic and numeric information.
Rent/Return Processing
Users should be encouraged to check the information on the printed rental before they sign it to verify that it is correct.
is responsible for data integrity of items that cannot Nonmonetary transactions (e.g., return of on-time
be computer verified. tapes), have no paper audit trail. If a question about a
Rental transaction accuracy will be verified by tape return arises, the user ID, date, and time of the
customers' signing for all monetary transactions. In return will be on the database and can be checked to
case of discrepancy, transaction logs and historical verify the information.
paper copies of transactions can be consulted. If
many discrepancies persist (more than one per
week), a special history file of transactions can be
Develop Action Diagram
added to the application to speed the transaction Guidelines for Developing an Action
look-up process. Diagram
Security controls can be designed to provide suf-
ficient authorization for data processing. The secu- An action diagram is a diagram that shows proce-
rity scheme should be developed to serve two goals: dural structure and processing details for an appli-
to provide data access and to provide function access cation. It is built from the process hierarchy and
to those who need it. To require several layers of process data flow diagram developed during IE
security checking for a simple application does not analysis (see Figure 9-45 for ABC's PDFD). The
make sense and wastes clerical time. So, once again diagram uses only structured programming con-
the KISS (Keep It Simple, Stupid) method of one structs to convert the PDFD into a hierarchy of
security access scheme is best. User ID, date, and processes that can be divided into programs and
time of user to last change data will be maintained modules. First we discuss the components of the
in Customer, Video, and Open Rental databases. diagram, then we discuss how to build an action
These attributes are added to affected database diagram from the process hierarchy and PDFD.
relations. Action diagrams use different bracket structures
To minimize the extent to which damage can be to depict the code elements in an application. Basic
done to data, only ABC's owner should be autho- structured programming tenets-iteration, selection,
rized to perform any delete functions on customer, and sequence-are all accommodated with several
video, and open rental data. No automated delete variations provided. As Figure 10-24 shows, a
functions for history records are provided without sequence bracket is a simple bracket. It is option-
circumventing the application completely. Changes ally identified with a process name and ended with
to files will always be somewhat traceable because the term ENDPROC to represent a program module
the historical record will reflect activity. If unautho- consisting of a sequence of instructions.
rized file changes are thought to be a problem, Vic When a module is designed and detailed in
can always request a browsing capability for any of another document or diagram, a rounded rectangle
the transaction logs to check on problems. containing the module name is drawn between the
A manual audit trail should be used for ABC brackets (see Figure 10-25). When the module is not
to conserve computer resources. All monetary trans- yet defined in detail, a rounded rectangle with ques-
actions can be reconstructed through a paper trail tion marks down the right side is shown. Reusable
of receipts maintained by the accountant. The receipt
form is a two-ply preprinted form on which all
.....-- PROC Process Name
monetary transactions are printed. For rentals,
The sequence of
customers sign the form as proof of rental responsi- instructions is entered
bility. Paper records should be maintained for one within the sequential
brackets.
calendar year in the accountant's office; this is suffi-
I . . . - - ENDPROC
cient since ABC is a cash business without any
accruals. If a tape audit trail were to be necessary
at some time in the future, it can be added to the sys- FIGURE 10-24 Simple Sequence Bracket
tem easily. Format
Information Engineering Design 425
~
Module Name
WHILE implies that the condition is checked before
Sequential the conditional statements are executed. Do while
instructions. processing may occur zero times. Conversely, DO
UNTIL implies that the condition is checked after
the lower statements are executed. Do until pro-
~bedded,
lJ:: defined
module name.
cesses occur at least once.
Miscellaneous items include goto, exit, and con-
currency identification. A goto is shown by an arrow
Module Name leaving one level and pointing to the line for the des-
tination level with a goto statement and destination
at the right of the arrow (Figure 28a).
An exit is shown as an arrow leaving one level
Module Name
and pointing to the line for the destination level with
Q Embedded, undefined
module name.
the word exit at the right of the arrow (Figure 28b).
Unless an exit destination is named with the exit,
exit always means that the calling module is the exit
destination. For example, if Rent/Return calls Cus-
_ _ Module Name tomerAdd, the exit from CustomerAdd returns to
I~eused
Rent/Return. Further, if CustomerMaint calls Cus-
Module tomerAdd, the exit from CustomerAdd returns to
~ Name CustomerMaint. That is, the calling module, regard-
less of what it is, is the return module.
Processes can be sequential or concurrent. Con-
Adapted from Martin (1990), p. 543.
current processes execute at the same time. There
are two types of concurrent processes: independent
FIGURE 10-25 Module Designation Fonnat and dependent. Independent concurrent processes
are those which execute at the same time but do not
synchronize their process completion. For example,
when Process Payment and Compute Change is
modules are drawn with a vertical bar to repre- complete in ABC's application, printing and file
sent reuse. updates of several types could all be concurrent. If
Selection of modules from the PDFD is shown by there is no checking on the success of their comple-
a selection bracket (also called a condition tions with subsequent action for any failures, these
bracket) which begins with an IF condition and processes are independent. Independent concurrency
ends with the termENDIF (see Figure 10-26a). If the is shown on the diagram by an arc which connects
conditional statement has multiple conditions, two the module brackets (Figure 10-28). Dependent
other options are allowed. The condition can be concurrent processes are those which must be syn-
stated as an IF statement with one or more ELSE chronized to coordinate further application actions.
conditions (see Figure 10-26b), or a condition can be Dependent concurrency is shown on the diagram by
stated as a mutually exclusive selection list as in Fig- an asterisk (or some other special character) on the
ure 10-26c; this selection list is eventually translated arc connecting the modules (Figure 10-28d). Depen-
into an IF statement. dent concurrent processes require the development
Repetition is shown with a double bracketed fig- of a synchronization module, if not already in the
ure. The repetition bracket name begins with either application, to ensure complete, accurate processing.
DO or DO WHILE + condition (see Figure 10-27). Now that you know the bracket symbols used to
The bracket ends with either an UNTIL + condition define action diagrams, we move to discuss the steps
426 CHAPTER lODato-Oriented Design
a. Simple IF Condition
~
IF condition
action
sequence of
instructions
ENDIF
b. Multiple IF Conditions
~
IF condition
else IF condition
... ENDIF
; - - IFA=1
~
.. IF condition 1
condition 2
... condition 3
condition n ~ A=3
... ENDIF
~ A=4
t - - A=5
--=- ENDIF
to developing one. The steps to define an action dia- the activity level, the alternative processes are mu-
gram are to translate processes into levels of action tually exclusive. When the diagram starts at the
using structured constructs, design modules, perfonn process level (Figure 10-29), any construct might
reusability analysis, decide module timing, add data apply. The example shows a mutually exclusive
to the diagram, and optionally, add screens to the selection from among the three alternatives.
diagram. Now we shift to the process data flow diagram
The first step is to translate processes into levels (Figure 10-30) to add process details to the action
of action. The first-level diagram is developed from diagram. Remember that the processes on the PDFD
the process hierarchy diagram to identify the major must match exactly the processes on the hierarchic
activities being perfonned by the application. The decomposition diagram. We use the PDFD to trans-
activities themselves are added to the diagram as late the structural relationships between the pro-
they are written on the hierarchy diagram. The struc- cesses correctly. The structural relationships are
tured constructs should identify sequence and any on the PDFD and not on the decomposition; they
selection or conditional processing relating to the refer to the sequential, conditional, and repetitive
activities. Most often, when the diagram is begun at relationships between processes.
Information Engineering Design 427
[
condition a. GOTO bracket format
ENDDO
[;xit
In developing the second-level action diagram,
we first add the processes, in sequence, from the
PDFD. Then the brackets are drawn to reflect the to Error Routine
sequential, conditional, and repetitive structural rela-
tionships. In the example (Figure 10-31), the main
processes are Identify Item and Vendor, Sort by Ven- Exit to CALling Module
dor and Item, Get Price, Create Order, and Mail
~H
Order. Between these processes, there are two repet-
itive blocks: one based on New Releases, and the
other based on Vendors (see Figure 10-32). We iden-
tify the repetitive blocks by looking at the circular
loops and the conditions for repeating the pro-
cess(es}. Notice that the Sort is not included in c. Concurrent processes bracket format
either loop.
Next, evaluate each process grouping. Identify
Item is alone within its loop. Sort is also alone. The
last three processes are together and are analyzed.
The processes are sequential but according to the
PDFD, they are not all processed in sequence. If the
vendor has not changed from the previous item, we
Get Price and Create Order. When the Vendor
changes, we File and Mail the order. These state-
ments from the PDFD translate into the IF condi-
tional statement in the action diagram as shown in FIGURE 10-28 Miscellaneous Bracket
Figure 10-33. Design Formats
428 CHAPTER 10 Data-Oriented Design
Process Hierarchy
Get Price
Create Order
Mail Order
Purchasing Application
Analyze Business
how a correct PDFD may need elaboration to trans- Within the control flow we have stand-alone pro-
late into program specifications. cesses that conveniently define modules. Figure
U sing the action diagram, modules are defined. 10-36 shows the module names, each enclosed in its
There are few guidelines on this aspect of Informa- own rounded rectangular box to indicate that there
tion Engineering. In general, you should try to define are more details for each module. The submodules
modules that perform one well-defined process and are each further diagrammed or, if fully documented
nothing else. The guidelines presented in Chapter 8 in a data dictionary, refer to the dictionary entry in
for module definition can be applied here. For the the module box.
example in Figure 10-35, the IF ... ELSE IF ... For Create Purchase Order processing, then, we
ELSE processing is the module's control flow. have a main module and submodules for Create Ven-
Information Engineering Design 429
dar Info, Get Price, Create Order Item, File Order, routine might be used to determine lateness. If not
and Mail Order. Notice that Create Vendor Info is modified, the name of the routine might be Date-
used twice. Compare. If customized, the name of the routine
Next, the action diagram modules are compared might be RentDateCompare or LateReturnDate-
to templates already in use to determine whether Compare. In the example in Figure 10-36, Sort uses
reuse of existing modules is possible. As reusable a utility program, a special class of reusable mod-
modules are identified, the process details are ule. The Sort statement is removed from the diagram
removed from the action diagram and replaced with and replaced with a call statement (Figure 10-37).
a call statement. The called module name should No other modules in this example are general
indicate whether the reused module is customized enough for reuse.
for this application or not. The conventional way to When reusability analysis is complete, the action
identify customized reused modules is by a prefix diagram should show the mainline logic of the
or suffix on the name. For example~ a date compare application with modules for the processes and
Vendor
More = No
Vendor = Last-Vendor
Vendor *- Last-Vendor
Mail Order
Open Orders
Mail Order
Purchasing
File by Vendor
Analyze Business
- Purchasing
ABC Video, Inc.
123 Dunwoody Village
Dunwoody, GA 30392
- ( Analyze Business
Purchase Order
Get Price
Create Order
File by Vendor
Next, the entities and data elements used by the
processes are added to the diagram(s). By the time
Set Last-Vendor = Vendor this action is complete, every attribute of every
'-ENDIF relation must, at least, have been identified for cre-
ation and deletion (Figure 10-37). Any attributes not
t ENDDO
included in the processing should be reconsidered
for elimination from the application. These process
H Monitor Purchase Order
definitions should include attributes added to the
relations as a result of design activities.
~ END Purchasing Procedure If the action diagrams are developed manually,
screen identifiers can be added to the diagram with
entities and attributes linked to screens (see Figure
FIGURE 10-33 Conditional Statements on 10-38). The diagram'then links data sources and des-
Second-Level Action Diagram tinations to both processes and screens. This type of
diagram does manually what linkages in a CASE
tool automate.
Order at the same time, IF success of the file opera-
tion is not an issue. Create Vendor cannot be done
ABC Video Example Action Diagram
until the last order is fully processed. To decide on
concurrency, we need to know the details of error The steps to developing the action diagram are to de-
handling. In this case, we find that errors are checked velop the levels of action using structured constructs,
and handled in the module in which they can occur. perform reusability analysis, design modules, decide
If a fatal error occurs, the application does no other module timing, add data to the diagram, and option-
processing on this order. This process definition ally, add screens to the diagram (refer to p. 434).
implies sequence to the processes. If the processes Only the first-level action diagram includes all of the
were concurrent and a fatal error occurred, some processes. The lower-level diagrams consider Rent/
undesired processing would occur. Therefore, in this Return processing and Video Maintenance only. The
example, concurrency is not an option. other processes are left as an exercise.
432 CHAPTER 10 Data-Oriented Design
EndDo
Mail Order
( Sort by Vendor, Item)
File by Vendor
Do While there are Items to be processed
Set Last-Vendor = Vendor
IF First-Record
ENDIF
Set Last- Vendor = Vendor
ENDDO
(create Vendor Info)
Monitor Purchase Order
ELSE IF Vendor = Last- Vendor
( Create Order)
New Releases
Create Purchase Order ----------------------~~-VendorName
Video Name
Do Until all items are identified
( Mail Order )
C~ ___ F_i_le_o_rd_e_r______~
Purchase Order
Set Last-Vendor = Vendor
ENDIF
ENDDO
END Create Purchase Order Procedure
Then the conditional statement for determining the requests, a receipt is printed (Figure 10-48). The
type of request is added (Figure 10-43). The two consolidated action diagram is shown in Figure
options are If Customer and If Video ID, and each 10-49.
has its own processes. Next, evaluate the diagram to identify program
Next, Open Rentals are read and displayed until modules. As in the example above, we have natu-
all Open Rentals for this customer are in memory rally identified modules as part of process definition.
(Figure 10-44). The Open Rental loop is a simple Do For instance, Get Valid Customer is a small, self-
While process. contained module that does one thing only. The
Then video returns are processed using a repeti- module uses a Customer ID to access the Customer
tion with a conditional structure (Figure 10-45). Late relation. If the entry is present, the credit is checked.
fees are checked in a repetitive loop for all Open The name, address, and credit status are returned.
Rentals (Figure 10-46). New rental Video IDs are The remaining modules, that we originally defined
entered for all new rentals (Figure 10-47). Pro- as business processes doing one thing, should each
cess Payment and Make Change is a stand-alone be reviewed to ensure that they are, in fact, single
module. Then, for all open and new rentals, the Open purpose. This is left as a class activity.
Rentals file is updated; for all oftoday's returns, his- In addition, we can now resolve the issue held
tory is updated; and if payment is made or a user over from analysis about whether to keep separate or
434 CHAPTER lODato-Oriented Design
New Releases
Vendor Name
Video Name
Do Until all items are identified
EndDo Vendor ID
Item ID -----+t~
Scrldltem
( Sort by Vendor, Item)
( Get p r i c e ) Gendo r ID
( Create Order ~ Vendor Name
Vendor Address
ELSE Order Terms
( Mail Order )
(~___F_i_le_o_~_e_r____~~
Purchase Order
Set Last-Vendor = Vendor
ENDIF
ENDDO
END Create Purchase Order Procedure
consolidate Get Open Rentals, Add Return Date and prompted for new videos or for returns. If we prompt
Check for Late Fees. Individually, each of these for returns every time, many wasted entries to deny
processes is singular (i.e., does one thing). If they are return processing will be made. If we prompt for
consolidated, they would remain singular but be either new or return Video IDs, we need a method
placed within the same repetition loop. The issue of knowing which is entered. Assuming we figure
here, then, is which method is easier to program and that out, we then get all returns and enter today's
implement in the intended language, and which pro- date for returned videos. Then all entries on the
vides the better user interface. We need to visual- screen are scanned to determine new late fees.
ize the user interface and memory processing for If the modules are consolidated, as each Open
each alternative. Rental is read, Late Fees are computed for tapes with
If the modules are kept separate, all Open Rentals return dates and no late fees (see Figure 10-50).
are read first and displayed. Then the clerk can be There are two options for this process. Either we
Information Engineering Design 435
Get Customer 10
Get Return 10
Process Payment
& Make Change
Update/Create History
Print Receipt
assume there are no more returns or the clerk must Data storage for a rental in memory is the same
respond to each Open Rental. With the first option, for both alternatives. We need a location for cus-
the clerk would have a selectable option for more tomer information, a table for open rentals, a table
return processing. When chosen, each return Video for new rentals, and locations for payment informa-
ID is entered and Late Fees are computed for that tion. We will have three iterations through the table
video. for Open Rentals in the separate alternative, and one,
Notice that both alternatives have problems. The or two if returns are present, iteration(s) in the con-
separation alternative has a problem in dealing with solidated alternative.
returns, and there will be a slight delay for Late Fee The alternatives are approximately the same in
processing. The consolidation option actually modi- implementation complexity, although three iterations
fies the processes from the PDFD somewhat for Late are more likely to contain bugs than one. The
Fee processing. human interface design is the same for both alterna-
436 CHAPTER 10 Data-Oriented Design
Until No
More Open
Rentals
Until No
More
Returns
Copy
among the users, it is unlikely that we would want still undefined, having been deferred in analy-
to increase contention by having the updates concur- sis. These are left as an exercise. The entities refer-
rent. If printing is the only concurrent process, it is enced in Rental/Return processing, Customer, Open
not worth the cost to provide concurrency. There- Rental, Video, Copy, Customer History, and EOD
fore, the processes will be made sequential for pro- are all shown in Figure 10-51. When an action dia-
duction operation. Figure 10-50 is not changed at gram arrow is from an entity to a process, it means
this point. that the entire tuple is accessed. The final action is to
The entities and data attributes are added to add screens to the action diagram, but they are not
the diagram next to show input and output process- yet defined, so this activity will be left as a future
ing. Two entities, EOD and Rental Archive, are exercise.
438 CHAPTER 10 Data-Oriented Design
r-- IF Returns
Do While More Open Rentals for this Customer DO Until no more returns
'-- ENDIF
[ Get Valid Customer
ENDIF
ENDDO
FIGURE 10-44 Open Rental Action Diagram FIGURE 10-45 Video Returns Action
Constructs Diagram Constructs
process hierarchy diagram is accepted as correctly met by restricting movement to functions as part of
mirroring the desired functions in the application, dialogue flow. The decisions about legal movement
proceed to the next step, defining the movements should be made by the users based on recommenda-
between menu items. tions by the designers; although frequently, dialogue
Traditionally, applications were constrained to flow decisions are made by the SEs. In general, if the
moving top-to-bottom-to-top with no deviation. users are functional experts, an open design that
Anyone who uses such an interface for long knows it allows free movement should be used. If users are
is irritating to wait for some menu that is unwanted novices or not computer literate, a more restrictive
and to enter choices purely for system design rea- design should be used to minimize the amount of
sons. The decisions should relate to application their potential confusion.
requirements as much as possible. For instance, Figure 10-56 shows types of arrows used to de-
security access control requirements can be partially pict movement between levels of a menu structure.
440 CHAPTER 10 Data-Oriented Design
FIGURE 10-46 Late Fee Action Diagram FIGURE 10-47 New Rentals Action Diagram
Constructs Constructs
In a small diagram, with less than ten screens, only the lower levels. This speeds processing through
single-headed arrows are used, and at least two menus and is preferred to the design shown in Figure
arrows are drawn for each entry: one entering and lO-57a which only allows a process to return to the
one leaving (Figure lO-56a). In a large diagram, with menu level from which it was activated. Restrictive
over ten screens, the triple-headed arrows can be dialogue flow (Figure lO-57a) is the type of design
added to the diagrams to depict call-return process- that is most likely to waste user time and become
ing (Figures lO-56b and lO-56c). annoying.
An example of restricted screen movement that Experts and frequent users usually are provided
might be designed for novice users is shown in Fig- more alternatives for interscreen movement because
ure lO-57a. In the diagram, all movement is to or they become proficient with the application. Unre-
from a menu. The diagram in Figure lO-57b shows stricted screen movement is desirable for these users.
that any level of upper menu might be reached from An example of unrestricted movement in screen
Information Engineering Design 441
~~
IF Returns
DO Until no, more returns
Get Return ID
Add Return Date
ENDDO
ENDIF
~
DO Until No more Open Rentals
- END Rent/Return Procedure Check for Late Fees
ENDDO
DO Until no more new video rentals
FIGURE 10-48 Payments, File Update and
Printing Action Diagram Constructs b Get Valid Video
ENDDO
Process Payment and Make Change
~ DO Until all Rentals in memory are processed
~
IF Return Date = Today's Date
design is shown in Figure lO-57c. In the example, Update History
ELSE IF Return-Date NOT = spaces
the user begins at the main menu and may move Update Open Rental
down the hierarchy in the same manner as a novice, ELSE IF Return-Date = spaces
Create Open Rental
or may move directly to a process screen, at the ENDIF
user's option. Unrestricted movement requires the t= ENDDO
design and implementation of a command language IF Payment> zero or Receipt Requested
or sophisticated menu selection structure that is con- Print Receipt
[
ENDIF
sistent with the basic novice menu selections, but
- END Rent/Return Procedure
adds the expert mode.
Unrestricted movement can be costly and error-
prone, which are the main reasons why it is not FIGURE 10-49 ABC Consolidated Action
prevalent. The added cost is due to increased access Diagram
442 CHAPTER 10 Data-Oriented Design
= DO Until NO More Open Rentals for this Customer ABC Video Example Menu Structure and
Dialogue Flow
Get Open Rentals (using ID, IDType)
IF First
Set ID, IDType to Customer The menu structure is derived from the process
[ Get Valid Customer hierarchy diagram in Figure 10-58 (reprint of Figure
ENDIF
9-26). First, the activities from the decomposition
IF Returned
Get Return ID
form the main menu options (see Figure 10-59). The
[ Add Return Date processes are used to develop submenu options.
ENDIF Then, the lowest level of processing completes the
Check for Late Fees
simple structure (Figure 10-60).
t:: ENDDO
Notice that all Rent/Return processing is ex-
DO Until no more new video rentals
pressed in the first menu option even though we have
C Get Valid Video
ENDDO
many subprocesses in the hierarchy. Rental/return
has many subprocesses performed as part of the
Process Payment and Make Change
~ DO Until all Rentals in memory are processed
hierarchy diagram. Unlike the other subprocesses,
rental/return does not have individual menus and
~
IF Return Date = Today's Date
Update History screens for each subprocess. Rather, rental/return
ELSE IF Return-Date NOT = spaces
Update Open Rental
requires a complex, multifunction screen with data
ELSE IF Return-Date = spaces from several relations and processing that varies by
Create Open Rental portion of the screen. The subprocesses for rental/
ENDIF
~ ENDDO return, then, describe actions on portions of the
IF Payment> zero or Receipt Requested screen. You cannot tell from the decomposition dia-
[ Print Receipt gram that rental/return has this requirement; rather,
ENDIF
you know from application requirements (and expe-
'---- END Rent/Return Procedure
rience) what type of screen(s) are needed. An incor-
rect rendering of the menu structure, such as the one
FIGURE 10-50 ABC Action Diagram with in Figure 10-61, would look weird and should make
Consolidated Open Rental Processing you feel uncomfortable about its correctness.
Second, notice that we do not indicate access
rights for any of the processing options on the dia-
Upon completion, the menu structure and dia- gram. The security access definition is superimposed
logue flow diagrams are given to the human inter- on the menu structure by the interface designers to
face designers to use in developing the screen double-check the design thinking of the process
interface (see Chapter 14). The dialogue flow dia- designers. If there is an inconsistency, the two
gram is also used by designers in developing pro- groups reconcile the problems.
gram specifications. Before we move on, note that Next we develop a dialogue flow diagram from
even though the menu structure is identified, the the menu structure diagram. The rows of the dia-
human interface may or may not be structured logue flow diagram correspond to the entries in the
exactly as defined in the menu structure diagram. menu structure (Figure 10-62). Rows are entered by
The human interface designers use the menu struc- level of the hierarchy by convention.
Information Engineering Design 443
Rent/Return Procedure
Get Request Customer
F Customer Phone ------------------~
ENOIF
SeIIO, 10Type 10 Video
GOTO Open Rentals
~redil
ust Phone
Name
Address
Stalus
~
IF Return D~te = Today's Date Number Rents
( Update History) Cust History Copy
ELSE IF Return-Date NO - es
(update Open Renta~copy
ELSE IF Return-Date = spaces Status
E~~~ate Open Rental~open
ENODO Rental
[~
END Rent/Return Procedure _ _ _ _ _ _ _ _ _ _ _ _----J
FIGURE 10-51 ABC Action Diagram with Data Entities and Attributes
We need to decide how much flexibility to give First we define the options. We could define flex-
users, keeping in mind the security access require- ible movement between those options only, and
ments and the users' computer and functional skills. restrict movement to other options through the hier-
Users are mostly novices with little computer expe- archy. Top-down hierarchic access is possible. We
rience. The average job tenure is less than six could allow hierarchic access combined with flexible
months. Data and function access for clerks are 'expert' mode movement throughout the hierarchy,
unrestricted for customer, video, and open rentals constrained by access restrictions.
add, change, and retrieve functions. Other options For each option, ask the following ques-
are more restricted in terms of which user class can tions. Does Vic have a preference? Which best
perform each function. fits the user profile? Which is the cleanest
444 CHAPTER lODato-Oriented Design
Ereonord~
Prospect Maintenance
Change Allocation
Delete Allocation
Inquire on Allocation
Change Customer
Delete Customer
Inquire on Customer
implementation, least likely to cause testing and user Most of Vic's employees work there for 1Y2 years
problems? and have little or no computer experience. There-
Vic, in this case, has no preference. Having never fore, screen processing that is least confusing to new
used computers, he has no background that allows users should be preferred. Usually, novices prefer
him to make a decision. He says, "Do whatever is hierarchic menus, providing the number of levels
best for us. I let that up to you. But I would like to do not become a source of confusion. Also, the sim-
see whatever you decide before it is final." This plest implementation is always preferred; that is, the
statement implies interface prototyping, which hierarchic menu option.
should always be done to allow users to see the Based on the answers to the questions, we should
screens while they are easily changed. design a restrictive, hierarchic flow. As Figure 10-63
Information Engineering Design 445
1. Customer Service
1. Order Fulfillment
2. Inventory Allocation
[
3. Customer Maintenance
Main 2. Sales
Menu
1. Order Fulfillment
[ 2.
3.
4.
Inventory Inquiry
Customer Maintenance
Prospect Maintenance
3. Marketing
1. Query Order
[ 2.
3.
4.
5.
Query Manufacturing Plans
Query Goods in Process
Query Inventory
Query Customers
Row = Screen
=
Column Movement
FIGURE 10-56
I d. Movement is down the arrow with further selection
at called screen, no necessary return.
Change Order _ _ _ _ _ _ _ __ _ __ _ _ _ _ _ _ _
Delete Order
Order Inquiry
:::::~e:i~ ~ f~ ~ = = ==== - - =_ =_ =_ =_ =_ =_ =_ =_ =_ =_ =
desired, you can usually negotiate with a hardware • define what is to be done
vendor to burn-in equipment and set it up for a small • define required equipment (e.g., cabling; con-
fee. Burn-in means to configure the hardware and nectors, etc.)
run it for some period of time, usually 24-72 hours. • get permits from the government and building
If there are faulty chips in the machine, 90% of the owners
time they fail during the bum-in period. • obtain zoning variances
At least two terminals or pes should be config- • identify and hire subcontractors
ured during installation of network cable for testing • supervise and guarantee the work.
the cable. For LAN installation, hire a consultant if
you've never done this before. The consultant helps As the user's representative, you can prepare the
you installation for the work to be done. Mark walls
Main Menu _
Customer Service ~~ =
Sales_ - - - i- - -,,-jr- -
- - - - - . -.--------------
Marketing -
OrderFulfillmenL
- -
;
r
~
- ~ ...., - - -
-, -, - - - - - - -
- - - -
-r-{-
1- . .,
- - - -
A
- -
----------- --- -:
Create Order - - - - -, - - - - r- - -
:::~:::::~-----:-·~tj- --~-,
, -_, -j-_, --r-----------"l
Order Inquiry _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Get Return ID
Update/Create History
Print Receipt
1. Rental/Return
FIGURE 10-60 ABC Menu Structure
1. Get Request
2. Get Valid Customer
3. Get Open Rental
the wiring works. Test all wires because they will be 4. Get Return ID
5. Add Return Date
wrong. Make sure all wiring is correct before the 6. Check Late Fees
electrical contractor is paid and leaves. 7. Get Valid Video
8. Process Payment and Make
The important issue is to make a choice of who Change
will do what work long before the work is needed, 9. Create Open Rental
10. Update Open Rental
and plan for what is to be done. Use a lawyer to write
11. Create/Update Customer History
all contracts using information provided by you, as 12. Update Item
the client's representative, and the client. 13. Print Receipt
Rent/Return Processing
Customer Maintenance
Create Customer
Change Customer
Delete Customer
Customer Inquiry
Video Maintenance
Create Video
Change Video
Delete Video
Video Inquiry
Other
End of Day
Startup
Shutdown
End of Month
Update Customer History
Update Video History
Query
, '"
Delete Video
Video Inquiry
~
Other
~~~;~~
Update Customer HistOry _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Update Video History
Query
111' 11'
r-+_-_t-±.L...----
Unrestricted access within a function (subject to access rights) except for
'other' processes. All 'other' processes are invoked from and returned to
the menu.
Novell ethernet with SOL-compatible DBMS soft- ware must be ordered, installed, and tested as part
ware, Carbon Copy, Word Perfect, Lotus, Norton of this plan.
Utilities, Fastback, and Symantek Virus software. First we determine what we need. A compari-
The goal is for all hardware to last at least five years son of currently installed items to the list of re-
if no other business functions are added to the sys- quired items shows the following items need to
tem. The configuration details are shown in Figures be planned:
10-64 and 10-65. There should be adequate capac-
ity to add accounting and order processing software Network cable and connecters
if needed. The current average daily rentals of 600 File Server
is expected to double in five years. The current num- Novell Software
ber of customers is 450, and is expected to be 1,000 Network Interface Cards (NICs, i.e., ethernet
in five years. boards)
To develop a plan, assume that the current date is Impact printers
January 1, and that the application installation is Bar Code Reader and Imprinter
scheduled for August 1. Design has just begun. The Carbon Copy (network version)
PCs and laser printer were installed five months ago Word Perfect (network version)
for availability during planning, feasibility, and . Norton Utilities (network version)
analysis. The currently installed software includes a Fastback
CASE tool on two machines, Word Perfect, Norton SOL DBMS (network version)
Utilities, Fastback, the SOL DBMS, and SAM Virus SAM (network version)
software. The remainder of the software and hard- Lotus (network version)
BarCode
Reader
0
PC - 0
BarCode m BarCode
Reader :T Reader
CD
0 3
~
OJ
c
en 0
o
PC-
File Server
Modem
Tape Backup
tory for official storage. When the merge takes place, planning, but you still can create levels of ERDs
the checked-out items are revalidated for consis- within the analysis tool. Similarly, you might not
tency with all mainframe repository definitions. Both have the analysis tool, so action diagrams can be cre-
products offer automatic SQL schema generation for ated directly within the design tool. IEF's strength
data. IEF offers automatic code generation for Cobol is that its rigorous adherence to Information Engi-
with imbedded SQL, and can interface to generators neering has led to substantive intelligence checking
for other languages. within the software. Both tools easily manage and
lEW and IEF differ in important ways. lEW is sort large matrices that result from several of the
more flexible in that it does not require the com- analyses.
pletion of any matrices or diagrams. However, to The weakness of the tools differs for each tool.
take advantage of the interdiagram evaluation lEW is primarily a PC-based product that can be
software that assesses completeness and syn- unstable when used for large projects. lEW also pro-
tactic consistency, all matrices and diagrams are vides DFDs, not PDFDs, and is not a pure data
required during a given phase. This means that methodology tool. A strength of lEW is that Knowl-
you might not have the diagrams or analyses from edgeware was an IBM partner in its repository defi-
Automated Tool Support for Data-Oriented Design 455
nition; as a result, lEW is compatible with AD-cy- CASE products, but the requirement to complete
cle software from IBM. every table, and so on does not make sense for all
IEF's strength is also its biggest weakness. IEF projects. TI has recognized the severity of this short-
requires completion of every table, matrix, and dia- coming and is increasing the flexibility of the prod-
gram at this time. 5 The level of intelligent checking uct without compromising its capabilities. The
that can be performed is higher than with most other mainframe version of IEF uses DB/2 for repository
management and can generate C, Cobol, DB/2, SQL,
5 1993 and other languages' codes.
REFERENCES
----,---
Date, C. J., An Introduction to Database Systems, Vol. 1,
5th edition. Reading, MA: Addison-Wesley, 1990.
EXERCISES _ _ _ _ _ _ __
1. Analyze Figures 10-8 to 10-11 and Table 10-1.
Develop and present a recommendation for cen-
Finkelstein, Clive, An Introduction to Information Engi- tralization or distribution. Define all recom-
neering: From Strategic Planning to Information
mended data and software locations. Explain
Systems. Reading, MA: Addison-Wesley, 1989.
your reasoning for each choice.
Knowledgeware, Inc., Information Engineering Work-
bench™IAnalysis Workstation, ESP Release 4.0. 2. Complete the action diagram for miscellaneous
Atlanta, GA: Knowledgeware, Inc., 1987. processing. Define the contents of the EOD File.
Loucopoulos, Pericles, and Roberto Zicari, Conceptual 3. Go visit a local small business such as a video
Modeling, Databases and CASE: An Integrated View store, restaurant, or supermarket. Assess their
of IS Development. NY: John Wiley & Sons, 1992. security and physical layout. Develop a list of
Martin, James, Information Engineering, Vol. 3: Design recommendations you would make if installing
and Construction. Englewood Cliffs, NJ: Prentice- a computer system for this company. Present
Hall, Inc., 1990. your findings to the class and the reasons for
Martin, James, and Carma McClure, Diagramming Tech- your recommendations.
niques for Analysts and Programmers. Englewood
Cliffs, NJ: Prentice-Hall, Inc., 1985.
Texas Instruments, A Guide to Information Engineering
Using the IEF. Dallas, TX: Texas Instruments, 1988.
STUDY QUESTIONS _ _ _ __
1. Define the following terms:
KEY TERMS action diagram repetition bracket
-----:-----:-:---:-:--:------
action diagram data distribution by code generator replication
application security location matrix control point security
audit control data security controlled transaction volume
backup data usage by location redundancy matrix
bum-in matrix
recovery vertical data partitioning
candidate for template denormalization
2. What are structured programming tenets and
code generator dependent concurrent
computer verification processes
why are they important in IE design?
concurrent processes dialogue flow diagram 3. What is the purpose of an action diagram?
condition bracket DRlDc>N -1 4. Discuss this assertion: "Normalization to the
control point DR <NID third normal form and higher is always desir-
controlled redundancy federation able for a physical database."
458 CHAPTER 10 Data-Oriented Design
5. Define the four types of database distribution. 19. Why, when developing an action diagram,
6. Describe how security, recovery, and audit con- must the processes sometimes change from
trols complement each other. what is on the PDFD?
7. There are six types of disasters considered in 20. Describe the matrices and formulae used to
recovery planning. What are they and what determine centralization or distribution of data.
data/application problems do they cause? In the absence of subjective reasoning, would
8. What are common methods of securing data the matrices and formulae lead to a rational
against unwanted access? decision? Why or why not?
9. What is the purpose of off-site storage? How 21. Why is an installation plan important? How
off-site should off-site storage be? can installation be used as a teaching exercise
10. What are the trade-offs in security and recov- for junior people?
ery design? Why not build a fortress to secure 22. What aspects of physical environment should
everything? be considered in an installation plan for new
11. Discuss the differences between full and incre- equipment?
mental backup. 23. Describe the diagram interrelationships for
12. What features of computers make audit con- data and processes from enterprise analysis to
trols difficult? analysis to design.
13. How is a menu structure diagram constructed?
What is its purpose? EXTRA-CREDIT QUESTION
14. How can dialogue flow diagrams be used to
1. Analyze the Advanced Office System (AOS)
partially provide for access control?
case in the Appendix. Develop all of the distri-
15. What are the structural relationships on an
bution matrices and subjective reasoning
action diagram? Where do they come from?
for/against distribution. Develop recommenda-
16. List the steps in developing an action diagram.
tions and explain your reasoning for each
17. For what types of applications does concur-
choice.
rency analysis become important?
18. What is reusability analysis? Why is it
important?
C HAP T E R 11
____ OBJECT-
__ ORIENTED - - - - - - - - - - - - - - - - - - - - - - - - - - - ,. . . . . . . . . .r - - - - -
__ ANALYSIS ----------------------------,. .......... -----
459
460 CHAPTER 11 Object-Oriented Analysis
l • 1
to thinking of data and processes as one.
Several times in this discussion, we have men-
tioned the term "if properly applied." Object orien-
Manager
Intramural tation is no different than any other methodology in
Baseball Team
that it requires consistency and correct reasoning to
result in the desirable properties described. When
improperly applied, object orientation results in a
badly designed application that might actually be
less efficient than the same application designed
poorly using some other methodology.
Management
Committee
DEFINITION OF _ _ _ __
"
OBJECT-ORIENTED _ _ __
FIGURE 11-2 Example Object Class TERMS _______________
Hierarchy Object orientation is based on the notion of objects
which encapsulate both data and processes on that
Process Data
Methodologies Methodologies
Function = Entity =
Group of Activities Class of Business
Describing Business Thing which the
Processes Application tracks
c::::J-tO------
Entity-
Relationship
Diagram
FIGURE 11-3 Process and Data Methodologies as Flip Sides of the Same Paradigm
462 CHAPTER 11 Object-Oriented Analysis
data. An object is an entity from the real world description of the gen class. For instance, a car,
whose processes and attributes (that is, the data) are truck, or tank are all specializations of the general
modeled in a computerized application. class vehicle. These could be further specialized
Processes are variously called functions, actions, themselves. For instance, car could have specializa-
services, programs, methods, properties, or modules; tions by type car: full-size, mid-size, or economy.
these terms mayor may not have the same meaning Each type of class and its subclasses form a hier-
to the people using them. For that reason, we stick archic, lattice-like arrangement of relationships.
to the term process to mean the transformational pro- Through the relationships, the lower-level classes
gram language code that acts on its object data. inherit the data and processes of the related higher-
An abstract data type (ADT) is the name used level classes. Thus, if we were to refer to an econo-
in some languages (e.g., C) for the new, user-defined myCar object, we would have information and
data type that encapsulates definitions of object data processing for vehicles, cars, and economy cars
plus legal processes for that data. In this text, we use all available.
the terms encapsulated object, object, and abstract Messages are the only legal means of communi-
data type interchangeably. cations between encapsulated objects. Messages are
The major analysis activities focus on defining clear in their intention but not clear in their imple-
objects, classes, and processes. Class/objects are the mentation, which is completely determined by the
lowest level of logical design entity. Class/objects language (see message types in Figure 11-4). For
define a set of items which share the same attributes instance, at the moment Ada does not imple-
and processes, and manage the instances of the col- ment message communication. In this text, a mes-
lection. The class defines the attributes and pro- sage is the unit of communication between two ob-
cesses; the objects are the instances of the class jects. Messages contain an addressee (that is, the
definition. object providing the process, also called a service
There are different types of class-object relation- object), and some identification of the requested
ships. First, classes can occur without having any process.
real data associated with them. Classes whose A major difference between object orientation
instances are other classes are called meta-classes. and other methodologies is the shifting of responsi-
For instance, we might define a class Customer with bility for defining the data type of legal processes
subclasses for CashCustomer and CreditCustomer. from supplier (or called) objects to client (or calling)
The class is a meta-class; the subclasses are class/ objects. This shift, along with the notions of inheri-
objects which manage the data of Customer. tance and dynamic binding, support the use of poly-
Classes can be composed of class/objects to morphism, which is the ability to have the same
describe a composition relationship of whole and process take different forms when associated with
part. A whole class defines the composed object different objects. Dynamic binding is a language
type. The part class defines all the components of property that selects actual modules to execute dur-
the whole class. For instance, a car, as a whole class, ing application operation. The concept is completely
contains parts that include motor, wheels, doors, described in Chapter 12.
seats, and so on. A supplier object is one that performs a re-
Classes can also be defined to allow specialized quested process. A client object is one that requests
versions of an item. The meta-class is called a gen- a process from a supplier. For instance, I might need
eralization class, or gen class for short. The sub- to have a date translated from month-day-year
classes are called specialization, or spec, classes. A format to year-month-day format. As a client object,
generalization class defines a group of similar I request the translation of the supplier object and
objects. For instance, vehicle is a generalization on pass it the date to translate. If the language supports
car. The specialization class is a subclass that polymorphism, I also pass the data type of the date to
reflects an is-a relationship, defining a more detailed be translated.
Object-Oriented Analysis Activities 463
Customer : Create
Field=Dateln, DataType=lnteger
TableslLists
Object List Contains potential objects (nouns) from the paragraph. Each entry is evalu-
ated to determine that it is an object, to classify it as solution space or problem
space related, and to assign it a unique, formal name.
Process List Contains potential processes (verbs) from the paragraph. Each is evaluated
to determine that it is a process, to classify it as solution space or problem
space related, and to assign it a unique, formal name. All solution space class/
objects are tentatively related to processes and the relationships are
evaluated.
Object-Attribute List Contains field name attributes with each object they describe. Each class/
object's entries are normalized and other class/objects are created as needed.
Process-Attribute List Contains formulae, constraints on processing, and state/status changes for
each process as required; some processes have no attributes.
Diagrams
Object Relationship Diagram Identifies objects with connecting lines showing different types of interobject
relationships.
Class Hierarchy Diagram Shows objects arranged in one or more lattice hierarchies to link shared
data/processes and to depict inheritance of those data/processes.
Generalization/Specialization Depicts objects which express is-a relationships. This diagram is optional.
Structure Diagrams
Whole/Part Structure Diagrams Depicts objects which are compositions for which the whole class is composed
of one or more of the part subclasses. This diagram is optional.
Subject Summary Diagram The highest level of independent classes or class/objects in each leg of a hier-
archy are promoted to subjects for inclusion in this diagram which provides a
summary of the classes in the application. This diagram is optional.
State Transition Diagram Contains system states (i.e., statuses) and the events (process outcomes) that
cause those states to exist.
sentence 13. You ask yourself, What do we mean by rental upon its return? Again, we go back to Vic, the
an 'order'? If you do not know, you may need to ask client, and ask him what he wants.
the client what he means by an order.
Vic wants an order to have information that is Vic says, "I would like as little bureaucracy as pos-
linked to video information whenever customers sible in this system. Since 80% of videos are
have any videos out on rent, that is, they are an returned on time, I want new rentals paid in
'active' customer. An order should contain informa- advance-when they are rented. About 90% of
tion about all current rentals, dates returned, and late my customers return their videos through a slot
fees. Any other fees owed, for instance, penalties in the door during nonworking hours. Any
assessed for late payment, should also be present videos that have late fees are checked in, and a
until they are paid. In other words, Vic uses the word note of past-due fees must be made.
order to describe what we have termed a rental. This "For legal reasons, I must be able to prove
confusion is cleared up immediately because differ- how past-due fees are derived. To meet this
ent words for the same items always cause confu- obligation, the past-due fee amount, rental date
sion. Vic does not mind changing the term order to and return date must all be maintained.
rental. He uses the term order because he thinks his "Also, I do not want to encourage 'dead-
business is similar to order-entry processing which beats' who do not pay for their rentals, so I
he managed in an old job. The major differences insist that any outstanding fees be paid before
between these two activities is that Vic has a cash any new rentals."
business and order-entry applications are usually
With the above information supplied by Vic, we
used in accrual accounting businesses that link to
evaluate the sentences dealing with payments. Al-
accounts receivable accounting. Vic is correct; there
though they remain somewhat ambiguous, they
is similarity between rentals and order processing,
would be sufficient if we chose not to change them.
but the term rental fits this particular business and
The information is clearer if sentences 13 and 14 are
will be used.
moved between sentences 2 and 3 and are renum-
To be consistent in the use of terms, we modify
bered 2a and 2b for the present.
sentence 2 to read:
One remaining ambiguity might be computations
2. Customer phone number is entered to retrieve cus- for the 'total' and 'change.' If the computations are
tomer data either to create a rental or to retrieve understood, they are not required in the paragraph.
active rentals. We do not need the computations for the paragraph,
but we do need it soon. So, if the computations are
This change also implies a status for rentals of
not understood, you again go back to Vic and ask
'active' or 'inactive' which we will need to further
how the computations are performed.
clarify.
The term video information from inventory in Vic: "There are two basic totals: one for set-
sentence 3 should be more specific. Knowing the tling past-due fees and one for the current
actual fields to be displayed will be helpful in the rental. They may be computed together as the
class analysis and in attribute definition. Upon fur- rental total equal to the sum of all past-
ther conversation with Vic, you change the informa- due items, fees, taxes, and current rentals.
tion to read: Change is computed as the rental-total less
3. Bar code IDs for each tape are entered. amount paid."
3a. Video name and rental price from inventory are
displayed.
Vic's definition of the rental-total raises a new
question about the paying of late fees and sentence
The next unclear issue is: When is money col- 2b. If past-due fees must be settled before any cur-
lected for new rentals? Can a customer rent a video, rent rentals are allowed, how can you add the infor-
pay past-due fees, and pay for the current video mation together to create the rental-total?
Object-Oriented Analysis Activities 467
2. 2. Customer phone number is entered to retrieve customer data either to create a rental or
to retrieve an active rental.
2a. 3. Any outstanding video rentals are displayed with the amount due on each tape and a to-
tal amount due.
2b Note The past-due amount must be reduced to zero when new rentals are made.
3a. 5. Video name and rental price from inventory are displayed.
5. 6. When all tape IDs are entered, the system computes the total (= L past-due fees + L
other fees + L current video rental fees).
9. If the change amount is negative, that is, the customer did not pay for all fees, the clerk
asks for more money.
10. If the customer gives the clerk more money, return to step 7, else, when the clerk presses
an order complete key, the system 'pays-off' the fees on a first-in-first-paid order until the
amount entered is used up. The rental is redisplayed. Past-due items 'paid-off' are
marked paid and the status of the current video rentals are either paid or due.
11. If the amount entered paid for one or more current rentals, they are updated as paid and
the videos are given to the customer; else when the clerk presses the rental complete
key again, the current rentals not paid for are removed and placed back in stock.
4. 12. When the clerk presses a rental complete key (to be defined by the system), this order is
complete and the video inventory file is updated (decrease the count of available copies
by one).
"Oh," says Vic, "I meant that the clerk should not The new sentences 9, 10, and 11 add needed
give the customer the video tapes until all of the information to our understanding of the problem, but
past-due fees plus current rental fees are paid. now they are at a different level of detail from the
They can still process the current rentals on the other sentences. They constitute processing that
computer at the same time. Remember, my accompanies change. So, to keep the level of ab-
motto is no bureaucracy." straction consistent, they should be removed from
this paragraph and kept for use during the next iter-
This new information does change at least the order ation of change processing. To indicate that other
of sentences 2 through 8 (see Figure 11-7). At the steps are needed to process change, modify sentence
end of the paragraph, add the following so the in- 8 to read:
formation is not lost.
8. Change is computed (= amount-entered-rental-
total), displayed, and further processed by the clerk
2b. NOTE: The amount paid less change must be as required.
equal to the rental-total or the clerk should
politely refuse to give the customer the current At the moment, the final paragraph for ABC
tapes. Video's rental processing system should read like the
468 CHAPTER 11 Object-Oriented Analysis
Class/Object:
Object Name ... - - ~ Customer
CustomerPhone
CustomerName
Attributes ... - CustomerAddress
CustomerCreditRating
Processes:
Processes ... - Add Query
Update CheckCredit
Delete
or for which processing is required. If the items in IRS in the application. In this example, the IRS
the list fit any of these criteria and pass the other would be a problem space object.
tests, keep them on the list. The solution space includes objects that are
There are no hard and fast rules for this process, required both to describe the problem and to de-
only heuristics or rules of thumb. Ask yourself the velop a solution. In ABC Video, 'customer' is nec-
following sets of questions. Does the noun identify essary to both the problem definition and to the
something from the real world you want to store in- automated application solution. So, it is in the solu-
formation about? If so, keep going. If not, it is not an tion space.
object in this system, so cross it off. When you are done evaluating all entries in the
Does the noun identify something that takes on list, the solution space objects are given a class/
values itself, for instance, a social security number, object name by which they are known for the life of
balance, or rental total? If so, these are attributes (or the application. During this step, we eliminate dupli-
fields) describing an object. Cross them off this list cates of each object. By convention, the name in the
and put them on a list of attributes somewhere. If list is entered as either ObjectName or =Object-
not, then keep going. Name. The format ObjectName identifies a unique
Does this name uniquely identify a set of things class/object. The format =ObjectName identifies
with the same attributes? If so, keep going. If not, if a synonym of a class/object. The =ObjectName
it identifies one unique thing, it may still be an object ensures quality assurance reviewers that you have
but you should look for commonalities and combine accounted for all objects and have considered every
with some other class/object. entry on the list.
Once you have crossed off all nonobjects in this Finally, a class/object diagram is begun. A class/
application, you are ready for the next analysis on object is a collection of like things in a class; the
objects: Determine if it is in the problem space or in objects are the individual instances of the things in
the solution space. The problem space includes the class. Class/objects are drawn as a rounded verti-
objects that are required to describe the problem but cal rectangle with a shadow rectangle. The class/
are not required to describe the solution. For in- object is divided into three parts to depict the name,
stance, you might need to know something about attributes, and processes (see Figure 11-9). The three
IRS reporting requirements to properly define the areas identify public information relating to the
length of time you need to keep an accounting file class/object. Eventually other details are added for
of transactions. But the IRS does not factor into the private information during design. Now, let us return
solution, nor do you keep any information about the to ABC's application to develop the object list.
470 CHAPTER 11 Object-Oriented Analysis
instance. To identify an attribute, we ask, Can this complete and the video inventory file is updated
(decrease the count of available copies by one).
name take on a value? If the answer is yes, it is an
10. The mn.tal is stored and printed.
attribute. Attributes are set aside for use in a future 11. The customer signs the rental form, takes the
step. :tape., and leaves.
Figure 11-11 shows Rental attributes includ- To return a tape,
ing AmountDue, TotalAmountDue, RentalTotal,
12. The video bar code 10 is entered into the ~.
Amount, and Change. Attributes of Videos on
13. The mn.tal is displayed and the :tape. is marked
Rentals include RentalPrice, ReturnDate, and Past- with the date of return.
DueFees. Video attributes include BarCodeld and 14. If past-due amounts are owed, m can be paid
VideoName. Finally, PhoneNumber is an attribute at this time, or the ~ can select the 'rental:
of Customer. complete' option which updates the mn.tal with the
return date and calculates past-due fees.
Next, we evaluate remaining nouns to determine
if they are objects. The nouns that are clearly For new customers,
objects are the following: 15. Enter customer information.
16. Create customer.
customers
videos For new videos,
money
clerk (3 times)
video inventory file FIGURE 11-10 Underlined Nouns
rental form
system
At this point we are not concerned that there are
The objects in the above list do not take on values duplicates on this list, or that we will not keep auto-
of their own. They are material and distinct, and they mated information about all entries on this list. The
are of interest to the application. Therefore, they less obvious, remaining entries we need to eval-
are objects. uate are:
Object-Oriented Analysis Activities 471
not required as long as he has access to open rental attributes) or call them objects. We opt for calling
infonnation. them 'collections of attributes' and eliminating them
Outstanding video rentals is also an adjectival from the object list.
description of videos on a rental that appears to be a Now we return to the objects we did find to
status. Other statuses of videos on rentals that we decide if they are in the problem space or the solu-
might identify so far are combinations of: tion space. Problem space objects are required to
describe the task domain but not to develop an auto-
outstanding/returned
mated solution. Solution space objects are required
on-time/late
to describe both the task domain and the automated
paid/not paid.
solution. Once problem space objects are identified,
We note these for the attribute list and eliminate they drop out of the remaining analysis. We de-
them from further discussion here. cide which space each object describes (see Fig-
Last is the rental complete option key. This is a ure 11-12).
noun phrase describing an implementation detail- The last stages are to name each object with a
a key on the keyboard to be pressed to indicate the unique name by which it will be known in the sys-
end of rental processing. It is not an object because it tem and to eliminate duplicate names for the same
has no attributes, and we do not keep data about object. When we find a duplicate, we indicate the
it in the application. It is an event trigger that will name by an equal sign ('=' ) appended to the front
initiate some processing, but it does not enter into of the name to signify that the name already ap-
this level of analysis so it is eliminated from the peared once.
object list. During this exercise, we have two options for
Last are customer information and video infor- dealing with repeating infonnation and relationship
mation. These two items are similar in that they both objects which describe one-to-many relationships.
reference a collection of attributes describing two We can define them for later nonnalization or we can
entities. As such we could either list their attributes define them as fully as possible now. We opt for
(then omit them from the list because they are more completeness now because it usually means
Money P Real money is outside of the system. We are concerned with the
amount which is data entered into the system and related to rental.
Rental Form P Just a different media than 'rental' ... not relevant by itself to the
solution.
videos 8 Videolnventory
Identify Processes
rental 8 Rental
Rules for Identifying Processes
active rental 8 =Rental
outstanding 8 VideoOn Rental The next step is to identify processes. The rules for
video rentals identifying processes are summarized as follows:
tape 8 = VideoOn Rental l. Circle all verbs in the summary paragraph.
tape 8 = VideoOnRental 2. List the circled verbs on a separate sheet of
rental 8 =Rental
paper, using the exact same sequence and
spelling as in the paragraph.
video inventory 8 = Videolnventory
file
3. Evaluate each verb to make sure it is a
process. (Common errors are to include sta-
rental 8 =Rental
tus, physical actions, or comments.)
rental 8 =Rental 4. Determine whether the process is in the solu-
tape 8 = VideoOn Rental tion space or the problem space.
rental 8 =Rental
5. Name each unique process in the solution
space. Ignore those processes in the·problem
customer 8 =Customer
space. Use the convention '=name' to iden-
video 8 = Videolnventory tify duplicates of already named processess
and show that you know it is a duplicate.
6. Assign objects to verbs if the object is trans-
FIGURE 11-13 Object List for ABC Rental formed by the process or if the object data is
Processing read by the process.
7. Evaluate the object assignments:
less reworking later. For example, a rental has one or If there is only one object assigned to a
more related videos. We could define both of these process, continue.
as 'rental,' or we could define Rental and VideoOn- If all objects are read-only, continue.
Rental separately. We opt for the normalized form For processes with more than one object
because it results in a more complete analysis. This transformation, evaluate the transformation
results in four class/objects: Customer, Rental, process:
VideoOnRental, and Videolnventory.
If all processes are exactly the same, and all
Figure 11-13 shows the class/objects from this
data types acted on are exactly the same, then
analysis in their final form (for this step). Notice the
mark the process for creation of a reusable
objects are still in order by their sequence in the
module.
paragraph, all have a space designation, and all solu-
tion space objects are named. If all processes are exactly the same, but all
Finally, we depict class/objects from this list. We data types are not the same, mark the process
switch from the term object to the term class/object for polymorphic module creation.
to acknowledge both the shared attributes and pro- If all processes are not exactly the same,
cesses and the instantiation of them. ABC has four redevelop the paragraph to more specifically
class/objects corresponding to Customer, VideoOn- define the processing.
474 CHAPTER 11 Object-Oriented Analysis
VideoName
CustomerPhone RentalPrice
VideoCountOfCopies
BarCodeld
VideoOnRental Rental
CustomerPhone CustomerPhone
BarCodeld BarCodeld
ReturnDate ReturnDate
LateFeesDue LateFeedDue
TotalAmtDue
TotalAmtPaid
Change
Processes are actions described by verbs. We iden- and the verbs rent and return would be excluded as
tify the verbs in the summary paragraph, circling nonprocesses.
them to distinguish them from the nouns. Once the After the first evaluation, review each verb again
circling is done, make a list on a separate sheet of to determine if it is in the solution space or the prob-
paper of the verbs. When making the list, keep the lem space. The meanings of solution and problem
verbs in exactly the same sequence and use exactly space are the same as for class/objects. Problem
the same spelling as occurred in the paragraph! space means the process is required to define the
Then, evaluate each verb to make sure it is a problem but not the automated solution. Solution
process. Ask yourself if the verb is a process that space processes are required both to define the prob-
the application must provide. If yes, keep going; if lem and to define the solution.
not, cross the verb off. For instance, if the paragraph Next, review each verb carefully and give it a
said "The clerk enters the customer's phone number meaningful name. Try to define meaningful process
into the system," the clerk has been removed as a names that indicate both the process and the class/
problem space object. But, the verb enters as applied object on which it acts. So, for enter a customer
to the customer's phone number is required data phone number, the process name might be enter-
entry to begin the rental entry process. So, enters CustPhone.
remains in the system. If we had included the terms For any processes that use the same verb descrip-
To rent a tape or To return a tape in the list, these tor, or that you think are exactly the same, mark with
are summary descriptions of entire procedures an asterisk for further evaluation in the design phase.
Object-Oriented Analysis Activities 475
can live with for the entire life of the object and If no, go to step 3.
its processes. In design, if these processes are all If yes, are all object data types the same?
defined as the same, we simply truncate the names to If yes, this process is complete; create one
enterTapeId. reusable module for this process.
The last step in identifying processes is to assign If no, mark for polymorphic module creation.
class/objects to operations. List each object with all 3. Redefine the sentence(s) to identify the specific
processes that use or transform it. When this identi- processing of each object. Then, reevaluate
the processes beginning at step 1.
fication is done, reevaluate all processes with more
than one object assignment.
The three questions you ask in this evaluation are FIGURE 11-15 Multiobject Process
summarized in Figure 11-15. First, ask if only one Evaluation
object is actually transformed by this process. If the
answer is yes, go to the next process to be evalu-
ated. If the answer is no, then continue with the
evaluation.
ABC Video Example Process List
Next, for the processes being transformed, does The steps we follow here are to circle the verbs,
the exact same processing occur to each object? That evaluate them as processes of interest, define solu-
is, are the data types and the process steps identi- tion and problem space processes, assign class/
cal? If the answers to these questions are all yes, no objects to processes and evaluate those object
further analysis is required. You have identified a assignments (refer to the summary list on p. 473).
candidate for development as a reusable module. If The first step is to return to the paragraph and cir-
the answer is no, then you must identify the specific cle the verbs. Analyze each verb to ensure that it is
differences with the next set of questions. a process. For instance, if you include in your list the
Third, are the data types different or identical? terms 'To rent tapes' and 'To return a tape,' the verbs
Are the processes different or identical? If the data 'to rent' and 'to return' are omitted from the list
types are different and the process is the same, these because they are identifying the entire process, but
process-object combinations are candidates for poly- are not processes in the system. All verbs in the para-
morphic module creation and sQolllp be noted with graph are processes. Figure 11-16 shows the verbs
an asterisk. If the processes are· different, then you circled in the final paragraph.
must refine your paragraph to define the specific Next, list verbs and identify their space. Remem-
processes for each object, and redo this part of the ber, problem space identifies processes needed to
analysis from the beginning. describe the problem but not the solution; solution
When you have evaluated all of the multi object space processes are needed to describe both the
processes and resolved any inconsistencies, you are problem and the solution. Figure 11-17 identifies the
ready to perform the next step. Next, we identify the space of each process listing a reason for exclusion
processes for ABC Video's rental application. of problem space items. The problem space pro-
cesses all refer to physical actions which are not
4 A convention is a locally agreed upon way to do some tracked by the application. The verb is complete is
activity. the only nonprocess in the list. Is complete refers to
476 CHAPTER 11 Object-Oriented Analysis
17@ideo information.
FIGURE 11-16 Paragraph with Verbs Circled for ABC Rental Processing
a rental status in the procedure which signals differ- ilar in saying 'The rental is displayed.... ' The rental
ent processing. This status is an attribute of the pro- cannot be displayed until it is retrieved. The word
cess that we will deal with in the next step. 'tape' in the same sentence is ambiguous. Does this
Next we name solution space processes, eliminat- refer to the VideoOnRental or to VideoInventory? In
ing duplicates. Figure 11-18 shows the list of solu- fact, both are affected by this action. The VideoOn-
tion processes with names. The duplicate actions are Rental is updated with the return date and the Video-
EnterBarCode, DisplayRental, DisplayVideoOn- Inventory is updated to add one to a count of
Rental, RetrieveRental, RetrieveVideoOnRental, and available tapes (the opposite of the action in sentence
WriteRental. 9). The sentence should be rewritten to reflect these
Several actions deserve further comment. Sen- differences. The new sentence now reads:
tence 5 for tape rental says, 'Video name and rental 13. The rental, related video(s) on the rental, and
price from inventory are displayed.' This sentence video(s) in inventory are retrieved and displayed.
implies that name and prices are retrieved from The return date is added to tpe video( s) on the
inventory, so the sentence should be modified to rental. One is added to the count of available
reflect this action. Sentence 13 for tape return is sim- tapes in inventory. Inventory is updated.
Object-Oriented Analysis Activities 477
A similar ambiguity is present in sentence 14 The last step is to review the sentences once
which states that' amounts ... owed ... can be paid. ' more, using the object list as reference to assign
This process, can be paid, refers to sentences 6-8 in objects to processes. Figure 11-19 shows the result
the tape rental process. Because these processes are of this activity. The rule for performing this activity
present, we do not need to change the paragraph, but is that any object that is read or acted on by this
we must reference those sentences so the actions are process is identified.
clear. Sentence 14 now reads: All processes relating to multiple objects are
reanalyzed to determine if they are the same pro-
14. If past-due amounts can be paid at this time
cesses. RetrieveRentalVOR is identified in the fig-
(repeat sentences 6-8 above); else the past-due
fees are calculated and the rental is updated. ure as requiring two actions which we discuss here.
The processes dealing with Rental and VOR take
This new sentence omits the extraneous informa- information that is separate and process it as if it
tion previously present. Both the object list and the were integrated. The Rental information identifies
process list are reevaluated to reflect these changes. the customer and the VOR describes a video. There
The verbs in sentences 6-8 are also reviewed to is one Rental per transaction and one VOR per video.
ensure identical processing and are added in the The question then becomes one of definition: Is it
proper sequence to the process list. The old verbs are necessary to maintain this Rental, or can it be added
replaced with 'are calculated' and 'is updated.' We to each VOR and eliminated?
review that the nouns from sentences 6-8 and 14 As in the other methodologies, the Rental infor-
are accounted for in the object list. mation and the Customer information are essentially
478 CHAPTER 11 Object-Oriented Analysis
is entered S EnterCustPhone
to retrieve S ReadCust
to retrieve S RetrieveRentalVOR
computes S ComputeRentalTotal
is entered S EnterPayAmt
is computed S ComputeChange
displayed S DisplayChange
is updated S Updatelnventory
is stored S WriteRental
printed S PrintRental
duplicates. If the company operates on a cash analysis. I would like to add trend analysis in
basis and simply needs to know videos outstand- the future."
ing for a customer, then we do not need Rental. If
the company operates on an accrual basis and From this discussion, we know there is no busi-
needs to be able to exactly reconstruct individ- ness requirement to separate the two objects. A side
ual transactions, then we need Rental. Video rental issue to the decision is whether separation or join-
is a cash basis business; therefore, we do not need ing of the objects impacts processing time. For ABC,
Rental but we do need to carry its information there is no process time impact. If there were an
in VOR. impact, we would probably opt for the faster solu-
Next, we consider Vic's potential need to differ- tion. We could choose consolidation of VOR and
entiate between rentals for a customer or to main- Rental to simplify processing. In this case, Rental
tain information beyond the rental's life. Once again, would be removed from the list and declared in the
the software engineers return to Vic to find the object list as =VOR. Another option is to leave it as it
answer. is. A third option is to think about Rental as Trans-
action since attributes, such as TotalAmountDue,
Vic: "I have customers sign a copy of a rental and apply to a specific grouping of videos for a customer
I keep those. I use them to resolve disputes, to at a point in time. There is no 'right' answer to this
find errors, and to provide accounting records. question, and we do not have enough information to
I don't care how you identify rentals because make a final decision although transaction sounds
I don't have a need, at the moment, for any like an idea we will need in design. For now, we will
Object-Oriented Analysis Activities 479
is entered S EnterBarCode
is retrieved S RetrieveRentalVOR
is added S Add1toVInv
is updated S Updatelnventory
is updated S WriteRentalVOR
enter S EnterCustomer
create S CreateCustomer
enter S EnterVideolnventory
change the name of Rental to TempTrans to reflex To define the attributes of an object, we identify
this thinking and will revisit the need for this class/ all of the information about objects. First, attributes
object again during design. There are no other that were set aside during object definition are
multiobject processes. The final process list is Fig- now assigned to a class/object. All items from the
ure 11-20. original object list that we deleted because they were
attributes are now listed with the class/objects
they describe.
The original description of the project is
Define Attributes of Objects rechecked to identify any adjectives or adjectival
phrases describing nouns that are now objects in the
Rules for Defining Object Attributes
solution space. In our case, we reread Chapter 2's
An attribute is a named field or property that description of the case and rewrite any attributes
describes a class/object or a process. Each object is a identified there that are missing from the object list.
collection of attributes which take on values. A set of These attributes are added to the list.
specific attribute values describes an object or Next, evaluate the rewritten paragraph to find any
instance. Each object is identified by a primary key data requirements underlying what is stated in the
which is a unique set of values comprised of one or paragraph but not already known. For instance, a sta-
more attributes. A primary key in object-orientation tus is implied in the statement 'Retrieve all open
may not actually be used to identify stored objects; rentals.' The adjective 'open' implies a status of
physical addresses are most often used. open/closed. Any qualified class/objects should be
480 CHAPTER 11 Object-Oriented Analysis
evaluated to determine if the qualification is identi- reexamined to determine that they encompass both
fying an attribute. When evaluating the paragraph, the original object and new objects resulting from
ask what information is needed to perform, docu- the normalization process.
ment, or track each action taken. When you identify When all attributes are listed with an object, iden-
new information, create attributes for each piece tify a primary key identifier. A primary key provides
of information. a unique identification for the object and is com-
Next, normalize each set of attributes to third nor- posed of one or more attributes. Compare objects to
mal form (3NF).5 For any newly normalized sets of determine if any have identical primary keys. If the
objects, any process-object encapsulations should be answer is yes, consolidate the objects, or change the
object with the incorrect primary key. Now, let us
walk through attribute identification for ABC.
5 Recall that nonnalization includes the following:
INF-Removal of repeating groups of infonnation
2NF-Removal of partial key dependencies ABC Video Example Object Attribute List
3NF-Removal of nonkey dependencies.
If you have problems with this activity, refer to Chapter 9 to All items from the original object list that we deleted
refresh yourself on this activity. because they were attributes are first listed with the
Object-Oriented Analysis Activities 481
FIGURE 11- 19 Class/Object Assignments to Processes for ABC Video Processing (Continued)
class/objects they describe. We refer to Figure pIe are doing the programming, a RentalStatus
11-14 to find those items. A partial list of the attri- attribute is simpler. If senior people are doing the
butes from our paragraph is shown in Figure 11-21. programming, either method is acceptable. As a mat-
Next, we review the Chapter 2 description of the ter of choice, we will carry the RentalStatus to make
case and rewrite any attributes identified there that sure that future maintenance programmers can also
are missing from the object list. These attributes are easily understand the processing.
added to the list as shown in Figure 11-22. Figure 11-23 shows the initial attribute list for
Next, we reconsider our paragraph to find any each object. We evaluate each, in tum, to determine
hidden attributes that are implied by other informa- its completeness and primary key.
tion such as statuses. We have open and closed Customer 6 appears complete in its information
rentals, but we might not require a specific attribute required to perform rental processing. VideoOn-
for the status. We know a rental is open when it has a Rental is considered next. We know we need a
RentalDate without a ReturnDate, or when it has late
fees owing. We can check those attributes in lieu of 6 Note that if Rental had been retained, it would have had the
carrying a specific RentalStatus attribute. Keeping same primary key as Order and would have been eliminated
this attribute requires a judgment call. If junior peo- in this step rather than the earlier one.
482 CHAPTER 11 Object-Oriented Analysis
Customer Phone to tie rentals to customers and a The distinct definition of VideoPromo means we
Video ID to tie rentals to inventory. From Chapter 2, can omit it after this analysis because promotions are
we also need rental and return dates. The question a future requirement. The separation of BarCode-
is how much fee information we need. Vic supplies Video from Videolnventory means we need to reeval-
the information that he needs to know that regular uate the object and process lists to define related
fees, late fees, or other fees have been paid and the changes. Since Videolnventory and BarCodeVideo
amount of the fee. Therefore, we add those attributes are always accessed together, we can just add Bar-
to the list and it also appears to be complete. CodeVideo to the lists anytime Videolnventory is
The Videolnventory is not normalized. While we present. We may w(lnt to consolidate the two objects
are normalizing, we can also evaluate the impact of later in the design, for convenience of processing, if
Vic's nebulous desire for promotions on inventory we can accommodate repeating information.
objects. Refer to Figure 11-23 's list of the fields and The final object attribute list is shown in Figure
definitions relating to videos in inventory. Repeating 11-25 and omits the VideoPromo Promo Type
information is indented. Primary keys of each part of objects as discqssed ~bove. The attribute list shows
the information are underlined. The 3NF result of the class/objects with their attributes. The process-
normalization is four relations (see Figure 11-24): object figure is £orrected to reflect the new Bar-
Videolnventory, BarCodeVideo, VideoPromo, and CodeVideo class/object. The objects are a1l3NF and
Promo Video. appear complete for ABC rental processing.
Object-Oriented Analysis Activities 483
Customer CustomerPhone
CustomerLastName
FIGURE 11-21 A Partial List of Attributes CustomerFirstName
from the Paragraph CustomerAddress
CustomerCity
CustomerState
Status attributes identify state changes due to a CustomerZip
process's successful completion. The status attri- CustomerCreditCardType
butes will, during design, be assigned to a class/ CustomerCCNumber
CustomerCCExpDate
object. The purpose of identifying them with pro-
CreditRating
cesses is that they are more obvious and less likely to CustEnroliDate
get lost.
TempTrans CustomerPhone
The constraints are identified to ensure that the BarCodeld
procedural code generated during design includes Return Date
the constraints. The formulae are included as process LateFeesDue
attributes because they provide some of the logic TotalAmtDue
detail that is also included in the process design. TotalAmtPaid
Change
One inadvertent consequence of process attribute
identification can be the definition of artificial con- VideoOnRental CustomerPhone
BarCodeld
straints on processes. For instance, in the ABC
Return Date
Video rental process, we know that customers must LateFeesDue
return and pay for prior rentals before taking out new
Videolnventory VideoName
rentals. But consider this situation: RentalPrice
A customer has several tapes on loan. The customer VideoCountOfCopies
BarCodeld
returns all but one video and wants to rent two others.
TypeVideo
The customer could pay for all past rentals, the new
Vendor
rentals, and late fees up tb the current date for the tape DateReceived
still on loan.
Or the customer could pay for all past rentals and
the new rentals. The remaining tape, because it is not FIGURE 11-22 Additional Attributes from
returned, is left unchanged. Chapter 2
Object-Oriented Analysis Activities 485
FIGURE 11-23 Initial Object Attribute List for ABC Rental Processing
ABC Video Example Process Attribute The first entry in the table for RetrieveRental-
List VOR is a prerequisite that the Customer informa-
tion must be retrieved and a Rental able to be devel-
First, we list all processes down the left margin of a oped. If this process is not successful, it is due to a
page (see Figure 11-26). Then, we examine each new customer and the EnterCustomer process is
process to determine whether it is constrained in any initiated.
way. To identify constraints we return to the origi- Several status attributes which were set aside
nal description of the problem and the final para- during process identification are defined here. Two
graph to determine processing formulae, constraints, statuses were identified for knowing when all
and statuses. video data entry is complete and when all transac-
The obvious process attributes are the formulae tion processing is complete. Both of these prerequi-
used to compute rental total and to compute change. site statuses are listed with related processes in
Each of these are entered in the table (see Figure Figure 11-26. Notice that for the constrained pro-
11-26). To ensure proper payment processing, a cesses, we listed the type of constraint and the
postrequisite that Change be greater or equal to zero details of processing relating to the constraint.
is defined. If this postrequisite is not met, payment Also, notice that many processes have no specific
processing is performed again. attributes.
486 CHAPTER 11 Object-Oriented Analysis
BarCodeld VideoName
BarCodeRentalCount BarCodeld
BarCodeRental Days BarCodeRentalCount BarCodeVideo
BarCodeRentalDays
class. The Order class/object inherits the data and meta-class relationship defines a class whose in-
processes in the Customer class. stances are themselves classes. For instance, cus-
Inheritance relationships identify shared data and tomers contain CustomerName which defines a
processes. The object at the arrow-headed end shares subclass 'character string,' which defines a subclass
or inherits from the other object. Inheritance 'character.' Customer is a meta-class representing its
relationships identify hierarchical networks of character string contents. In general, all classes and
relationships. class/objects from analysis are meta-classes that are
Booch [1991] also recommends the design of elaborated during design.
classes for class/objects whose data or processes are Coad andYourdon [1990] recommend looking
used by another class/object. For instance, an order for classes by evaluating each class/object for special
uses information about inventory items. Therefore, cases and creating generalization classes for spe-
another class would be created shared inventory cialization class/objects. For example, cash and
information (see Figure 11-29). This notation is the credit customers might be specialized class/objects
same as for general classes. of the general class customer (see Figure 11-30).
A fifth type of class, a meta-class, can also be Coad and Yourdon customize their notation for
defined, but is usually developed during design. The generalization-specialization relationships, although
FIGURE 11-25 Final Object Attribute List for ABC Rental Processing
488 CHAPTER 11 Object-Oriented Analysis
Process Attribute
EnterCustPhone
CreateTempTrans
Retrievelnventory
Postrequisite: Change must be;?: zero to successfully complete this process. If change
< zero repeat payment process.
DisplayChange
DisplayTremTransVOR
Add DateToVO R
Update Inventory
=ComputeTempTransTotal
=EnterPayAmt
=ComputeChange
=DisplayChange
Write Rental
CreateCustomer
EnterVideol nventory
CreateVideolnventory
() Uses
"7 Meta-Class
Required
01 Optional
Om Optional
1m Required
FIGURE 11-27 Relationship Types and Cardinality for Object Class Diagram
it is not necessary to do so unless using their CASE attributes or processes of another class/object are
tool. Figure 11-30 shows two alternative general- identified to create a class for the common class/
ization-specialization notations. object items. Finally, we define meta-classes as
Coad and Yourdon also recommend that classes abstract classes whose instances are themselves
be created to express whole-part relationships. For classeS.
example, in manufacturing, finished goods are To create less cluttered diagrams, elevate the
assemblies of other goods; the whole class might be highest independent class or class/object on each
for the finished product, while the part class/objects diagram to define subjects. A subject is the most
define each component (see Figure 11-31). Again, abstract class represented in an application. The pur-
Figure 11-31 shows two notations, a customized ver- pose of subjects is to provide a summary identifier
sion of whole-part as expressed by Coad and Your- that represents the cluster of subordinate relation-
don, and the more general notation used in manual ships which inherit from the class (see Figure 11-32).
drawings and other CASE tools. Finally, we reevaluate and, as necessary, redefine
To summarize, we have five types of relationships both process-object assignments, class, and class/
that we evaluate for specifically. First, we look for object definitions again. We reevaluate to ensure
shared attributes and processes across class/objects that all definitions accurately reflect the applica-
to define inheritance classes. Then we evaluate the tion requirements, and are 'clean,' that is, all
class/objects for specialization and for component processes relate to all data with which they should be
part relationships. Next, class/objects which use the encapsulated.
490 CHAPTER 11 Object-Oriented Analysis
Customer Class
./
1 I 1
I
I
I
/
/
I
Om
I
Cust Order
Class/Object Class/Object
ABC Video Example Class Analysis does not exist while rental processing is going on,
the rental class/object is supposed to be able to add
The class diagram for ABC rental processing is new customers and new videos. Therefore, the pro-
fairly simple (see Figure 11-33). First we draw the cesses for adding and reading the information from
object classes: Customer, VideoOnRental, Video- all three class/objects are shared and should be
Inventory, BarCodeVideo, and TempTrans. inherited. If VOR simply used the data, the using
Next, we evaluate the relationships between relationship would have been more appropriate.
them. Referring back to the attribute list, we see that BarCodeVideo, Video-Inventory, and Customer are
VideoOnRental (VOR) contains information from drawn as classes because they will not actually store
Customer, BarCodedVideo, and VideoInventory. The data. They manage the shared processes.
question is, Is this an inheritance relationship or a Next, we consider the relationship of VideoOn-
using relationship? In other words, are the data and Rental (VOR) to TempTrans. There is considerable
processes also shared by VOR or does it simply use overlap since VOR gets all new objects from Temp-
the data? The answer is found in the process Trans, and TempTrans gets all information about
descriptions. For all three class/objects, if the object open rentals from VOR. In this example, neither can
Object-Oriented Analysis Activities 491
1 I
I
inherit the processes of the other. Since they both use characteristics of VideoInventory appear to be in-
each other's data, they have reciprocal using rela- herited by BarCodedVideo.
tionships which are expressed in the diagram (see Next, we ask if the processes of VideoInventory
Figure 11-33). also apply to BarCodeVideo. For instance, when we
Then, we create new class/objects for attributes add a BarCodeVideo, do we need to know or do pro-
and processes not shared or inherited by VOR (see cessing for VideoInventory? One attribute of Video-
Figure 11-34). Inventory, a count of the number of videos in stock,
Next, we consider the relationship between Bar- is created and updated every time VOR is created or
CodedVideo and VideoInventory. VideoInventory used during rental processing. Therefore, a class for
defines the characteristics of a group of inventory VideoInventory that includes the attribute(s) and
items. For instance, there will be one object with the processes that are shared is required. Now we have
value Terminator 2 in the Video Name, but there two classes dealing with VideoInventory and one
might be many BarCodedVideo objects which refer class/object that will contain the data. The diagram
to that name. That is, there are many copies of the reflecting these final data and processing require-
movie, each with its own bar code. Therefore, the ments is shown in Figure 11-34.
492 CHAPTER 11 Object-Oriented Analysis
Generalization
Customer
I I
..................
Specialization Specialization
Credit Customer Cash Customer
Traditional Notation
The icons used in drawing a state transition dia- 4. Connect the states to show transition from
gram are shown in Figure 11-35 as a circle and one state to another. Use directed arrow lines
directed line. The rules for developing a state- to show the direction of state change (i.e.,
transition diagram are as follows: from ... to ... ). Each state should lead to
one or a small number of other states.
1. Draw one diagram for each object/class and 5. Label the transition lines to identify the
each class. events that initiate the change. Write the
2. Identify the possible states the class/object event names above the lines.
can take. 6. Label the lines with the processes that man-
3. Draw circles on a diagram labeling each with age the event. Write the process names under
a state. the lines.
Whole
Toaster
Traditional Notation
FIGURE 11-31
01 c:JIILJ
Example of Whole-Part Class
494 CHAPTER 11 Object-Oriented Analysis
Product
Composition
EJ
FIGURE 11-32 Example of Subject Diagram
7. Examine the diagram. If there are any recur- the state is written under the directed line. The
sive state changes, reanalyze that part of the names of states should be unique, but the names of
diagram in more detail to remove the recur- events and actions need not be unique if they, in fact,
sion or to specifically label the state and its relate to more than one state. Events can spawn more
processes as recursive. than one process. Conversely, object states can
8. Walk through the diagram with other team require more than one event to be changed. If many
members until it is complete and accurate. events are required to initiate a state change, they are
shown with separate lines leading to the state. If
The circle identifies the states of the object. Directed any of several events can initiate a state change, the
lines signify transitions and lead to the resulting lines converge into one line entering the state. Each
state. The event causing the transition is written on class and class/object in an application has a state-
top of the directed line. The process that changes transition diagram developed for it.
Customer
Add,Read
y
Video Inventory TempTrans
Add,Read
./
j
Add, Read
./
Cust
Customer
Change, Delete
Add,Read
Add,Read
,~ ,
Vlnv
--.;;
VideoOnRental
Change, Delete
BarCodeVideo BCVideo
.
Add,Read
Change, Delete .J.
o
tations in object orientation. They are useful for
diagramming the behavior of systems with Circles are used for class/object states
7 See Martin and McClure, 1985, for a further discussion of dif- FIGURE 11-35 Icons Used in State
ferent substitute representations. Transition Diagrams
496 CHAPTER 11 Object-Oriented Analysis
ABC Video Example of State-Transition payments performed at the same time? If not, what is
Diagram different about them? From the description of the
rental process, we know that returns can be made
The steps to developing a state-transition diagram without any payment taking place. So, we separate
are to draw circles for each state that an object can these events.
take. Then connect the circles with lines showing Consider returns first. When a video return takes
which states lead to which next-states. Label the place, what process is performed? The answer is that
lines with the event triggering the change on top and we update the rental with the return date. The rental
the associated process from the application under the does not change from open to closed when a return is
line. Rental VOR objects are the most complex in performed, however; so, we draw a recursive line
the ABC Video rental processing task, so they are from open rental to open rental and mark it with the
discussed here. Development of state transition event and process. This recursive line identifies a
diagrams for the other objects is left as a student need for another level of detail on rental states
exercise. because each state should have its own circle for
In its most simple form, a rental is either open or clarity of expression.
closed (that is, no rental). So, the first iteration of the Finally, we evaluate the other event, payment of
state transition diagram will begin with those two rental fees. This event causes a rental to become
states. The high level diagram is in Figure 11-36. For closed. The directed line connects open rental to
each path between these two states, we ask ourselves no/closed rental, the event is pay late fees, and the
the question, What causes the change? First, what process is close rental.
causes the change from no rental to an open rental? We already know we have to create another level
Open rentals are created when a customer requests of detail to this diagram to be more specific about
a rental; this is the event for the line from no rental return date processing, but we also want to evaluate
to open rental. The process accompanying this event this diagram to see what else is required. Does this
is to create an open rental. diagram account for all rental states? The answer
Second, what causes the change from open rental is no. It does not account for situations when late
to no rental? Return of the video(s) and payment of fees are owed (in other words, if there is already
late fees can cause an open rental to be closed. There an open rental), and it does not account for updates
are two events in this statement, so now we ask our- for fees paid. So, we redraw the diagram to include
selves about the events' timing. Are all returns and these states.
Customer
Request
R
e
t
u
r
n
Pay Late Fees
Close Order
a complete view of an application. Objects are enti- the same data type class/objects, but are called by
ties to be automated. They are encapsulated with more than one class/object. Normal modules per-
processes which operate on them or which read form one action on data from one object. Polymor-
them. phic modules perform one action on data from many
Encapsulated class/objects may be identified for objects of differing data types. Object-process
creation of reusable, normal, or polymorphic mod- capsules are evaluated to determine their interrela-
ules. Reusable modules perform the same action on tionships. The interrelationships usually describe a
Study Questions 499
hierarchic network of relationships for which the solution space superset class
lower-level capsules inherit both the data and pro- specialization class supplier object
cesses of the higher capsules. Encapsulated class/ state transition
objects with multiple relationships have multiple state-transition diagram user object
inheritance from related higher capsules. subject class whole class
The declarative steps performed to develop an
object analysis include identification of class/ EXERCISES _ _ _ _ _ _ __
objects, identification of processes, class and hierar-
chy definition, definition of attributes of operations, 1. Complete the state-transition diagrams of the
definition of interobject messages, and class/object ABC Video rental processing application. Walk
state-transition definition. The procedural evalua- through the diagrams in class and discuss the
tions within each step consist of questions to be difficulties and alternatives you found in devel-
answered and actions to be taken based on the oping the state transition diagrams.
answers to the questions. 2. Perform an object-oriented analysis on the Eagle
Rock Golf League in the appendix. Develop all
lists, tables, diagrams, and pictures required to
REFERENCES _ _ _ _ _ __ document the requirements of the problem.
Berrard, E. v., An Object Oriented Design Handbookfor 3. Split the class into three teams. Have each team
Ada Software. Frederick, MD: EVB Software Engi- develop a second-level analysis of ABC Cus-
neering, Inc., 1985. tomerOnVideo maintenance using object-
Booch, G., Object Oriented Design with Applications. oriented analysis. Compare the resulting views
Redwood City, CA: Benjamin/Cummings Publishing of the application.
Company, Inc., 1991. 4. Debate this assertion: Object orientation is more
Coad, P., and E. Yourdon, Object-Oriented Analysis. likely than process or data methodologies to
Englewood Cliffs, NJ: Prentice-Hall, 1990. lead to well-defined modules which automati-
Coad, P., and E. Yourdon, Object-Oriented Design. cally deal with problem complexity by hiding
Englewood Cliffs, NJ: Prentice-Hall, 1991.
information, being single-purpose, and having
Graham, Ian, Object-Oriented Methods. Reading, MA:
minimal coupling.
Addison-Wesley, 1991.
Taylor, David, Object Orientation and Information
Systems: Planning and Implementation. NY: John
Wiley & Sons, 1992. STUDY QUESTIONS _ _ __
1. Define the following terms:
class meta-class
KEY TERMS _ _ _--._ _ class/object multiple inheritance
abstract data type (ADT) meta-class encapsulation object
attribute Moore model inheritance
class multiple inheritance 2. Describe the sequence of events during
class hierarchy object analysis.
class/object object-oriented analysis 3. Compare the differences between the major
client object part class
forms of documentation in structured analysis
encapsulation polymorphism
generalization class primary key
and object-oriented analysis.
inheritance private part (of a class/object) 4. Compare the differences between the major
instance problem space forms of documentation in information engi-
instantiate process attribute neering and object-oriented analysis.
Mealy model public part (of a 5. Why is the summary paragraph in object-
message class/object) oriented analysis so important?
500 CHAPTER 11 Object-Oriented Analysis
6. Compare and contrast the definitions of 14. What is the relationship between a state-
objects, processes, and encapsulated objects. transition diagram and objects, processes, or
7. List the documents and graphics created in encapsulated objects?
object-oriented analysis and describe how they 15. What is the purpose of a graphical class
are related to each other. diagram?
8. What are the decisions you must make in
object-oriented definition of object hierarchies? EXTRA-CREDIT QUESTIONS
Why are they important?
1. What are the rules for identifying objects? Can
9. What rules in object-oriented analysis simplify
you think of others that might be useful?
quality control and review?
2. The steps that use nouns and verbs to identify
10. How do you determine that the allocation of
objects and processes, respectively, have been
objects to processes is correct? What are the
criticized as too simplistic. Can you think of a
questions asked, and why are they important?
different approach to identifying objects and
11. What is polymorphism? What is its importance
processes, perhaps borrowing from another
in object orientation?
methodology, that improves on the process?
12. What is the purpose of a state-transition
diagram?
13. Describe the development of a state-transition
diagram.
502 CHAPTER 12 Object-Oriented Design
Hardware
Data .~~
~.- - ~
Human
Interface
'--------' ~ ~ ~
Software
is the entire application as currently defined. As the Booch with that of Coad & Yourdon. Keep in mind
prototype is examined, further details of operation that while the terms are fairly well-defined, the man-
are explicated for incorporation in the next iteration ner and order of implementing the steps is not. The
of the prototype. Following the format of previous documentation created by these steps is summarized
chapters, we first define terms used in the OOD in Table 12-1.
process, then move on to developing guidelines for In the first step, problem domain objects are
each step and an example of the step and thinking assigned to one of the human, hardware, software, or
processes for ABC Video's rental application. data subdomains. The human subdomain defines
human-computer interaction in the form of dia-
logues, inputs, outputs, and screen formats. A dia-
DEFINITION OF _ _ _ __ logue is interactive communication that takes place
between the user and the application, usually via a
OBJECT-ORIENTED _ _ __ terminal, to accomplish some work. A dialogue
DESIGN TERMS _ _ _ __ defines actions of users and actions of the application
and hardware. Inputs (i.e., data entry), outputs (e.g.,
The seven steps to performing an object-oriented reports), and screens are the three modes of com-
design are: munication used for a dialogue. The task being per-
formed is usually a transaction relating to a business
1. Allocate objects to four subdomains, includ-
event (e.g., sale of goods), but could also relate to
ing human, hardware, software, or data.
application-generated events, such as sensor read-
2. Develop time-event diagrams for each set of
ings in process control or a data request in a query
cooperating processes a.'1d their objects.
application. A screen design alone is a static defini-
3. Determine service objects to be used.
tion of field formats while the dialogue is a series of
4. Develop Booch diagrams.
interactions that takes place via a dialogue.
5. Define message communications.
The hardware subdomain defines object assign-
6. Develop process diagram.
ment to physical processors or firmware. 2 The hard-
7. Develop package (i.e., module) specifications
and prototype the application.
2 Firmware refers to software that is permanently on a program-
In this section, we define the terms used in these mable chip and that processes significantly faster than
steps, again integrating and extending the work of memory-resident software program code.
Definition of Object-Oriented Design Terms 503
.--___~I Concurrent L-
I Process 1 I
- 1 - - - - - - - l1 Synchronizing I
I Process
L..-_ _ _~I
r Concurrent
Process 2
1t--"
Scheduling is the process of assigning execution chronizing and scheduling objects are used. If many
times to a list of processes. Scheduling objects can users are supported concurrently, multitasking
be for sequential, concurrent-asynchronous (i.e., objects are added to the other types.
independent), or concurrent-synchronous (i.e., de- After service objects are identified, the next step
pendent) processes. In the terminology of COBOL, is to begin to develop a Booch diagram. A Booch
scheduling objects are analogous to a mainline rou- diagram depicts all objects and their processes in
tine (see Figure 12-3), but the scheduler performs the application, including both service and problem
many functions beyond those of a COBOL mainline. domain objects. First, a draft diagram is created.
Multitasking is the simultaneous execution of Then, several message passing schemes are evalu-
sets of processes (see Figure 12-4). Each set of con- ated. After a message passing scheme is identified,
current processes is called a thread of control. message contents are defined.
These threads are initiated by the scheduling objects The basic graphical forms used are rectangles and
and controlled by multitasking objects. Multitask- ovals (see Figure 12-5). Vertical rectangles signify a
ing objects track and control the execution of mul- whole package. A package in OOD is a set of mod-
tiple threads of control and can be in both the ules relating to an object that might be modularized
problem domain and the service control domain. for execution. Service packages are single purpose
These three types of service control objects provide and do not usually have subparts that are visible to
the structure within which problem domain objects the rest of the application. Service objects have no
execute. visible data, that is, no oval identifying a data part
Service object definition is based on time-event to the object. Problem-domain packages have data
diagram analysis. If all objects are sequential and identifiers for objects and processes. The object in
used one at a time, then only scheduling objects are the oval and the process names are each in their own
required. If concurrent processing takes place, syn- horizontal rectangle (see Figure 12-5). In Figure
12-5, the lines connecting modules show allowable
paths for messages.
Next, messages are defined. A message is the
only legal means of communications between en-
Get object capsulated objects. Messages are clear in their
Get memory location
Store object intention, but not clear in their implementation
Enqueue object which is completely determined by the language. For
Dequeue object
Set time
instance, at the moment, Ada does not implement
Check time message communication. In this text, a message is
Stop time the unit of communication between two objects.
Messages contain an addressee (that is, the object
providing the process, also called a service object),
FIGURE 12-3 Scheduling Object Functions and some identification of the requested process.
Definition of Object-Oriented Design Terms 505
Multitask Manager
Transn
Messages may be unary, binary, or keyword (see ments (that is, variable object names or addresses
Figure 12-6). Unary messages contain only an upon which the service is performed). Keyword
addressee and service identifier. Binary messages messages contain addressee, service identifier, and
contain addressee, service identifier, and two argu- one or more keywords, each with an argument
Control Object
I Customer Create
to show optional process selection. Message defini- the design, only the last steps in an iteration of
tions probably will expand as languages capable of the design process which may have several itera-
expressing and processing object-oriented designs tions. As a result of prototype development, other
develop. service objects might be recognized as needed.
The next step is to develop a process diagram Iterating requires review of all design steps and
that defines the hardware environment and shows redoing analysis as required to support develop-
process assignments to hardware. The first activity is ment of a complete application prototype for each
to draw a hardware configuration showing proces- iteration.
sors (sh,adowed boxes in Figure 12-7) and devices Package specifications define the public inter-
(plain boxes in Figure 12-8). Lines connecting face for both data and processes for each object, and
processors identify allowable message paths. At this define the private implementations and language to
summary level, multiple messages may travel be used. The public interface is that part of the data
each path. and process definitions visible to all objects in the
When the process diagram is complete, the Booch application. The private interface describes the
diagram is divided and redrawn for each processor in physical data structure and actual functions (i.e., data
the configuration. These subdiagrams show the manipUlations, calculations, or control processes) to
extent of replication in the application and may iden- be coded for the application. Multiple implementa-
tify new service object needs to control interproces- tions of the same function that operate on different
sor communications. The message list is reexamined data types might be required. The function that has
to ensure that all interprocessor messages are one name but multiple implementations is called
accommodated and complete. For multiprocessor polymorphic. Polymorphism, is the ability to have
applications, the timing of processes is reverified to the same process, using one public name, take dif-
ensure correct definition. ferent forms when associated with different objects.
U sing the information from the problem domain One item in a package specification is a definition
analysis and the OOD diagrams describing object of the language to be used. Process timing (i.e.,
interrelationships and timing, the next step is sequential or concurrent) and a need for poly-
to develop package specifications and prototype morphism determine the type of implementation
the application. These are not the last steps in language required. Some languages are more con-
Definition of Object-Oriented Design Terms 507
Printer
PC001 -
""" PC002 -
PC005 - Manager
File Query,
Server Store Sales
PC006 -
Gateway
PC004 - PC003 -
Gas Sales Gas Tank
Monitoring
\
Gas Pump Gas Tank
Sensors Sensors
straining than others. To understand these language you request the translation of the supplier object and
differences, binding and client/server relationships pass it the date to be translated. If the language sup-
should be understood. Binding is the process of ports dynamic binding, you also pass the data type of
integrating the code of communicating objects. the date (for example, binary string or packed
Binding of objects to operations may be static (fixed matrix). This shift, to client/server logic, plus the
at compile time), pseudo-dynamic (parameter notions of inheritance and dynamic binding, support
driven and decided at the beginning of a session), or the use of polymorphism.
dynamic (decided for each object while the system Let's return to the idea of binding and work our
is executing, that is, at run time). way through these ideas and how they work together.
A major difference between object orientation In most business applications, we think of processes
and other methodologies is the shifting of responsi- as always operating on the same type of data. For
bility for defining the data type of legal processes example, items on an order have an order quantity
from server (or called) objects to client (or calling) (for example, 2), quantity type (for example, each
objects. A server object is one that performs a or dozen), and price (for example, $1.20) that is
requested process. A client object is one that expected to match the quantity type. To compute the
requests a process from a supplier. For instance, you line item total, we multiply quantity times price for a
might need to translate a date from month-day-year given quantity type. But what if the type quantity is
format to year-month-day format. As a client object, not known beforehand and the formula must change
508 CHAPTER 12 Object-Oriented Design
c++ environment that is completely object-oriented. a DBMS and usually an object-oriented one that
Without both discussions, the view of object orienta- includes the properties of persistence, inheritance,
tion that you would get is not complete, and some and abstract object-oriented data definition. Some
of the discussions would be inaccurately stated for authors assume use of an SQL-compatible database
object-oriented design. with an equally unobject-like language, recommend-
ing that the data functions should be separated from
the application which will maintain its object-like
Allocate Objects to properties for all non-data operations. .
Four Subdomains Keep in mind that this is an inexact process that IS
highly dependent on the implementation language
Heuristics for Allocating Objects to and the implementation environment. For example,
Human, Hardware, Software, and Data if we were using Smalltalk, in which everything is an
Subdomains object, separation of data access and manipulation
is usually more efficient than keeping the functions
The first step is to allocate the problem domain
all together. Conversely, if an OODBMS, such as
processes to one of the subdomains: hardware, soft-
Gemstone, were used, the DBMS object performs
ware, data, and human interface. Each process and
the physical CRUD actions and the applica~ion
the data it requires from its object 3 are examined to
objects usually control the logical CRUD functIOns
determine whether they are best implemented as part
that are grouped by object. The key idea is that judg-
of the human interface, hardware, software, or data
ment on allocation of functions is required and needs
subdomains. There is no particular order to the allo-
to be done with knowledge of the entire implemen-
cation process. It is recommended to allocate the
tation environment.
software domain last, because it is the default for all
If the application needs to use a nonOODBMS,
processes not allocated elsewhere. Since these
then evaluating whether data integrity, security, and
implementation alternatives are usually not broken
access controls can be adequately maintained by not
apart by other methodologies, and since hardware is
using the DBMS language is required. If the appli-
usually completely ignored, the consideration of
cation can both perform the functions faster, and pro-
these subdomains and explicit allocation of objects
vide for integrity and so forth, then there should be
to them provides useful detail that is explicitly docu-
a real analysis of where the functions should be. The
mented for maintenance. Also, since hardware
application requirements for execution and response
options are becoming more numerous and common
time may force use of a programming language
(e.g., automated teller machines have local intelli-
when constraints are tight, and default to use of the
gence and some of the application code for deposit
DBMS language when there are no constraints.
and withdrawal processing), this mechanism accom-
Table 12-2 summarizes this discussion, showing
modates hardware and firmware in design decisions.
that allocation of physical and logical read, write,
We will discuss data first, because current guide-
and delete actions and the control over security,
lines demonstrate some of the shortcomings of cur-
integrity, and access be tied to constraints and t~e
rent OOD writing. Booch suggests that standard
type of database environment used. If no DBMS IS
database activities should be assumed to be under
used, the alternatives are either to allocate DBMS
the control of the data domain, including create,
functions to each object, or to design data control
retrieve, update, and delete processes (i.e., CRUD).
objects that perform DBMS functions, or to design
All other data manipulations or computations are
a polymorphic reusable object that performs all
allocated 'somewhere else.' Coad & Yourdon, and
DBMS functions.
most authors published after 1992, assume the use of
We said before that DBMSs illustrate the problem
of all authors in object-oriented design. For the most
3 Superset objects, class/objects, and objects are all assumed in part, 00 authors do not work in commercial busi-
the use of the tenn object. ness and do not build commercial applications; they
510 CHAPTER 12 Object-Oriented Design
Legend:
work in defense-related businesses and build real- A similar problem occurs in the hardware
time, embedded applications which function as part domain. Object-oriented authors most often are
of some larger system. For instance, defense appli- designing state-of-the-art hardware as part of their
cations might include building a guidance system for application design including customized operating
a missile, a monitoring system for airplane radar, or systems and software. Most business applications
a reporting system on the Hubble microscope. These use off-the-shelf hardware that is generalized in
applications all have no persistent data; rather, they function and has many user features. The only cus-
work on sensor data and pass on the informa- tom development in most business applications is
tion they filter for processing or feedback by other the application software itself. So, the design prob-
systems. lem with hardware is opposite that of DBMSs. For
The problem with applying embedded-system hardware, the methodology authors do more detailed
thinking to persistent object problems is that there levels of development than is necessary in most
is little overlap in designing for temporary and business applications. You will see this problem
persistent data. Persistent data and, in particular, again when we discuss service object definition.
DBMS-stored persistent data, have entirely differ- Now let's consider allocation of functions to the
ent thinking processes that the computer-scientist other subdomains. The human interface is exactly
authors of most object-oriented methods do not rec- what you think it is, the interactions with people,
ognize. Because of this lacking recognition, these usually through a terminal device, that provides the
heuristics on object allocation are more crude than essential inputs and outputs of the application. The
those of, say, process methods which have been tried human interface is discussed poorly in the OOD
for the last 20 years. books that do exist (including all of those in the ref-
Object-Oriented Design Activities 511
erences of this chapter) because of the traditional entered because that requires access to a database
lack of human users in object-oriented applications. that is not stored locally. In addition, specific hard-
Because of this lack, they are discussed in Chapter ware functions, such as accepting a deposit enve-
14 as one of the 'forgotten activities' of systems lope, are functions that would be allocated to
analysis and design. hardware.
In general, the activities that provide human Allocation of processes to hardware/firmware is
interface control, such as screen interactions, are rec- determined by the need for fast response time, min-
ommended to be relegated to the human component imum communication delay, and minimum process-
of the application. Again, there are no compelling ing time. Whenever any of these three constraints are
reasons for blindly making this decision, therefore present in an application's functional specification,
it is subject to analysis. Activities that can be hardware process allocation should be investigated.
grouped across objects, such as line control, error Some authors recommend that allocation to hard-
message display, and screen reads and writes can all ware can include functions to be performed by the
be abstracted out of the individual objects and placed resident operating system. When there is access to
in reusable, generic objects. The actual editing of these functions and they can be used as generics, this
data from screens should remain with the original is a useful, time-saving idea. So, for instance, in
object unless there are sufficient similarities across systems such as Unix and Smalltalk, where the
screens and data items to warrant abstracting them environment, operating system, and application are
out as well, or unless the functions will be assigned essentially inseparable, thinking of operating sys-
to human interface hardware. To perform this ab- tems and hardware as one simplifies design thinking.
straction requires listing all the detailed, primitive Finally, we have allocation of processes to soft-
actions required of screen interactions for each ob- ware. This allocation assumes that all problem-do-
ject, identifying which actions are performed auto- main processes not already allocated elsewhere will
matically by the DBMS or other application be implemented in software in the software domain.
software and removing them from the list, and re- This allocation includes remaining service and prob-
evaluating the remaining items to determine whether lem domain objects after the other allocations are
or not there are commonalities across objects. complete. Now, let us tum to ABC Video to see what
This primitive level of detail may be deferred allocation means in this application.
automatically when you relegate all screen interac-
tions to the human interface. This deferral allows ABC Video Example of Subdomain
you to build the interface during proto typing even
Allocation
though you may not know all of the primitives dur-
ing the first iterations. In other words, allocating ABC's rental application will be an interactive, mul-
screen interactions to the human interface is a means tithread set of processes which will service up to six
of deferring detailed design decisions until initial threads of control, with growth to some higher num-
prototype development. ber. Therefore, the concurrent processing require-
The more distributed devices and processors, the ments of the application should be considered when
more likely that processing might be allocated to allocating processes to subdomains to ensure that
firmware embedded in otherwise unintelligent timing requirements will be met.
devices. For instance, automatic teller machines To refresh your memory, we had decided to use
include some intelligence for editing magnetic strip an SQL-compatible database to implement the
information from the cards used for withdrawal and application. We can interface the SQL language
deposit of funds from banks. They can, for instance, with other languages, but, as is typical of most
tell what type of card, such as Visa, is being used, DBMS software, all data accesses must go through
and whether or not the personal ID number (PIN) is the DBMS. This implies that the create, retrieval,
a valid combination of digits. They cannot tell update, and delete (CRUD) functions will all be
whether or not the PIN matches the card number allocated to the data subdomain as discussed above.
512 CHAPTER 12 Object-Oriented Design
By doing this allocation, we explicitly are decid- objects. Time-ordered event diagrams show neither
ing what is and is not object-oriented. SQL is not flow of control nor if-then-else logic. These dia-
object-oriented. Therefore, any functions performed grams are showing what can happen in time, includ-
in SQL are not object-oriented. The design can pro- ing required timing. The time-order event diagram
ceed in an object manner until the primitive level is becomes the basis for decisions about concurrent
reached, then the design is completed in SQL. processes and is helpful in identifying service-
If we look at the output from the analysis where object needs of the application.
we allocated objects to processes, we can identify all The diagram is a two-dimensional graphic with
those processes relating to these functions. Each objects listed down the left axis and time, broken
object has simple CRUD functions as well as a need into segments corresponding to events in the appli-
for CRUD functions on a user-view of the database cation, along the horizontal axis. For processes that
that incorporates Customer, Inventory, and VideoOn- might run concurrently, mUltiple lists of the objects
Rental. Eventually, for SQL implementation, we will are shown. Synchronization of concurrent events is
collapse the superset objects back with the class/ shown by the divergent lines returning to one event
objects and will control the use of add and read func- at some point (see Figure 12-9).
tions by logic in the SQL DBMS application code. Two formats for time-event diagrams are used.
Any access control on superset objects is controlled One shows deviations from an otherwise horizontal
by the DBMS. line with events and critical times demarcated by
Figure 11-20 processes are listed in Table 12-3 vertical bars (see Figure 12-10). The other format
with their subdomain allocations. First, consider the shows rising steps to mark events and critical time
data subdomain. From Table 12-2 we know that we slots within the main object (see Figure 12-11). If
can allocate the data functions based on application one diagram per transaction is created, the rising step
requirements. We are using a non-object DBMS and method is preferred because it is easy to see the
have no constraints on processing. Part of the attrac- points of change. If one diagram per application is
tion of the fourth generation database is its ease of drawn, the information can be presented more com-
use, therefore, anything that can be allocated to the pactly with the horizontal line method.
DBMS should be. As Table 12-3 shows, all CRUD
functions are allocated to the data function. Simi-
larly, printing, which interfaces with external
devices, is allocated to hardware. Print control is
allocated to hardware because in aLAN, spooling
and printing are network operating system functions Rewrite old VideoOnRental r--
that are not under application control.
All data entry functions are allocated to the Write new VideoOnRental ~
EnterCustPhone X
ReadCust X
CreateTempTrans X
Retrieve VOR X
DisplayTempTrans X
EnterBarCode X
Retrievelnventory X
ComputeTempTransTotal X
EnterPayAmt X
ComputeChange X
DisplayChange X
Updatelnventory X
WriteVOR X
PrintTempTrans X
EnterBarCode X
Retrieve VOR X
DisplayTempTrans X
AddRetDateTempTransVOR X
AddltoVlnv X
Updatelnventory X
ComputeLateFees X
WriteVOR X
EnterCustomer X
Create Customer X
EnterVideolnventory X
CreateVideolnventory X
Diagram segments are defined as event-driven or event-driven segments, the event is identified on the
clock-driven. For time-constrained segments of the horizontal axis. Actual drawing requires knowledge
diagram, the allowable maximum time is labeled of the problem domain requirements for processing.
along the horizontal axis (see Figure 12-12). For The steps to creating a time-event diagram are:
514 CHAPTER 12 Object-Oriented Design
Object 1
Object 2 U U
Object 2
Object 4
I I I I I I I II I
I T I I I I I II I
O------------------------------~~~
Time / Events
E10 E11
E3 E4 E5 10 ms
15 ms
Object 1
Object 2
Object 2
Object 4
O------________________________ ~~~
Time / Events
En = Event identifier
OBJECT Display
Cust -10 ms
Retrieve
Cust -15 ms I
~~~~e
Customer
Mreate
I---~Cust I
I
I
Display
I Retrieve
Order
Order
Order History
I History-
History
I 15 ms I Get Purchase
Purchase
Items
Retrieve
Inventory I Inventory
I I I I I I
I 15ms I 15ms I I I I
Time-Constraint - _ _ _ _-'
o
• Time
object. Some objects, such as TempTrans, have pro- 2. When the NumberOfCopies is entered, add
cesses that relate to more than one transaction, while the new video infonnation to Videolnventory.
other objects each have processes that reflect one Begin prompting for BarCodeld until the
transaction, such as for Customer. number of bar codes is equal to NumberOf-
Of the transactions shown, we will discuss two Copies.
that are representative of the others: video inven- 3. As each BarCodeId is entered, add the
tory additions and rental processing. new BarCodeVideo entry to the data-
First, we describe what happens for a Video- base.
Inventory addition. This step requires detailed 4. When the number of BarCodelds entered is
knowledge of the specific processing to be per- equal to NumberOfCopies, signal completion
formed. This knowledge comes from user inter- of the transaction to the clerk and end
views, study of current procedures, and so on. processing.
Subprocess details should be based on the process-
Figure 12-13 shows the time-event diagram for
object assignment list (Figure 11-20). If there are
the processing steps about video inventory creation.
discrepancies between the use of objects here and
Notice that two objects are involved: Videolnventory
the list, the list should be revised to reflect this more
and BarCodeVideo. Even though Videolnventory
detailed level of thought. The steps to adding inven-
is begun first, its processing is completed before
tory are:
BarCodeVideo processing takes place. The processes
1. Enter a new VideoId and remaining infonna- are related in that the Videold is passed to the
tion for a particular film. BarCodeVideo process, but they are otherwise
516 CHAPTER 12 Object-Oriented Design
TABLE 12-4 ABC Transaction List 4. Get all current outstanding rentals (i.e.,
either unpaid late fees or unreturned
Object Transactions rentals).
5. Compute LateFees on returned tapes.
Customer Create 6. Compute TotalAmountDue.
Retrieve 7. Display all information.
Update
8. Process returns and redo steps 5-7 until no
Delete
more returns.
Videolnventory Create 9. Get VideoIds of new rentals until end of
Retrieve transaction is signaled. For each, get
Update VideoInventory and BarCodeVideo informa-
Delete
tion; format and display the relevant
BarCodeVideo Create information; recompute and display Total-
Retrieve AmountDue.
Update 10. At transaction end, process payment and
Delete make change until TotalAmountDue equals
VideoOnRental Rental without Returns zero.
Rental with Returns 11. Write new VideoOnRental entries; update
Returns without Rental and rewrite old VideoOnRental entries; print
Returns with Rental TempTrans; update and rewrite BarCode-
Video History Create Video as required; end transaction.
Retrieve
Customer History Create The first event, data entry, results in one of two
Retrieve possible processes being invoked. These are shown
with dotted lines on the diagram to show that only
EndOtDay Create
one is running at a time. If the VideoId is entered,
Retrieve
then we have a choice to either nest getting the cus-
Delete
tomer or transfer control. If we transfer control, the
video information must have been stored in mem-
ory for the first VideoOnRental to avoid passing
unnecessary data. If we do not transfer control, and
independent. There is no necessary concurrency
nest retrieval of customer information, then the cus-
within the transaction.
tomer information is unnecessarily passed through
The rental transaction shows that several pro-
the retrieval process for VideoOnRental. The best
cesses might be concurrent. First the steps to com-
object-oriented decision would be transfer control
pletion of a rental process are:
to maximize information hiding here, but we can
1. Get the entry and determine its type (either treat these accesses as one if the DBMS supports a
CustomerPhone or VideoId). user view that links the relevant information. SQL
2. If the entry is CustomerId, get all relevant DBMS does provide user views and we select that
customer information (e.g., name, address, option. (Make sure you read the appendix for true
and so on). object-oriented design of this information. It is
3. If the entry is VideoId, get the corre- significantly different.) Once VideoOnRental is
sponding VideoOnRental and place it in accessed, then, the related information from Video-
memory. Inventory, BarCodeVideo, and Customer are all
Use Customerld to get all relevant cus- present automatically (see Figure 12-14).
tomer information (e.g., name, address, and Eventually, we loop through getting all current
so on), outstanding rentals from VideoOnRental. This itera-
Object-Oriented Design Activities 517
Create
BarCodelnv.
Get
BarCodeld
I
BarCodeVideo
Time
tion can be programmed to run until a return code in- that contains the relevant information. Again, SQL
dicating no more videos on rental are present. This allows user views, and we use the user view that col-
return code, then, becomes the event to trigger the lapses this activity from two to one. As each video's
next step of the process. information is displayed, the TotalAmountDue is
Control is passed to compute Late Fees on re- recomputed and redisplayed.
turned tapes that will require a count of the number Upon receiving the trigger that the rentals, or
of VideoOnRentals in memory to be maintained and returns, are complete, payment processing takes
passed to control this process. Having processed late place and continues until TotalAmountDue equals
fees until this count is reached triggers the next step zero. At that time, all of the VideoOnRentals, Bar-
to compute TotalAmountDue. This is a one-time CodeVideo locations, and video history counts (for
event at this point, and its completion leads to dis- returns) are updated. These are once again assumed
play of all current customer and rental information to be in the same object as a result of having user
on the user screen. view capabilities in SQL.
At this point, if there are new rentals, the Bar-
Codelds are entered. This triggers obtaining Bar-
Codelnventory and Videolnventory information. To Determine Service Objects
simplify memory processing, we have a choice sim- Guidelines for Determining Service
ilar to that above for customer and VideoOnRental in
Objects
step 3. In this case, the decision is between treating
BarCodeVideo and Videolnventory as separate and Service objects perform background scheduling,
independent or nested or the same. In order to treat synchronizing, and multitasking control for the ap-
them the same, we must be accessing a user view plication. The activities performed by some service
518 CHAPTER 12 Object-Oriented Design
14
12
OBJECT
11 .---"";"'::;""---i
10
9
TempTrans 3
Customer
VideoOnRental 4
VINV
13
12
BCVideo
o--------------________________________~. End
Trans
Time / Events
objects are analogous to those of an operating sys- Job management routines initiate processing for
tem in a mainframe environment which provides job individual applications. In multitasking applications,
management, task management, memory manage- that means that the first scheduling tasks are loaded
ment, I/O management, and data management. For and turned over to the task management routines for
that reason we will digress a minute to discuss these execution. In mainframes, there are multiple jobs,
operating system functions, relating them to service sometimes as many as 50, executing concurrently.
objects. 4 The job management routines keep track of all jobs
active in the system.
4 This discussion is necessarily short. For further infonnation
The task manager monitors and tracks individual
see Per Brinch Hansen, The Architecture of Concurrent Pro- steps within a multistep set of sequential processes
grams, Englewood Cliffs, NJ: Prentice-Hall, Inc., 1977. (i.e., a job). Task management is similar to monitor-
Object-Oriented Design Activities 519
ing done for multiple threads of control for concur- File Manipulation:
rent processes. The work of job and task manager
• Create/delete file
routines are similar and include:
• Open/close
• Read, write, reposition
• Load, schedule, execute
• Get/set file attributes
• End, abort
• Get/set process attributes Device Management:
• Create/terminate process
• Request/release
• Wait for time
• Read, write, reposition
• Wait/signal event
• Get/set device attributes
• Get/set process attributes for jobs, files, or
system data These tasks are usually provided in primitive
form by the operating system and in a more abstract
Multiple-thread management requires both job form by a DBMS. The more sophisticated the soft-
and task management. Think of individual transac- ware environment, like a DBMS, the more likely the
tions as analogous to jobs to be managed, and of services are provided by the environment.
individual steps to completing a transaction as tasks, Finally, memory management keeps track of the
or processes in OOD terminology. The job manage- location of each item, in random access memory
ment, transaction routines manage whole transac- (RAM). Recall that all data and programs must be
tions, and task management routines manage atomic memory-resident to be executed. In dynamic appli-
processes to perform the transaction. cations in which modules and data are being moved
Monitoring of individual processes (or transac- into and out of memory constantly, memory man-
tions) and sequences of processes, one per thread, is agement is a crucial function. The main functions
accomplished either by stacks (sometimes called provided by the memory manager include:
heaps) or queues, depending on the operating system
• Allocate/delete memory (can be dynamic or
software. The stack commands are push to add
static)
something to the stack and pop to take something off
• Track used and free memory location by task
the stack. The queueing commands are enqueue and
• Track used and free memory within each
dequeue, to add and delete items, respectively. The
task's allocation
stack (or que) items, in multithread control, include
• Garbage collection (identify and erase or
the name of the task, its current execution status (i.e.,
write-over unused objects)
running, idle, or waiting), and the address of the next
command to be executed. One set of stacks is man- All operating system management is accom-
aged for each transaction, and one set is managed for plished by cooperating processes that use event-
each process. Stacks operate on a last-in, first-out driven interrupts to provide services in the system.
principle while queues are first-in, first-out. Interrupts at the operating system level are called
Similarly, the I/O manager and data managers act supervisor calls (SVCs). The implementation of
together to perform physical inputting and out- SVCs differs across operating systems. 5
putting of information to central processing unit
(CPU) memory. The I/O manager interacts with ter-
minals, printers, and other devices that are moving 5 For a more complete treatment of this information, see any
information physically into and out of the computer. operating systems text. Some good ones include A. J. van de
Goor, Computer Architecture and Design, Reading, MA:
The data manager interacts with secondary storage
Addison-Wesley Publishing Company, 1989; Anthony P.
devices, such as disks. The activities performed by Sayers, Operating Systems Survey, NY: Auerbach, 1971;
these managers include file manipulation and device J. Peterson and A. Silbershatz, Operating System Concepts,
management. The key activities include: Reading, MA: Addison-Wesley Publishing Company, 1983.
520 CHAPTER 12 Object-Oriented Design
Now, let's relate this operating system informa- TABLE 12-5 Decision Table for Service
tion to applications. All of these functions are Object Type Requirements
required for the three types of control provided
by service objects. If you are working in a Unix Problem Domain
or Smalltalk environment which already have Object Characteristics:
been used for application development, many of
these functions should already be available for reuse. Sequential y y
If you have to write your own, you need to test and Concurrent N N y y
retest these functions very thoroughly to en- y
Multiuser N Y N
sure proper application functioning. In any
case, you need to decide which of the service object Service Objects
functions are needed and provide them for your Required:
application.
The steps to identifying the service objects are: Scheduling x x x X
OBJECT
TempTrans 3
Customer
VideoOnRental
VINV
BCVideo
o----____________________ ~~ ________ ~
Even though we have removed concurrent object reusable library; therefore, any modules would need
processing from the diagram, we still have both specification and development.
transaction level and process level service object
requirements. Transactions and processes all need
scheduling, including processes that load, store in Develop Booch Diagram
memory, initiate, terminate, monitor events, and
Guidelines for Developing Booch Diagram
possibly provide message communications between
objects. Booch diagrams, also called module structure dia-
This list is compared to our target operating grams, provide a graphical summary of the class and
environment: SQL on a PC LAN running Novell object information in the entire application. The
Netware.™ The services are all provided transpar- icons for drawing the diagram ate shown in Figure
ently by the operating environment and are not 12-16 with service objects in vertical rectangles with
needed to be developed in primitive form for ABC's no other detail beyond their name, and problem
application. Even though the target environment is domain objects in vertical rectangles with smaller
not object-oriented, the need for service objects dis- ovals to identify the object and horizontal rectan-
appears because these are all services provided in the gles to identify the individual processes. One dia-
operational environment. gram connecting the domains as required is drawn;
The next step is to examine a current library of then one Booch diagram for each subdomain (or for
reusable objects for use as problem domain pro- the whole project if it is small) is developed.
cesses. Since ABC's environment is new, there is no The steps to drawing a Booch diagram are:
522 CHAPTER 12 Object-Oriented Design
Package
Service Object
1. Draw the Booch icons (see Figure 12-16) ing, synchronizing, and multitasking within subdo-
relating to service and problem domain main. The service objects described in the previous
objects. section are shown with sub domain grouping in Fig-
2. Evaluate and choose a scheme for connecting ure 12-17.
the objects via messages. Problem-domain objects are obtained from the
3. Draw lines between objects to signify the process-object assignment list developed during
legal message connections. analysis. This table is now reversed with the infor-
4. Define message processing scheme. mation arranged by object for this diagram. During
the reversal process, a reevaluation of process-object
Service objects selected for controlling applica- assignment should be made to ensure that the pro-
tion operations are arranged by personal preference, cesses are associated correctly with their necessary
but can be grouped by function performed: schedul- objects. Subdomain groups may be maintained on
Object-Oriented Design Activities 523
Data Human
Process Security/Access
Management
Load/Release/Monitor Processes
Provide Message Communication
between Objects
Application Objects
the diagram which means that we may have new There is no one right way to do message passing, but
superset objects to define the split between objects there are definitely some methods that are better than
for subdomain processing. others. We will walk through a reasoning process for
Processes that are candidates for generic, reusable message passing definition in the ABC Video exam-
object development should be marked consistently ple. In general, the goal of messages are
in some way, for instance by bold or italic print to
identify them visually. A quick glance at the diagram 1. To accomplish the application's tasks.
gives the viewer a sense of the extent to which 2. Pass minimal information and pass only to
reusable objects and processes are being leveraged objects requiring information.
in the application. 3. Minimize the potential for bottlenecks.
After the icons are drawn, they are played with 4. Maximize the potential for application
to evaluate different message passing schemes. throughput.
524 CHAPTER 12 Object-Oriented Design
The evaluation of alternatives is to determine the annotated for further analysis. Figure 12-18 shows
best throughput scheme of message passing without two different configurations for a simple application.
creating bottlenecks, wbile accomplishing the first You can see how, if you have 20 or 30 objects, the
two goals. Booch suggests a 3x5 approach to this 3" x 5" method simplifies evaluation of message
evaluation in which, rather than drawing the diagram passing schemes.
icons on paper, the information for each object is All further alternative configurations are evalu-
written on a 3" x 5" card. The cards are arranged spa- ated to determine message traffic. Message traffic is
tially in different configurations on a large piece of the number and direction of messages in the system.
paper with lines drawn to signify the required inter- Overall, the goal is to minimize the number of mes-
object message communications. When a configu- sages passed for any single transaction, while not
ration is identified that might be useful, it is overloading any single object with message traffic
Object-Oriented Design Activities 525
related work. 7 The minimum number of messages is object contains the data and problem domain pro-
n-l, where n is the number of packages needing cesses that are the core of rental processing.
to communicate in the application. That is, once Next, we try different configurations of the
initiated, each package must communicate with objects to develop a message passing scheme that
at least one other package. The centralized message will provide necessary processing and information to
control scheme shown in Figure 12-18 shows an called objects, while minimizing the communica-
example of n-l messages. The arrangement with tions overhead in the application. Figure 12-20
the best message traffic configuration is selected shows one reasonable message passing scheme that
for prototype development, and the design process follows the logic of processing. The scheduling
continues. object passes control to the interface object which
has some choices. The interface object could pass,
ABC Booch Diagram for instance, a CustomerPhone to either TempTrans
or Customer to initiate rental processing. If the pass
Before we can develop a Booch diagram, we need
is to Customer, it could return and pass the customer
to digress and redefine some application needs to fit
information to Temp Trans , or Customer could con-
the SQL environment. 8 The drawing of packages
tinue and initiate TempTrans directly. You see how
normally assumes no consolidation of functions or
the options can build and get complex. We will opt
data via user views, but we have collapsed our pro-
for a fairly traditional scheme in which the Inteiface
cessing to take advantage of SQL features. There-
will pass any rental transaction data to TempTrans
fore, Table 12-6 shows the effects of user views on
which will determine what to do with it. This deci-
data domain processes: the 11 data processes are
sion is reflected by the line connecting Humanlnter-
now eight consolidated processes. The remaining
face with TempTrans.
subdomains are not affected by the data changes.
TempTrans then initiates one of three data re-
First, we will draw the packages based on what
trievals: Customer, UserViewl, or UserView2. The
we now know to be the design of the application (see
data is returned and TempTrans continues process-
Table 12-6). There are four data packages: Cus-
ing. This method of passing provides the most
tomer, Videolnventory, UserViewl which includes
information hiding between objects, but could
VideoOnRental, VideoInventory, BarCodeVideo and
result in a bottleneck within TempTrans which is
Customer, and UserView2 which includes Video-
controlling all of the interobject communication for
Inventory and BarCodeVideo (see Figure 12-19).
the problem (e.g., software), hardware, and data sub-
The related processes for those data objects are
domains. This is a potential problem that would be
placed in horizontal rectangles in their respective
checked during prototype development.
packages.
The Humanlnterface object also communicates
There is one scheduling service object (which we
directly with Customer and Videolnventory for
may not need because of the environment) that
create processing which does not require Temp-
includes initiation and termination of the application,
Trans. All completed transactions, regardless of
user sessions, and transactions. There is an inter-
type, return to the Scheduling object to terminate
face service object to provide all display and input
the transaction.
from personal computers (see Figure 12-19). The
hardware service object contains only one process
for printing TempTrans. Finally, the TempTrans Define Message
Communications
Rules for Defining Messages
7 This would cause a bottleneck.
8 Don't forget to read the Chapter 12 Appendix for a complete The next step after the Booch diagram is to actually
discussion of object-oriented design using an object-oriented define message contents to provide interobject
development environment. interfaces for the application. A table is created to
526 CHAPTER 12 Object-Oriented Design
EnterCustPhone X
ReadCust X
CreateTempTrans X
RetrieveVOR X
(includes VideoInventory,
BarCodeVideo, and Customer)
DisplayTempTrans X
EnterBarCode X
Retrieve BarCodeVideo X
(includes VideoInventory)
Display Inventory X
ComputeTempTransTotal X
EnterPay Amt X
ComputeChange X
DisplayChange X
WriteVOR X
PrintTempTrans X
EnterBarCode X
DisplayTempTrans X
AddRetDateTempTransVOR X
Add 1toVInv X
Rewrite VOR data X
ComputeLateFees X
Write VOR data X
EnterCustomer X
CreateCustomer X
EnterVideoInventory X
CreateVideoInventory X
document the specific requirements of each message should come from the Booch diagram coupled with
(see Table 12-7). The objects that act as clients are the Process table generated during analysis that iden-
listed in the Calling Object column, service objects tifies objects with the processes that act on them. The
are in the Called Object column. This information Input Message column describes the data that is sent
Object-Oriented Design Activities 527
Customer
Videolnventory
TempTrans
Schedule Object
Human Interface
I
IEnter CustPhone I
I
IEnter BarCode I
I
Hardware Service I Enter PayAmount I
IEnter Custlnfo I
I Enter Video Inventory I
I
IDisplay TempTrans I
I
I Display Inventory I
I
I Display Change I
as part of the calling object message to be processed. logic when the called object does not return directly
The output message is the result data that is sent on to the calFng object.
(or returned) by the called object after processing. For each process-object pair defined in the Pro-
The columns Action Type and Return Object are op- cess Definition List, we will have one input message
tional. The action type describes the process to be to initiate processing and, if needed, an output mes-
performed in terms of CRUD or other processing. sage which reports the results of processing. The
The return object provides continuity of processing message list contains one column for each of the
528 CHAPTER 12 Object-Oriented Design
Customer
Videol nventory
TempTrans
User View 1
Schedule Object
Human Interface
types of information shown in Table 12-7. The steps process list are placed in the 'Input message'
to creating the message list are: column.
3. Next, decide both the 'Calling object' and
1. Make a table with headings as listed in other 'Input message' entries.
Table 12-7.
2. Refer to the list of all object-process These two definitions seem to go together be-
combinations. The objects from that cause as we define the input message, we know the
list are listed in the' Called object' information required to perform the process. Once
column. The processes from the we know the information to perform the process, we
Object-Oriented Design Activities 529
TABLE 12-7 Message List Contents This column usually refers to the calling object
which is ordinarily the object to which control
Header Contents returns, but some nested subprocess might take
place. When subprocessing occurs, the return object
Calling object Identifies the client. column identifies the next object entered to help
Called object Identifies the server. other software engineers understand the logic flow.
Input message Identifies the process to be Completeness and correctness review of the mes-
performed and any input sage list is done to ensure that each process-object
parameter data needed to per- pair has an associated message in the table and that
form the process, for instance, the calling/return objects are correct.
the data type for polymorphic
processes. ABC Video Example of Message List
Output message Defines the output to be First, we make a table with the above headings.
passed, if any. Then, referring to the process list that we used to
Action type Defines the process as Read, draw the Booch diagram, we list all object process
Read/Write, Write, Display, or combinations. The objects from that list are listed
Print. in the 'Called object' column. Make sure that all
Return to Identifies either the object to process-object pairs have one entry in the table.
which the result is returned or Next, we decide both the 'Calling object' from
a nested object for further pro- the Booch diagram and the 'Input message' for each
cessing, if any. entry (Table 12-8 shows the completed list). Then
the 'Output message' is completed for each entry.
As the output message is complete, we complete
each line with the 'Action' and 'Return Object'
definitions.
decide which object has that information to pass it Table 12-8 shows the message list for ABC's
on. This step determines much of the logical process application. It reflects the consolidated data objects,
flow from one encapsulated object-process to the messages decided during the development of the
another. The logical process flow defines the se- Booch diagram, and the details of information that
quence of processing in the application. must be provided for each object-process. Notice
4. Define the 'Output messages' by determining that many processes are called from within an
what type of information is required next object itself. This localizing of processing is desir-
from each process as it completes. For data able to simplify interobject communication and
ensure information hiding, but it also can encourage
entry type processes, frequently the output
development of nonobject-oriented designs. Make
message is only an acknowledgement of pro-
sure that each message contains all, and only, the
cessing (ACK = successful, NACK = unsuc-
information required to perform the process. Make
cessful). For some processes, no response
is required. sure that each message returns only the information
5. Complete the 'Action type' column. required by the client object.
The action type summarizes the type of process- Develop Process Diagram
ing for designers to determine possible implementa-
tion consolidation of activities, or to decide on Guidelines for Developing the Process
further allocation of processing to hardware, soft- Diagram
ware, or firmware.
A process diagram depicts the hardware configura-
6. Define the return object column. tion and the allocation of processes to processor
530 CHAPTER 12 Object-Oriented Design
TABLE. 12-8 Message List for ABC Video Rental Processing (Continued)
Calling Called Input Output Action Return
Object Object Message Message Type Object
t
Communication
Link
and printers as terminal devices (see Figure 12-22).
This allocation of work is a problem because it does
not take advantage of PC intelligence and, therefore,
is suboptimal in terms of benefits to be gained from
using PCs. Having said this, the allocation is con-
FIGURE 12-21 Process Diagram Icons strained by the software environment. If SQL sup-
Object-Oriented Design Activities 533
File Impact
Server Printer
Personal
Computer
physical implementation. If there are polymorphic methodology does lead to information hiding, mini-
definitions of a function, each version of the function mal coupling, and maximal cohesion by virtue of the
is defined separately, and the control mechanism for thinking processes. Object orientation requires good
interpreting the message and activating the appropri- understanding of operating system concepts, object
ate function is defined. Service objects should thinking, and interactions between services and
be used for this interpretation and activation if at applications. The design process, as the chapter
all possible. appendix shows, requires iteration and proto typing
The steps to package specification are: to get required levels of detail and to ensure efficient
processing of message traffic. Most important, object
1. Review the diagram/list set.
thinking IS NOT the same as entity thinking or
2. Redraw a subset of Booch diagrams, one per
as process and data methodology thinking. Object
processor in the process diagram, to depict
orientation requires a paradigm shift to be done
objects and processes by processor.
correctly.
3. Document packages.
Object orientation is not very object-oriented in
4. Design physical database if not already
an SQL implementation environment. The choice
designed.
of SQL changes the entire design from what it would
5. Develop pseudocode specifications for all
be in an object environment to be object-based. Like
processes and messaging handling routines.
COBOL, the methodology can be made to do any-
ABC Video package specifications are not cre- thing. Is this the best use of OOD? Not in my opin-
ated for this step as it is beyond the scope of this text. ion. Unless an application is at least on-line and will
be in an object-oriented environment, the work
required for object-oriented design is not worth the
WHAT WE KNow _ _ __ effort. Especially with a fourth-generation DBMS,
AND DON'T KNow _ _ __ like SQL, the undesign that must be done wastes
tremendous time and could result in a worse design
FROM OOA _ _ _ _ __ than use of some other methodology. While this
AND OOD _ _ _ _ __ compromise is acceptable for a small, on-line appli-
cation such as ABC, it would not be acceptable for
Object orientation, based on the contents of tables applications with real-time or more complex pro-
and diagrams, provides a detailed, reasonably com- cessing requirements. Much of the effort to develop
plete view of an application. Exceptions to this view an object-oriented design is wasted when the imple-
are human interface design and specific attention to mentation environment is not object-oriented. There-
database, input, and output design. Object-oriented fore, the choice of methodology should be driven
design is distinguished by three characteristics: by the expected implementation environment.
detail, all potential environments are accommodated,
and the need for an object-oriented implementation
environment to obtain the payoff from the exercise. AUTOMATED ____________
The extensive detail generated in object-oriented SUPPORT TOOLS FOR _ __
design leads directly to module specification which
should be straightforward since the definition of OBJECT-ORIENTED _ _ __
process details, the class/object data, constraints, and DESIGN _______________
message communications are all completely defined.
Object orientation, as seen by the exercise in the There are a vast number of object-oriented CASE
chapter, can accommodate even nonobject-oriented tools that have all come on the market in the last few
environments. The benefit of OOD's ability to years. Some are more complete in life cycle cover-
accommodate any application environment is that, age than others. Some environments, such as 001
for on-line, object application environments, the Tool Suite, cover most of a development life cycle,
Summary 535
001 Tool Suite Hamilton Technologies, Inc. Full life cycle multiuser
OOA, OOD, and code
generation tool for C or Ada
Actor Symantec OOD environment for
Cupertino, CA client/server applications.
Links to C and SQL databases.
Aide-De-Camp Software Maintenance and Configuration management
Development Systems software with support for
Concord, MA 00 languages.
BOCS Berard Software Engineering, Inc. Berard object and class
specification
C/Spot/Run Procase, Corp. Interactive, GUI environment
Santa Clara, CA for C language development
on Sun, HP, and Apollo
hardware
Design/1XO, Meta Software Corp. Data and behavior modeling
Design/IDEF, expressed in 00 C-language
Design/OA tool
DSEE, HP/Softbench Apollo/Hewlett -Packard Integrated CASE Product
Palo Alto, CA Supporting 00 Analysis
Excelerator Index Tech. State-transition diagram
Cambridge, MA Matrix graph (RTS)
IPSYS OONRD IPSYS Software Shlaer-Mellor OOA and
Tool Suite Recursive Design
Object View Knowledge Ware Application prototyping
Atlanta, GA software using 4GL
or SQL code
Object Vision Borland International Visual application
Scotts Valley, CA development system
(Table continues on next page)
objects are allocated to four subdomains: human, The purpose of a time-event diagram is to allow the
hardware, software, and data. The split of pro- analysts to identify independent, sequential, concur-
cessing into these four areas accommodates the use rent, independent, and concurrent, dependent pro-
of, for instance, firmware, distributed comput- cesses. Usually, several alternative ways of looking
ing, DBMSs, and intelligent interfaces in what at the timing of processes emerge from this analy-
would otherwise be a monolithic development of sis, one of which is selected for development.
an application. Once the types of process are defined, their ser-
The second step of OOD is the development of vice object needs are identified. Service objects
time-event diagrams for all processes and all objects. closely parallel operations performed by an operat-
Key Terms 537
ing system (OS). ass have five main functions to The last step of 00 D is to develop package, or
manage: memory, job, task, I/O, and secondary stor- module, specifications for programming. The infor-
age. The memory, 1/0, and secondary storage man- mation from the various tables and graphics is
agement functions are directly translatable into rearranged to show the relevant information for each
object thinking. Job management functions are anal- particular module. Also, details of each module's
ogous to those performed at the control level for an logic, if not already documented in a dictionary, are
entire application andlor user. Job management is defined in the package specifications.
more appropriately called session, or -qser, manage- OOD CASE tools come in several varieties:
ment in object terms. Similarly, tasks are individual object-oriented life-cycle development, object-
steps of a job and are analogous tq transaction- oriented design without code support, object-
related modules when thinking in objects. Therefore, oriented coding without design support, or
the term used here for task functions is transaction object-based thinking through adaptation of exist-
management. Each type of management function ing methods.
requires its own type of processing and the processes
selected are particular to the application and imple-
mentation environment. REFERENCES ____________
The fourth step of OOD is to develop a Booch
Booch, Grady, Software Engineering with Ada, second
diagram to summarize the objects-both applica-
ed. Menlo Park, CA: Benjamin/Cummings Publishing
tion and service-and their interactions. Booch rec-
Co., Inc., 1987.
ommends a 3" x 5" approach for which each object Booch, Grady, Object Oriented Design with Applica-
and its processes are shown as a package on a 3" x 5" tions. Redwood City, CA: Benjamin/Cummings
index card. The set of cards is moved into different Publishing Co., Inc., 1991.
configurations and message connections are drawn. Coad, Peter, and Edward Yourdon, Object-Oriented
The purpose of this exercise is to choose a message- Analysis, second ed. Englewood Cliffs, NJ: Prentice-
passing scheme that minimizes the pqtential for bot- Hall,1990.
tlenecks and that provides information hiding and Coad, Peter, and Edward Yourdon, Object-Oriented
minimal coupling. The final configuration selected is Design. Englewood Cliffs, NJ: Prentice-Hall, 1991.
documented for the application. Graham, Ian, Object-Oriented Methods. Reading, MA:
Addison-Wesley Publishing Co., 1992.
The message connections decided during design
LaFore, Robert, Object-Oriented Programming in Turbo
of the Booch diagram are elaborated in the next step,
C++. Emeryville, CA: The Waite Group Press, 1991.
which is to define message communications. Each Peterson, J., and A. Silbershatz, Operating System
called object and its calling object, input message, Concepts. Reading, MA: Addison-Wesley Publishing
output message, action type, and return object are Company, 1983.
identified. Rumbaugh, James, Michael Blaha, William Premerlani,
At a higher level of abstraction, the next step is Frederick Eddy, and William Lorensen, Object-
to develop a process diagram that shows the distri- Oriented Modeling and Design. Englewood Cliffs,
bution of functionality and equipment for the appli- NJ: Prentice-Hall, 1991.
cation being developed. A process diagram depicts
processors, for example, computers, and devices,
that is, limited-intelligence equipment such as a disk
KEy TERMS _ _ _ _ _ _ ___
drive. All equipment and their interconnections are
3" x 5" approach device
identified. Multiprocessor interconnections show
binary message dialogue
allowable message movement throughout a network, binding dynamic binding
while the device connections show hardware con- Booch diagram hardware sub domain
figuration. The functions performed at each proces- client object human sub domain
sor in a multiprocessor configuration are also on concurrent processes keyword message
the diagram. data subdomain logical process flow
538 CHAPTER 12 Object-Oriented Design
message public package part 4. Why are service objects needed? When are
message traffic round-trip gestalt they needed and when not?
module scheduling 5. What is multitasking? Why is it important in
module structure diagram scheduling objects
application design?
multitasking server object
6. What is the purpose of a Booch diagram?
multitasking objects service objects
object-based software subdomain
7. List and compare three types of message
package specification static binding formats.
package supervisor call (SVC) 8. What is the purpose of a process diagram?
polymorphism synchronizing 9. Describe client/server computing and how it
private interface synchronizing objects relates to object orientation.
private package part thread of control 10. What is binding? What types of binding are
problem-domain objects time events possible? How do you know what type is used
process diagram time-event diagram in an application you are developing?
processor unary message 11. Describe an example of polymorphism.
pseudo-dynamic binding utility objects
12. What are some of the problems associated with
public interface
allocation of processes to subdomains?
13. What does the configuration If on a time-
EXERCISES _ _ _ _ _ _ __ event diagram mean?
14. Describe how to interpret a time-event
1. Continue with the exercise begun in Chapter 11. diagram.
Design the application for Eagle Rock Golf 15. Describe how operating systems relate to ser-
League. vice objects.
2. Design all Customer processing for ABC's 16. Describe the kinds of activities managed by the
application. Why is it different from that of task manager.
Videolnventory? If we add multiple members to 17. What are the control levels in object orienta-
a household, how does that change the design? tion that are analogous to job and task manage-
3. Compare the SQL and C++ designs for ABC ment in an operating system? Distinguish
rental processing. If there are bottlenecks in pro- between them and the tasks they manage.
cessing for the two designs, where are they 18. What is memory management and why is it
likely to be? How might they be removed? necessary?
Which design gives you better control over the 19. List the steps to defining service objects.
computer and its resources? Describe some of the problems related to this
activity.
20. What is the purpose of a Booch diagram?
STUDY QUESTIONS _ _ _ __ 21. Describe the steps to developing a Booch dia-
gram. What information is shown on the
1. Define the following terms: diagram?
message service objects 22. What is a package? What are its contents on a
object synchronizing Booch diagram? What are its contents in a
polymorphism thread of control working application?
problem domain time-event diagram 23. Booch recommends the use of 3" x 5" cards to
round-trip gestalt create and 'play' with the Booch diagram con-
2. Define the four subdomains and the type of tents. What is the playing for? Why are 3" x 5"
objects found in each. cards helpful to that process?
3. What benefits accrue from the allocation of 24. List three design goals of messages. Create an
processes to hardware, software, database, and example of message passing in an object-
human sub domains ? oriented application. Describe different types
Appendix: Unix/ C++ Design of ABC Video 539
of messages to illustrate good and poor mes- same design with a discussion of the decisions and
sage designs. alternatives from a purely object-oriented perspec-
25. What information is placed in the message tive. Chapter 12 presented a consistent discussion
table to document message traffic in an of the implementation throughout the text and shows
application? what happens when you deobjectify the application
26. Why is message definition a difficult activity? to fit a particular language environment. This appen-
27. Describe the icons used in a process diagram dix, then, gives you a basis for contrasting what
and their purpose. would happen if you designed a purely object-
28. How many Booch and process diagrams are oriented application. Each stage of the process is
drawn for an application? presented with enough comment for you to see the
29. Describe the validation processes used differences between the hybrid and object designs.
throughout an object-oriented design process. Package specifications and a prototype are still
Why is each validation step where it is in beyond the scope of this discussion, but we present a
the process and what is the purpose of each partial package specification so you can contrast the
validation? levels of detail for OOD to the other methodologies.
30. Discuss the statement: "There is no such thing A few terminology differences exist with the
as a one-shot object-oriented design." Unix, C++ environment and we start with them.
31. What information is provided for package Class structure is similar in C++ to the discussion
specification documentation? How do you in the chapter. Data in C++ is defined by structures.
decide what is public and what is private infor- A structure that contains both data and functions is
mation to an object? called a class. Classes were defined in the chapter
32. What is the role of proto typing in object as having public and private parts. In C++ classes
*
orientation? have public, private, and protected parts. The public
part is that part accessible by the rest of the system.
EXTRA-CREDIT QUESTIONS The private part is not directly accessible by
any other classes. These two definitions have not
1. Research queue or stack management. Write a
changed from the chapter. A protected part specifies
two-page paper to describe the functions of that
what may be inherited, that is, processes that are
type of management. Then, design the object-
accessible by member processes in its own class or
oriented class/objects and processing routines
in any class derived from its own. A derived class
that would accomplish these functions.
is one that has multiple inheritance and is made up of
2. Booch discusses primitive processes in detail
its own, and its inherited, data and functions. Class
and names several different types of primitive
inheritance is implemented by having processes that
processes. Research these types of processes and
have a protected status. Thus, in C++, the manner
discuss their importance to object-oriented
of implementing inheritance is to provide the pro-
design. How important is it to have a name for
tected part of an object and to distinguish inheriting
each type of thing in a design?
objects by calling them derived classes.
The term process refers to functions in C++.
APPENDIX: UNIX/ _ _ __ Functions can be part of a class (i.e., a member) and
restricted in use, or they can be stand-alone entities
C++ DESIGN OF _ _ _ __ that are independent of a class. At least one inde-
ABC VIDEO _ _ _ _ __ pendent function, mainO, is required to initiate pro-
cessing of a program or application. Many functions
Although the Chapter 12 presentation of ABC are provided in a library of reusable functions that
Video's design began as object-oriented, it ended as are link-edited to compiled code for execution. We
a hybrid: part-object and part-not, because of the im- will not spend much effort on functions since they
plementation environment. This appendix is the are most evident at the code level.
540 CHAPTER 12 Object-Oriented Design
Individual language operators are analogous to Locate Data (transform key to physical location)
other languages. Polymorphism is termed operator Get Data (may include a prechange write to a
overloading but the meaning is the same. Virtual log for recovery)
functions are the method used to provide run-time Rewrite (may include a postchange write to a
binding for polymorphic functions. Other function log for recovery)
types beyond the typical ones associated with classes Write (may include a postchange write to a log
include friend functions, that have read only ac- for recovery)
cess to the private data of a class, and static func- Delete (may include a postchange write to a log
tions, that operate on the class level rather than at the for recovery)
object (i.e., instance) level. Borland's Turbo C++ Space Management
provides an entire set of classes with functions and Queue Management (including service requests
inheritance as the basis for developing applications. and service responses)
The' container' classes, for instance, include several Backout Management
types of arrays, associations, hash tables, lists, Commit Management
stacks, and queues. The container classes are impor- Lock Management
tant because they provide a means for imple- Access Control Management
menting service objects. Next, we discuss the Error processing for such problems as data not
object-oriented design (OOD) activities. found, out of space, hardware error, or unsuc-
cessful read, write, rewrite, or delete.
Allocate Objects to Subdornains These functions can be defined and incorporated into
In object-oriented analysis (OOA), we defined documentation at sub domain allocation time or dur-
classes, class/objects, and superset classes needed ing service object definition.
to properly define all of the interrelationships among The human interface definition is also going to be
objects in the application. This diagram and the table different. In the main text of this chapter we
matching processes to their objects are the basis for designed the system for a 4GL, in which a screen is
this activity. The allocation in Table 12-3 has no painted and the programmer only needs to know the
change here (see Table 12-A1). fields, their format, and desired characteristics. The
In allocating the data handling functions to the 4GL software manages all of the formatting and set-
data subdomain in C++, we commit to designing ting of field attributes. In a lower level language,
generics to handle all files. This means that we need such as C++, screen format, line, starting position,
a new object for DB actions. Also, there will be no length, field attributes (e.g., blink, reverse video, or
collapsing of data objects as in SQL. Object-access color), and field contents are all managed by the pro-
control will be implemented as a superset of func- grammer and, therefore, require design.
tions to mirror the object relationships. To imple- Another choice we make is to have full-screen,
ment the generics, a fixed message type that line-at-a-time, field-at-a-time, or character-at-a-time
accommodates all of the processing for all of the interactions. Selection of input method is application
data objects is required. Such a message's minimal specific. In ABC's case, we decide that using a
contents are: From-Object, To-Object, Action, Ob- method that will not slow down users the least dur-
ject, Return-code, Physical-Location-Key, Length- ing peak periods is best. Since actual data entry is
of-Data, and Data. limited to CustomerPhone, VideoBarCode, and
While the subdomain allocations do not change, money amounts, for rental processing, and since
the handling of them does. Once functions are allo- rental processing is the most used function, we
cated to a DBMS, all developers need to know all choose field-at-a-time entry. If the application had
allowable interactions. Those interactions must be thousands of users and millions of transactions each
defined and designed manually when no DBMS is day, we might have field-level entry for rent/return
used. A partial list of functions required includes: processing and screen entry for customer and video
Appendix: Unix/ C++ Design of ABC Video 541
EnterCustPhone X
ReadCust X
CreateTempTrans X
Retrieve VOR X
DisplayTempTrans X
EnterBarCode X
RetrieveInventory X
Display Inventory X
ComputeTempTransTotal X
EnterPayAmt X
ComputeChange X
DisplayChange X
UpdateInventory X
WriteVOR X
PrintTempTrans X
EnterBarCode X
Retrieve VOR X
DisplayTempTrans X
AddRetDateTempTransVOR X
AddltoVInv X
UpdateInventory X
ComputeLateFees X
WriteVOR X
EnterCustomer X
Create Customer X
EnterVideoInventory X
CreateVideoInventory X
maintenance, because they are more data-entry in- synchronize processing between the input devices
tensive activities. Whichever input 'chunking' and the computer.
method is chosen, we must intercept start and stop With field-level input, we could choose field-level
characters from the keyboard and bar code reader to interactions, having local, PC-based intelligence
542 CHAPTER 12 Object-Oriented Design
simulating a 4GL that checks alphabetic/numeric account for 8.1 seconds of the total and actual inter-
contents and beeps on errors. This greatly compli- nal processing is about 506 ms or slightly over one-
cates the application and is decided against. At some half second. If the internal time were over two
future date, if the number of users begins to tax the seconds, we would opt for concurrency to minimize
file server, we could revisit this decision to speed the internal strain on processing. With under a half-
processing by off-loading work from the server. second processing time, we can continue thinking
of sequential processing as we did with the SQL
solution. The differences in using SQL versus an
Draw a Time-Event Diagram object-oriented language are not yet apparent. The
The time-event diagram also does not change and is major difference so far has been the level of detail
presented here as Figure 12-Al. Now we will pay of the reasoning process to make concurrency and
more attention to the potential for concurrency, data-related decisions. This level of detail is simi-
because we must be able to prove the processing and larly lower for the other OOD reasoning processes
that implies monitoring of the success of all write, as well.
rewrite, and print actions.
The choices for concurrent processing all relate to
data I/O, and the consequences of deciding for con-
Determine Service Objects
currency must be considered. First, consider conse- In this section, we list the required service object
quences of concurrency if we opt for read/write functionality to show the level of detail and com-
concurrency. At the hardware level, the affected plexity required of true object systems, but without
databases must be on separate buses (on a PC) or much explanation. We will assume that the Unix/
channels (on a mainframe) to ensure that the pro- C++ environment being developed for ABC will
cesses are not contending for the same hardware disk employ reusable code objects for many service func-
access time. Second, management and synchroniz- tions. 'Free' code is one of the benefits of using con-
ing modules to reunite multiprocesses within a sultants who come with their own implementation
thread and to verify processing are required. This modules for many functions. We still need to deter-
implies a need for queues for each process and for mine which modules are needed, however. Referring
each thread. For each process we need process ID, back to Table 12-5, ABC is a sequential, multiuser
thread ID, and return code. For each thread, we need application with needs for scheduling and multi-
all concurrent processes' IDs and return codes from tasking management, in addition to I/O, user,
processing. Side effects of potential errors must be transaction, thread of control, memory, startup/
considered. For instance, if Write VideoOnRental, shutdown, and data management. Table 12-A3 lists
RewriteVideoOnRental, PrintReceipt, and WriteHis- high level service objects required to support ABC's
tory objects are all active at the same time, we need application.
to decide acceptable combinations of successful! Input/output is straightforward. There are four
unsuccessful processing and actions taken for each I/O functions to design: keyboard, bar code reader,
possible combination. display screen, and printer. We assume that all input
Concurrency decisions should be based on busi- interactions are from the keyboard or bar code
ness constraints and needs for processing or re- reader, which read slightly differently. The keyboard
sponse time. There should be some attempt to is read one character at a time until a field is com-
compute how long a transaction will take and to plete. The bar code reader reads the entire code, or
determine response time. For example, ABC rental field, at once. Thus, we can use polymorphic mod-
transactions have an approximate processing time ules to GetField and possibly for other functions as
of 8.6 seconds (8566 ms; see Table 12-A2) during well. Likewise, we assume all output interactions are
nonpeak time and about 11 seconds during peak pro- to the display screen and printer. The basic actions
cessing times. From this table, which the SEs gen- for all four devices is to start, synchronize (abbrevi-
erate, we see that input and output from the terminal ated synch from now on), get/put, wait, or stop.
Appendix: Unix/ C++ Design of ABC Video 543
14
12
OBJECT 11 .--------1
10
9
8
TempTrans 3
2
Customer
or
VideoOn Rental 2 4
VINV
13
4 9 12
BCVideo
13
4 9 12
O______________________________________~~End
Trans
Time / Events
Waiting requires a queue to manage multiple waiting TermID and UserID passed from the User routines.
requests. For instance, customer Maintenance has four trans-
User routines initiate an application session and actions: create, delete, update, and retrieve. Job rou-
verify user access. The 'put' commands all interface tines then display menus and alter menu contents
to the screen I/O manager, handing off the message based on user logon and access codes. As above,
to be displayed. Similarly, the' get' commands all 'puts' interface with the screen or printer routines
interface with the keyboard or bar code routines of of the I/O manager objects and 'gets' interface with
the I/O manager. The purpose of user logon routines the keyboard or bar code reader routines. The infor-
is to identify physical terminal address (TermID) and mation passed to the command object for use in
user (User/D). process control includes Term/D, User/D, and
The transaction object and its routines manage TransCode.
individual transactions selected from menus. Infor- Thread of control is handled by a command
mation is directed to a specific device based on the object and routines which manage atomic processes,
544 CHAPTER 12 Object-Oriented Design
Internal
Instruction Input* Process Output Total
I/O Manager
Keyboard Get character until end of field Put password prompt
Processes Ready to receive (Sync keyboard) Get password
Start keyboard entry Verify password
Reset keyboard Put password error
Send entry to screen formatter
Transaction Put menu
Bar Code Start reader object Get selection
Reader Sync reader Verify selection
Get bar code Get memory
Send bar code to calling routine Release memory
Set up global user area
Display Identify screen location and type
Release global user area
Screen interaction
Call defrag for user area
Format screen protected lines
Format screen data lines Thread of Get memory address of data
Put keyboard entry in field control- Get memory
Set field attributes Command Set status
Check allowable value Object Queue instructions for execution
Get error message (i.e., call object/process)
Send entry to calling routine Transfer control to TempTrans or
Put screen Data
Put screen line Enqueue transaction
Dequeue transaction
Printer Sync printer
Execute instruction
Start print
Check status
Put lines until end of print
Create status
Stop printer
Delete status
Get print lines until end of print
Release memory
Wait to print
Store print lines for 60 seconds Memory Allocate memory
Queue address, length of print Manager Deallocate (free) memory
information Defrag memory (i.e., defragment)
Queue memory request
User Object Put logon prompt
Dequeue memory request
Get logon
Verify logon
Put error (Table continues on next page)
that is, they supervise execution of code modules. return which is estimated to take 13,860 bytes as
The object reads code into memory, passes one follows:
instruction at a time to the CPU for execution, and
interfaces to the other manager routines to perform Design Element Bytes
I/O, memory, and data management. The command Screen 80 x 22 1,760
object uses the fields passed from the transaction Max fields 100 bytes x 10 lines 1,000
object and adds to it the task and task status. Attribute bytes three/field 300
Memory management is designed simply to allo- Miscellaneous data area 800
cate the maximum amount of space for a transaction Code 10,000
to any request. The largest transaction is a rental! Total 13,860
546 CHAPTER 12 Object-Oriented Design
TABLE 12-A3 Service Objects Required for C++ ABC Application (Continued)
While this over-allocates memory, the alternative, Last, data management could be by file or by
to size memory to each transaction, is more com- function. By file is simpler and easier for novices to
plex. If memory becomes scarce, the change to maintain, but it also requires much more code and,
transaction size allocation can be made. To contrast therefore, more maintenance. Here we will define
the amount of memory required, a Customer Create one set of generic CRUD functions for the data
transaction takes approximately 5K memory. object with each requiring the specific DB name and
Startup and shutdown could be handled as part data. If necessary, polymorphic processes for
of the user object, but a cleaner implementation is the CRUD functions can be customized for each
to design them as separate. This start/shut object database.
allocates memory, initiates application and DB pro- After the services objects are developed, they are
cessing, including bringing all transaction code and allocated to the four subdomains of data hardware,
DB indexes into memory. In C++ implementation software, and human interface as shown in Table
terms, the start/shut object will be the mainO rou- 12-A4. Allocation of keyboard and bar code to hard-
tine that initiates ABC processing. ware would be a possible choice. They are left with
Hardware Subdomain
..
~ Process Subdomain
the human interface because they are closely related main message interchanges, we will define a generic
to the display processes which mirror all of their message for use in most communications. The sec-
input. Keeping these processes together reduces the ond Booch diagram, shown in Figure 12-A3, is at the
object-switching overhead required to change from object level and is obviously more complex than the
one object context to another. SOL solution.
There are several major differences between the
SOL and C++ designs. First, the schedule in SOL is
Develop a Booch Diagram a mainline routine that determines the next code to
The first Booch diagram in Figure 12-A2 shows the execute and is a centralized controller of the appli-
subdomain-Ievel communication. To simplify the cation. That function is performed to some extent
communications in the system, based on the subdo- by the command manager objects in the C++ design,
548 CHAPTER 12 Object-Oriented Design
Memory Command
TempTrans
but the scheduler functions are at a lower level and Based on this diagram, we might decide to denor-
spread over the service objects. At this level, the spe- malize the data to provide minimal accessing of
cific processes are not shown because the diagram databases during rental processing. For instance,
would be more complex than necessary. Instead, we we might replicate all Videolnventory information
have shown the service and data objects only. To in each BarCodeVideo object to eliminate the need
implement the application, we would complete that to access another object as part of rental process-
detail. ing. Similar denormalization might be done with
The design as shown in Figure 12-A3 is still Customer and VideoOnRental. Before a proto-
incomplete for the data part of the processing. In type could be built, a second design iteration on
Figure 12-A4 the next lower level of detail to show all objects and complete design of the details is
the complexity of the data objects is developed. required.
Appendix: Unix/ C++ Design of ABC Video 549
TABLE 12-A5 C++ Design Message List for ABC Rental Processing
Calling Called Input Output Action Return
Object Object Message Message Type Object
Memory Command
I AliocateMempry I Managj3Memory I~
I FreeMemory I Manag~Transactionl ~
I DefragMemo I Managj3Status I~
I QueMemory equest I Manag~Queues
I~
rDequeueMer oryRequest ~L-_ _ _~------~
TempTrans
.-L
Transaction TempTrans
r-
.----~F=======:;lf-
I Put Mehu
iCreateTempl rans I
I~G=e=t=s:;ej::8c::t=iO=n==::::: ~ IComputeTerr pTransTotal1
I Verify election ~
I ComputeChange II-_ _ _ _ _~
r GetMe [nory
I AddRetDat TempTrans I
I Relea~ Memory
I Add1toVln I
I SetUp lobals
r ComputeL teFees I~
I Relea~ ~Globals ~
Human
1~I=c=a=tIlD~etr::ag:::==:jf4J r~--+=======:::;-]ll
EnterCustPhone ~
~
r:::.--
Hardware ....
......
.- I I
I SetUp~1I ---tIll"
I LoadC alndexes Data
r LoadA plication Open
I Get 10 on I~ Update
I Verify oqon I~ Video Inventory
I Puter pr
~~~==~I"" .- Delete
I~p=u=tp:::t:::\====~1 ~ l::c::!..
[ Close
~IG=e=tP::::J)'lt===~1 ~ ~
rManage Locks -:ES
I:=v=e=rify=i:w=====~l ~ ~
I Put P\ error I~ rManage Requests I
554
Comparison of Methodologies 555
and discuss the future of the methodology classes ness process, entity and feasibility analysis for a
and, in particular, the three methodologies discussed given application. Analysis and design are discussed
in this text. in terms of the orientation of the majority of tasks
performed during those phases. Support for human
interface design, allocation of work to hardware or
Information Systems firmware, and DBMS design are all included. Main-
tenance, the final phase of a project's life, is consid-
Methodologies Framework ered in the extent to which it is supported in the
for Understanding methodology.
Table 13-1 shows the ratings of the process, data,
In their classic work, Olle et al. [1988], developed
and object methodologies from Chapters 6-12
the information systems methodology framework
on these activity and phase criteria. The process
to compare methodologies, discuss the representa-
method, including the work of DeMarco and Your-
tion forms, and identify information supported in
don & Constantine, is most focused, including only
methodologies available for use in the mid-1980s,
analysis, design, and program development tech-
including the process methods and data methods
niques and methods.
analyzed in this text. Here, we summarize the frame-
The information engineering (IE) data methodol-
work to analyze activities and phases supported by
ogy is the most complete, covering all phases of the
the three representative methodologies. Then we
life cycle except maintenance explicitly, and cover-
extend the analysis to evaluate the phases in which
ing all design items to some extent (see Table 13-1).
information becomes known, the general capabilities
The support for hardware/firmware design is lim-
of the methodologies, and the sophistication of
ited to allocation of tasks and data to distributed
resulting designs. Before the evaluation, please be
environments. There are no decisions in IE for how
cautioned that these analyses are not intending to
to allocate work to hardware or firmware as in object
condemn or otherwise pass a value judgment on the
orientation.
methodologies presented in this text. If they were not
The enhanced Booch and Coad & Yourdon
the best of their class, they would not have been
object-oriented (00) approach ignores front-end
selected in the first place. Rather, any shortcomings
tasks, including organization level, business analysis
in the methodologies only point out that an organi-
of entities and process, and feasibility analysis.
zation must compensate for the lacking activities,
Rather, it assumes that these tasks have been per-
phases, or decisions by providing its own guide-
formed before object-oriented methods begin to be
lines and methods, or by hoping that their analysts
used. Object orientation is more specific in its
have the requisite skills to perform these tasks on
approach to analysis and design than process orien-
their own.
tation, and, for some items, than data orientation.
00 examines and selects the objects and processes
Activities and Phases
of interest in developing the application during the
This section analyzes the phases of application analysis process. These are then subsequently
development work that may begin at the organiza- refined and further defined until design primitives
tion level to develop information systems plans are developed. Object design explicitly discusses the
(ISPs) based on business objectives. An ISP is an control structure of the application in the form of ser-
analysis of both data and processes that includes vice objects which can support either batch, interac-
manual or automated work to capture a snapshot of tive, or real-time applications with any number of
the work performed in an enterprise. The ISP is users, in addition to providing for distributed com-
modified to provide the basis for organizational puting through the development of process dia-
reengineering analysis as discussed in Chapter 5 grams. The other two methodologies do not
(which is not part of Olle et al. 's work). Work pro- specifically address design differences that relate to
ceeds according to the framework to include busi- timing or number of users for an application.
556 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
To summarize, information engineering (IE) cov- vided by object-oriented design for allocation of
ers more phases of the life cycle and more specific work to processors.
activities as identified by the One framework. Object
orientation (00) has more depth to the design phase Where Information Becomes
by providing for design of problem domain, hard-
Known
ware, and service object activities. The guidance
provided by IE for distributed computing decisions Next, we evaluate the phases in which information
is significantly more detailed than the heuristics pro- becomes known by classifying data, processes,
Comparison of Methodologies 557
relationships, and module information at different methodology fails to integrate data with process
levels of detail. analysis.
Table 13-2 shows that both data and object Object orientation appears more complete for
methodologies provide analysis of all the items but real-time and database applications in explicit analy-
some items are completed in different phases. sis and decisions for system, database, or software-
Major entities and processes can be known during specific attributes and processes that might be
the information systems planning (ISP) activity of required of the application. The event diagram more
IE, if it is conducted. In addition, the current au- explicitly identifies opportunities and requirements
tomation state of the entities and processes is identi- for concurrency than the other methodologies. The
fied during ISP as well. The same items, using the reliance of both process and data methodologies
term object for entity, are defined during object-ori- (with or without extensions) on designer knowledge
ented analysis and are subject to refinement during and experience leaves too much to chance and puts
object-oriented design. There is no explicit identifi- pressure on designers to remember these tasks
cation of cur-rent automation status for any of the (i.e., concurrency analysis and software-specific
items in 00 methods. data design).
Business events and processing triggers are both
identified in IE and object orientation. The timing
of events, via event diagrams, is analyzed in more
General Capabilities
detail in object-oriented design, providing a basis for
concurrent processing decisions. In IE, events are In this section, the methodologies are compared
used to identify triggers for processing and to show according to the extent to which they support analy-
where external data entry is performed in the appli- sis and design of the application characteristics
cation. Process methods identify necessary data described in Chapter 1: inputs, data, outputs, and
flows into and out of the application, but they are not constraints. In addition, processes and management
specifically tied to business events or triggers. The of different sources of complexity are analyzed to
event/trigger distinction is important because it iden- complete the general description of an application.
tifies necessary and sufficient inputs whereas data Inputs include the extent to which information and
flow identification leads to continuation of past events that trigger processing are included in the
data interactions without consciously reflecting on analysis and design of the application. Data are
their need. internal, computerized representations of facts about
The process method does not provide for data entities in the real work that are stored in the data-
relationship analysis, nor is data structure analyzed base for the application. Outputs are information that
at either the logical or physical levels. The pro- leaves the computer system either to a display or to
cess method explicitly ignores timing and inter- paper or some other (e.g., image) media. Processes
process relationships. 1 The lack of relationship describe the activity being automated, for instance,
analysis means that the resulting designs will be less transaction, decision, or inferential processing.
likely to mirror the business requirements of the Constraints define restrictions on objects, entities,
application. Even Yourdon's 1989 2 update to the data, relationships, or processes within an applica-
tion. Constraint types include prerequisites, tempo-
ral, inferential, structural, and control constraints.
1 This explicit ignoring of process timing and relationships is in Although not explicitly defined in Chapter 1, the
DeMarco and Yourdon & Constantine. In extensions of process
ability of the methodology to facilitate management
methods for real-time systems, these are both analyzed explic-
itly. For a discussion of the real-time extensions, see Ward, P. of problem complexity is a key concern to develop-
T., and S. J. Mellor, Structured Development of Real-Time Sys- ers. Complexity stems from several sources, includ-
tems (three volumes). NY: Yourdon Press, 1985. ing management of the number of elements in the
2 See Yourdon, Edward, Modern Structured Analysis. Engle- application; the degree and types of interactions, and
wood Cliffs, NJ: Prentice-Hall, Inc., 1989. the need to support novelty and ambiguity.
558 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
As Table 13-3 shows, none of the methodologies in providing no constraint identification and pro-
are complete in providing for analysis of all types cessing as part of the methodology. In contrast,
of design criteria. None of the methodologies sup- object-oriented analysis specifically provides a step
port design of inputs or outputs, even though both to identify and define the constraints on processing
data and object methods identify the need for inputs and structural constraints as they relate to both data
via event/trigger identification. and processes. IE and data methods are in the middle
None of the methodologies deal with inferential with prerequisite constraints shown on action dia-
constraints (see Table 13-3). Remember, the fact that grams, while structural constraints are limited to
constraints might be missing from a methodology those expressed in a class hierarchy for data. Con-
does not mean that they cannot be in the resulting trols are explicitly provided for in both data and ob-
application, only that they must be remembered and ject methods and are absent from process methods.
designed outside of the methodology and rely on Complexity management is similar in data
designer skills. Process methods are the most limited and process methods since both take a top-down
560 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
perspective and are controlled through SE skills. IE Novelty and ambiguity of requirements are not
decomposition is somewhat easier when an ISP is addressed by any methodologies.
performed, because the software decomposition fol-
lows from primitive business processes which trans- Sophistication in Explicit Design
late into computer processes. The SE skills required, Decisions
then, are for further decomposition of computer pro-
cesses into modules and execution units that pro- Sophistication means "developed in form or tech-
vide for desired software characteristics such as nique,"4 complex, or worldly. In this section, we rate
minimal coupling, maximal cohesion, and so on. the methodologies in their ability to guide the
The 00 design perspective of round-trip gestalt development of sophisticated modules, programs
and explicit use of iterative prototype development and applications to exhibit characteristics of
supports complexity management to some extent by reusability, modularization, information hiding,
providing increasingly detailed abstractions of the maximal cohesion, and minimal coupling. The
application with each iteration. 00 design also man- issue is not can the methodologies use or result in
ages complexity through inheritance which mini- modules with these characteristics-the answer is
mizes the replication of both data and processes and absolutely yes, they can. The issue is the extent to
by allocation of processes to hardware, software, which the methodologies explicitly provide guide-
DBMS, and human interface. Through the allocation lines and validation heuristics for reaching designs
of objects and processes to each subdomain, the sub- that exhibit these characteristics.
domains can be considered independently, even by Neither data nor process methodologies provide
different design groups. The only need for inter- for information hiding, maximal cohesion, or mini-
group coordination is for interprocess message mal coupling beyond somewhat arbitrary heuristics.
definition. Only object orientation specifically can result in a
For complexity management of ambiguous or clean design (see Table 13-4), but it can also be cor-
novel requirements, none of the methodologies pro- rupted if the designers significantly change intra-
vides guidance. object and class/object structures or relationships
None of the methodologies guide input/output during design. By early encapsulation of objects and
design. Process and object methods are unlikely to processes during analysis, object orientation auto-
be useful in identifying conversion requirements of matically imbeds cohesion in the application. By
an application, since they do not differentiate auto- only allowing communication via minimal mes-
mated from manual data as IE does. Similarly, sages, object orientation automatically provides
process and object methods are not likely to lead to minimal coupling and information hiding. When
well-defined databases since the methods do not pro- implemented using object-oriented DBMSs and lan-
vide guidelines for database design. 3 IE provides guages, object designs should have these properties.
explicitly for normalization and logical database Problems and a loss of minimal coupling and
design while recognizing the need for physical information hiding will occur if nonobject languages
design based on data usage requirements. or software are used to implement 00 designs. For
None of the methodologies are perfect at com- instance, COBOL is the antithesis of object orienta-
plexity management. Object orientation appears to tion. COBOL assumes global data and cannot man-
facilitate complexity management more than the age encapsulated objects because it assumes
other methodologies through its support for inheri- separation of data and process. Therefore, if COBOL
tance and allocation of processes to subdomains. is the target language, object orientation would not
be a good choice of methodology, all other things
considered.
3 Attempts by Booch (1991), for instance, to design databases
into an OOD and by Yourdon (1989) to integrate entity-
relationship and data analysis in Modern Systems Analysis 4 From Webster s New World Dictionary, pocket edition. NY:
are incomplete and cursory. Popular Library, 1973, p. 544.
Comparison of Methodologies 561
The other measure of sophistication is the extent cycle of an application. IEs' disadvantage is that
to which the methodologies support reusability and many activities rely on SE skill and experience to
reusable module/object design. Only object orienta- know the activity should be performed rather than
tion provides for explicit identification of potential incorporating the need for the activity in the method-
reusable processes and objects. Once the reusable ology. When data is complex, nonobject software
items are identified, object orientation does not pro- (either DBMS or language or both) are used, or if
vide further guidance in how to actually design human interface design is paramount, information
reusable modules; nor should it necessarily provide engineering would be the choice.
such guidelines. Structured analysis and design, the process meth-
IE covers the whole life cycle, something both odology, is the least prescriptive in telling users how
process and 00 methodologies need to provide for to perform the various activities, and it has the least
application development. The IE data methodology activities in the methodology.
provides more human interface design guidance and Overall, object-oriented methodologies would
is the only methodology that covers the complete life be expected to lead to a design that more closely
562 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
process and define detailed subphase products that it is not without problems. First, it is based on
collectively become the phase deliverables needed to Humphrey's and others' experiences in the field but
further manage the tasks. Each deliverable product has never been subjected to empirical validation of
has process and product measures of quality and pro- its definitions. Humphrey asserts that the maturity
ductivity that are aggregated to the phase and project framework "represents the actual ways in which
level for managerial oversight and assessment. At software-development organizations improve"
this stage, a quality assurance group that performs [Humphrey, 1988, p. 307]. The stages are presented
independent analysis of product and application as distinct and sequential, with the implicit under-
quality is formed to report to management on a prod- standing that to attain, for instance, the optimizing
uct-by-product basis. At the defined level, a process level, an organization must have moved through all
database is established and all SEs are trained in the previous levels. There is no basis for this supposi-
use of the information to provide history for the tion. In fact, the framework represents Humphrey's
organization on the use and productivity of each ways of attaining software development maturity
project and tool. without recognizing that it may not fit all situations.
At the managed level the organization initiates The second drawback to the framework in analyz-
"comprehensive process measurements, beyond ing methodologies is that many of the requisite
those of cost and schedule" [Humphrey, 1988, support activities are organizational, not method-
p. 302]. The managed process requires analysis of ological. For instance, walk-throughs, configuration
the process database measures to ensure that com- management software, and testing standards are out-
parable statistics are available and can be universally side the scope of methodologies. We assume they are
interpreted, and that project-specific data that high- not an issue in this discussion.
light unique characteristics or aspects of application Having said these criticisms, the framework is
development projects are stored and interpreted still useful for discussing problems with methodolo-
properly. At the mana~ed process level, the data for gies that relate to the extent to which they define
the process database should be gathered automati- development activities and support phase work.
cally and used to modify the process to "prevent Table 13-5 shows my subjective ratings of the
problems and increase efficiency" [Humphrey, 1988, methodologies with respect to Humphrey's frame-
p. 306]. Humphrey takes pains to point out that the work. None of the methodologies has a uniformly
database should not be used to penalize either proj- high rating in all of the categories.
ect teams or individuals, but that type of use by man- In general, process methods are the least pre-
agers can be taken. One example of measures is dictable, consistent, measurable, or monitorable
function points. because they leave so many activities to SE skill and
The optimizing level is one at which the orga- omit specific activities from the methods. At worst,
nization continues improvements begun at the process methods are at Humphrey's initial stage; at
managed level and starts development process opti- best, they are repeatable. Because the focus is on
mization. The optimizing level, ideally, allows SEs process, I would assume that consistency and mea-
to identify many types of errors in advance of their surability of processes should be medium, that is,
causing delays and problems on a current project by different people should arrive at similar analyses. In
analyzing and identifying the patterns of mistakes fact, we think they are low to medium. Designs
from other projects based on information in the would be expected to vary most because the heuris-
process database. In my opinion, this is truly an ideal tics are vague. Data analysis, data design, and human
at this point in time since our ability to detail the interface design, which some authors add on as an
steps to what appear to be random incidences of afterthought, would all be expected to vary signifi-
Murphy's Laws is rudimentary, at best, and nonex- cantly across different SEs because they are not
istent, in practice. explicitly part of the methodology.
While Humphrey's framework is useful for dis- Measurability is low to medium. Assuming func-
cussing key differences between methodologies, tion point metrics, measurability is low because
564 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
function points concentrate on externals (e.g., foreseeing those problems. Therefore, not all tasks
numbers of interfaces, files, I/Os, and so on) and not and activities can be monitored to the extent that
on processing complexity. they eliminate problems during the development
The ability to monitor the methodology-defined process. If a CASE tool, such as IEF, is used for
tasks is probably about medium. The ability to mon- development, monitorability is high because the
itor process-oriented applications is low when only entire life cycle has well-defined stages,products,
methodology-supported phases and tasks are moni- and reports on status that can be tracked for
tored and would be inconsistent if monitored tasks all phases.
were defined by project. Object orientation, in the form of the enhanced
The data methodologies have slightly better over- and integrated Booch/Coad & Yourdon method-
all ratings. In Humphrey's framework they are, at ology is similar to IE in predictability and mea-
worst, repeatable and, for some activities, reach the surability. Consistency is lower and varies from
defined level. IE is reasonably predictable in having low to medium because individual SE skill is
a set of activities defined into phases for ISP, feasi- required to define the calling sequences and ultimate
bility, analysis, design, and program design. If using, operational structure of the application, even though
for instance, Texas Instruments' version of IE, there the definition of the object pieces is fairly well
are many more tasks that are not all necessary for a described. The difference between a good calling
given application; thus the activities are not com- sequence and message set and a bad one is difficult
pletely predictable across projects. The activities to define in abstract, procedural terms, but can only
should provide a level of consistency across SEs be noticed through prototyping and actual compari-
who should be expected to define the same entity- son of different schemes. Monitorability is less
relationship diagram and the same activities even because of the ill-defined nature of service-
though details would probably differ. Therefore, object identification and of language-specific 00
consistency should range from medium to high. The requirements. Moving targets, like 00, are hard to
extent to which IE analyses and designs are measur- measure. 00 is repeatable at best in Humphrey's
able is ranked as medium. If function point analysis framework.
is used and baselines for the company have been The bottom line on methodologies and
defined, the measurability is probably medium since Humphrey's framework is that the methodologies
IE analyzes the major function point items. The alone do not offer enough guidance to support the
extent to which IE can be monitored is medium. IE defined level of application development manage-
defines more tasks and activities and follows more ment, let alone get to the optimizing level. For this
phases of the application life cycle; therefore, its reason, more work on methodologies, life cycle, and
ability to be monitored is greater than that of pro- development activities are needed to accommodate
cess and object methods. However, all projects the variety of work for different types of applica-
are subject to unforeseen problems that require tions. Having said this, we also need to be realistic
unplanned time, and monitoring cannot assist in about just how much predefinition of decision
Comparison of Automated Support Environments 565
processes can, in fact, be imbedded in methodolo- mentation or program code with little or no manual
gies. Two things seem obvious. One is that we can intervention. The integration should be both between
define some of the methodology-driven activities tools and between life-cycle phases. This level of
more completely. The other is that the engineering integration implies that some resolution of funda-
nature of the SE task is that each appiication will mental semantic and syntactic differences between
require unique characteristics and design that cannot phases is required. Specifically, differences between
be codified! analysis and design should be eliminated through
In summarizing this section, no single method- CASE use. To reach this sophisticated level of inte-
ology appears to be complete and sufficient for gration, the methodologies require some redesign to
all the tasks and activities performed during an remove their own built-in lack of seamlessness
application development. There is no silver bullet between phases activities. For instance, in process
that will solve our application development prob- methods, one major intellectual stumbling block is
lems or provide a complete cookbook for the devel- the transition from data flow diagram (DFD) in
opment process. For these reasons, there will always analysis to structure diagram in design. Many people
be a need for SE expertise in application develop- ask, Why not develop a structure diagram in analysis
ment. There is also a need for continued definition of instead? Or, conversely, Why not carry DFDs
tasks needed during application development and the through to design?
continuous evolution of techniques that are inte- Next, intelligence in tools is desirable. Artificial
grated into the various methodologies to guide those intelligence (AI) in CASE facilitates reusability and
tasks. provides consistency and completeness checking
within and between graphical and text forms. AI rou-
tines can be used to implement the concepts of
COMPARISON OF _ _ _ __ reusable analysis, design, program specifications,
and code. The routines can locate, retrieve, and
AUTOMATED ____________
select specifications matching design parameters and
SUPPORT _ _ _ _ _ _ ___ can identify specification fragments that do not
match what is required. Other applications of AI are
ENVIRONMENTS _ _ _ __
the analysis of completeness and consistency of
There is a marked degree of consensus on many requirements or code. Other checking is between
design features of the ideal CASE environment. phases to match logical design to physical design to
Table 13-6 summarizes many features and functions code. This use of AI is technically feasible and not
that Pressman, Gane, Booch, Martin, and McClure particularly difficult. What we don't know about AI
recommend. The curiosity is that the vendors do not for these uses is what to match, how to match it, and
seem to listen. Take three general requirements as an when the best time for matching occurs. New meta-
example: integration, intelligence, multiuser support. language descriptions of analysis and design re-
CASE integration is the absence of barriers quirements will be required to fully exploit AI in
between one graphical or text form and others. The CASE. These meta-languages must also be consis-
experts agree that the most useful CASE should sup- tent and no additional burden to the other integration
port all project life-cycle activities within an inte- and multiuser support requirements of CASE.
grated environment. The rationale for this position is One consistently recurring theme in all CASE
that tools that support only application development, products and research is concern over the replace-
even if they include project management, address ment of one sort of complexity with another sort of
only a small, possibly noncritical, portion of the SE complexity. The solution to software development
discipline. Further, the integration should be seam- productivity, quality, and reliability problems is to
less, that is, transparent to users. Transparent inte- build tools that, in hiding some complexities of the
gration includes the automatic conversion of development process, are necessarily complex them-
diagrams and design text into other forms of docu- selves. The hidden complexities require absolute
566 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
accuracy and reliability themselves to make their use work collaboration, scheduling, tracking, sensitivity
worthwhile; the systems will have to reveal them- analysis, and electronic meeting support.
selves upon request so users may understand internal Now, let's first examine the extent to which the
processing. With AI routines, that, for instance, learn methodologies themselves exhibit the properties
to predict what is required for code based on design thought to be desired for CASE, then extrapolate
specifications, these revelations are crucial to guar- from that to determine the level of support for these
anteeing CASE's continued use. features we can realistically expect from CASE
The integration of phases and tools must also be products.
multiuser. Multiuser CASE support implies some First, integration across phases and graphical
sort of centralized repository of information about forms is important to building intelligence into
the application that is accessible by any number of CASE. If we examine the three methodologies
people concurrently. Warnings to users when a com- described in this text, structure analysis and design
ponent is changed and automatic version control are (SA), information engineering (IE), and object ori-
desired features. Multiuser support extends to group entation (00), we would find the most integration in
Comparison of Automated Support Environments 567
00 with less in IE and even less in SA. 00 begins developing applications from the original DeMarco
with tables that are increasingly elaborate but whose and Yourdon & Constantine approaches.
contents can be traced from the beginning of analy- Given the levels of integration as low for SA,
sis through to development of module specifications. medium for IE, and medium to high for 00, the
There is no shift in thinking required once the data greatest potential for CASE to provide seamless,
and processes become encapsulated, because they complete integration of functions seems most likely
continue to be encapsulated throughout the remain- for object orientation. Further, the higher the level
ing steps. of integration, the greater the intelligence that can
IE has less integration because there are two be built into the software, once again, identify-
fairly distinct paths of thought in IE, one for data and ing 00 as the most likely to provide extensive use of
one for processes. Within each path, the level of AI. Does that mean that AI cannot be used for the
integration is consistent and high, but between paths, other methodologies? Absolutely no! It means
the integration is less consistent and there are few thatsophisticated AI that recognizes reusable analy-
guidelines for integrating the two. One example of sis, design, or code fragments and that performs sig-
this lack of consistency is that, depending on the nificant semantic analysis of the contents of
author, IE should not have data files or entities diagrams and the interdiagram relationships is most
shown on action diagrams; action diagrams should likely in 00. Anyone using any CASE tool today
remain a process sequencing and event trigger iden- knows that they provide fairly extensive syntactic
tifying graphical form. If this line of reasoning is fol- evaluation intelligence that will tell you, for
lowed, data and processes are integrated at the instance, if your connections on a data flow diagram
program specification level. Program specification (DFD) are all legal, or that the external entity inter-
work is micro-design that could then miss major actions from the context diagram are all accounted
global problems because of the lack of data-process for in the DFD.
integration. From the discussion of the previous two issues,
SA is even less integrated than IE because data you should be able to figure out that multiuser sup-
are not specifically addressed in the methodology. port in products also lags behind the desire for its
The analyst is supposed to know what 'data stores' sophistication in industry ... and it will continue to
are required and the appropriate contents of those do so for at least five years. Multiuser support adds a
data stores. Some authors6 assert that a data store can level of underlying complexity because of the need
refer to a group of related normalized relations, for locking mechanisms, access security, and con-
while others 7 assert a data store is a third normal current multiplatform hardware support that impedes
form relation. When data analysis is not an official vendor development. Since there are no competitive
activity, by definition it cannot easily be integrated reasons for developing multiuser capabilities, that is,
into the methodology. Similarly, there are numerous no other vendors have it either, vendors are not
texts that describe how to use SA for developing spending their resources on multiuser support. Cur-
real-time applications 8 and that provide a foundation rent tools with a central repository allow segmenting
for several of the graphical forms used in 00. But of repository items, such as an ERD. When multiple
close analysis of the Ward & Mellor methodology, users want to change the ERD, they check out seg-
for instance, identifies a very different approach to ments and work on their respective segments indi-
vidually. The completed checked-out segments are
checked-in to a reconciliation procedure that fre-
6 See Gane, Chris, Computer-aided Software Engineering: The quently fails because of inconsistencies that are then
Methodologies, The Products, and The Future. Englewood manually reconciled. In a truly concurrent environ-
Cliffs, NJ: Prentice-Hall, Inc., 1990.
ment, locking mechanisms would support multiple
7 See Yourdon, 1989.
8 Ward, P. T., and S. J. Mellor, Structured Developmentfor
concurrent users without segmenting and check-out
Real-Time Systems (three volumes). NY: Yourdon Press, processing, but with locking mechanisms similar to
1985, is one ofthe most commonly used. those used in DBMS software.
568 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
What does the state of integration and AI mean changes that we might expect in methodologies and
for CASE? CASE tools are necessarily limited in the application development.
number of processes, number of entities, number of The methodology research consists of normative
attributes, complexity and detail of description, and and descriptive writing on the procedures and appli-
so on. These limitations are higher candidates for cation focus in analyzing application problems.
removal by vendors than are these three more From this body of work, we have over 60 identifiable
abstract concepts: integration, intelligence, and methodologies with primary concentrations, such as
multiuser support. The CASE industry has entered a SA, IE, and 00, described in this text. Unfortu-
push-pull stage of product development. The push nately, the value of these methodologies has not been
comes from the ever increasing desire of client com- studied. There is no evidence that any of these meth-
panies to develop ever more complex and sophisti- odologies is better than any other of these method-
cated applications, and their recognition that CASE ologies. Nor is there any evidence that any
can be used to deploy ITs to their competitive methodology is more appropriate for a particular
advantage. The pull comes from the products on the problem domain than any other. Intuitively, they
market and their growing sophistication. As soon as can't all be best in all situations. Current research is
one vendor provides a feature or function, others feel taking two directions to follow on this idea: First,
obligated to offer it too, or risk losing market share. one line of research attempts to integrate methods
Many vendors try to support as many methodologies to create an improved hybrid; second, the other line
as they can, frequently without regard to underlying of research is trying to determine when and which
differences in mental thought processes required to methodologies are appropriate for different types
comply with the methodologies. So, for instance, of problems.
DeMarco's SA and IE analysis might both be adver- Current research in building hybrid methodolo-
tised as supported by the same vendor. But DFDs are gies is primarily applied. All authors, so far, are
not action diagrams and vice versa, nor will they seeking to integrate 00 notions and notations with
ever be. So, when vendors claim multimethodology some other methodology, including structured analy-
support, beware of the claim. sis, Jackson systems design, information engi-
neering, and others. 1O This research is purely
prescriptive, of the form: "If I were going to put 00
RESEARCH _ _ _ _ _ __ together with structured analysis, here's what I
RELATING TO _ _ _ _ __ would do." While this research is promising, the lack
of researcher attention to the differences in reasoning
ANALySIS, _ _ _ _ _ __ and thinking processes of the methods needs to be
DESIGN, AND _ _ _ _ __ resolved. Also, these authors will need to offer evi-
dence of the synergy they promise but for which they
METHODOLOGIES _ _ __ currently offer no evidence.
The second type of research discusses methodol-
There are two growing bodies of research9 relating ogy learning by novices. Having learned COBOL
to methodologies and the application development or another procedural language, novice learning of
process. The first research is attempting to reconcile structured analysis is easier and more accurate than
the differences in methodologies to develop an learning of other methodologies. 1l Since there is less
improved hybrid. The second type of research stud- to learn, this is not surprising. In addition, this
ies the decision processes that occur in analysis and research notes that the thought processes of 00 are
design activities. Both of these lines of research are decidedly different that those of SA and IE. We
described in this section and related to future would conclude then that novices who learn Ada
first, for example, would have an easier time learning development life cycle, that task domain facilitates
00 than structured analysis, and their 00 designs the process of building a mental model of the prob-
would be more accurate. This is a promising line lem solution, and that different types of domain
of work that needs much more study, including knowledge exist, including methodology and task
analysis of real analysts doing real work before any domains.
results applicable to business use of methodologies For SEs, this research has several implications.
can be expected. First, the entire field of methodology research is in
The study did find that analysts' development of a its infancy. As it matures, both the methods and the
mental model is crucial to complete solution of a way we use them should be expected to change. Sec-
task. The process followed by successful analysts ond, hybrid methodology that attempts to integrate
includes development, expansion, and simulation of methodologies requiring different mental models of
a mental model that uses personal problem-solving a problem, for instance, structured analysis and 00,
plans that are used to elaborate constraints, and are unlikely to be very productive. Rather, we need
notemaking as a means of deferring work until a to identify which methodological orientation best
later time. Many of these skills in Chapter 2 recom- fits different problem domains, concentrating on
mended for you to think of while studying the text methodology improvement and use in the appropri-
were identified through this research. ate domains.
Also, some comments about easy and hard fea- Last, since methodologies do not provide com-
tures of methodologies can be developed. The easy plete analysis of all aspects of problem domains, by
features of 00 are those that automatically lead to definition, CASE tools based on the methodologies
information hiding, minimal coupling and maximal will also provide partial task coverage. The more
cohesion, the traceability of information throughout complete the methodology, the more complete the
the process, and the essential continuity of the CASE tool. Some vendors add completing tasks to
method (i.e., building tables and progressively add- support, for example, code generation; these CASE
ing details to the information). The hard 00 features tools are even more complete than those that are only
are the extensive experience in operating systems re- methodology-based. The most notable example of a
quired to determine service object requirements and more complete tool is Texas Instruments' Informa-
the significant coupling between the implementation tion Engineering Facility (IEF).
language and the application design. Applying Humphrey's framework to research in
The easy features of IE are entity analysis, full- IS, methodologies are in either the initial stage or the
life cycle approach including enterprise through defined stage. CASE tools help methodologies attain
maintenance phases, the methods for deciding distri- the defined stage, but sometimes impose such rigid-
bution, and the balanced thinking given to both data ity in doing so that usage is constrained and might
and processes. The hard IE features are the mental not fit either the way SEs work or the work itself.
shift required to move from design to program speci-
fication and from an action diagram to its compo-
nents. The decisions about the size and content of BUSINESS AND _ _ _ __
components is left to the SE. TECHNOLOGY ___________
The easy feature of SA is the simplicity of the
thought process which is easily grasped by most TRENDSTHAT _______
people. The hard SA features are the disjoint phase IMPACT _ _ _ _ _ _ _ __
relationships moving from DFD to structure diagram
and decomposing the structure diagram into mod- APPLICATION _ _ _ _ _ __
ules. These actions, like similar ones of IE, are left to DEVELOPMENT _________
SE skills and have few guidelines.
To summarize the application development liter- There are several trends in application management
ature, we know that skills needed seem to vary by and development that will change dramatically the
activity both across and within phases of a system way business computing is performed in the next ten
570 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
years. The trends are both technological and busi- software that support data scrubbing to remove
ness related, including management of legacy sys- anomalies and errors. These are nontrivial needs that
tems and data, client/server computing, development will divert some industry resources away from
of repositories and data warehouses, multimedia ap- methodologies toward these very practical and real
plication development, and the business globaliza- problems.
tion. Each of these trends are briefly described with
their impact on application development and soft-
ware engineering.
Repositories and Data
Warehouses
Legacy Systems A related issue is the notion that organizations
no longer want to discard data. For instance, the
Legacy means handed down as from an ancestor.
maintenance of legacy data sometimes is mandated
Legacy systems are applications that are in a main-
by the government. The means to store unlimited,
tenance phase but are not ready for retirement.
continuously growing databases currently are called
Legacy systems are most often mainframe, COBOL
data warehouses.
applications that were probably built using no
Similarly, all of this data must have meta-data
methodology and no life cycle. Such applications are
that defines each attribute and its related entities (or
frequently referred to as 'held together with spit and
objects), the applications and software allowed to
glue' because they are fragile, that is, susceptible to
access the data, and the allowable using organiza-
introduction of errors caused by unrelated changes.
tions. The meta-data definitions are in a repository
In short, they are a liability. The reason these sys-
which, in its most sophisticated form, is a data dic-
tems are not all rewritten and done away with
tionary for data, processes, hardware, and software.
is because of the tremendous investment in their
Repositories control and centralize management
development.
of data as an organizational resource. Distributed
A related concept is legacy data which is data
repositories will be developed in the future but are
used by outdated applications that are required to be
currently only available as one-user chunks of a cen-
maintained for business records. Legacy data are as
tralized repository that must be reintegrated with the
much as 50% incorrect and may be in an unusable
centralized, official data.
form without considerable expenditures of time and
Both repositories and data warehouses have sig-
money. In short, they are a liability. The reason
nificant overhead (i.e., human) costs associated with
legacy data are not reformatted in some new DBMSs
managing and tracking all of the information actu-
that can optimize storage and access time is the
ally managed by the software. Because of this over-
inherent cost of correcting the data which could be
head expense, companies must choose carefully
ten times or more than the cost of reformatting.
those items they really want to maintain indefinitely.
The impact of legacy data and systems is to
The luxury of being a 'data packrat' has currently
inhibit and slow the integration of data across orga-
unknown costs.
nizations and applications, and to inhibit the inte-
The impact of data warehouses will be felt in the
gration of technologies for application use.
need to design time-dependent databases 12 that have
Ultimately, companies with significant legacy prob-
associative relationships and to migrate legacy data
lems will be forced, for competitive reasons, to
to the warehouse. Associative data relationships
spend the money to transform the systems and data
are irregular, dictated by data content rather than
into useful items or to abandon them and write off
abstractions such as normalization. An example
the expense.
The impact of legacy systems and data on SE is to
continue to inhibit new application development by 12 Time-dependent databases are also referred to as temporal
requiring attention. The new pulls from industry databases and have an entire body of research associated
include need for reengineering data, methods, and with their definition and use.
Business and Technology Trends that Impact Application Development 571
might be in an image document that describes an ware is offloaded to the PC completely. Then data is
insurance policy. That policy needs to be related to partitioned (i.e., split by columns or rows or both),
the insured, the owner, the beneficiaries, and its and accessible via DBMS in both places. Next, the
value over time so that a complete reconstruction of data are moved fully to the distributed environment,
its status at any single point in time can be deter- possibly with replication (i.e., multiple data copies).
mined. Existing database products can support tem- At the next stage, some application functions are
poral databases but are not specifically designed for performed on a PC and others on a mainframe. In
temporal data. This implies the development of a its most advanced state, all functions (or pieces of
specialized temporal database type, or the extension each) are stored both on mainframes and PCs and
of existing database products to accommodate tem- with access determined by the closest processor with
poral data definitions. available CPU time.
In client/server's most advanced form, for exam-
ple, simple functions might be on a LAN and com-
Client/Server plex processing functions on a mainframe. The data
Client/server computing describes a situation in might be anywhere. The application part closest to
which multiple processors share responsibility for the request decides type of processing to be per-
managing pieces of an application. Currently, the formed and ships the request off to be executed in
pieces include data, presentation software for the the most efficient place. If that location is busy, its
human interface, and application. For a given pro- software might forward the processing request
cessing request, one processor acts as a client to another processor until idle CPU cycle time is
requesting that a processing service be provided; the found. The executing processor would obtain the
other processor is the server that executes the nearest version of the data and perform the requested
request. In this context, examples of a service service. The result is sent back to the requesting
request are to access data, perform a routine, or dis- processor.
play data on a terminal screen. In a true client/server Client/server processing is sometimes confused
environment, any processor can be a client and any with downsizing. Downsizing is the shifting of pro-
processor can be a server. The same processor might cessing and data from mainframes to some other,
be a client for some actions and a processor for oth- less expensive environment, usually to a multiuser
ers. Therefore, the client/server environment, in its mid-size machine, such as an IBM AS400, or to a
truest form, is describing a peer-to-peer network- LAN of PCs. Downsizing can occur with or without
ing scheme in which intelligent sharing of resources client/server computing. The reasons for buying
and data across multiple processors is taking place. mainframes are diminished with the availability of
The state of client/server development changes client/server computing, but the compelling argu-
almost daily, so by the time you read this, Figure ment for maintaining an existing mainframe envi-
13-2 will be out-of-date. Don't worry, it is only to ronment is to obtain the most benefit from the
give an example of the alternatives and confusion in tremendous start-up and maintenance costs associ-
the client/server marketplace. The figure shows the ated with them. Downsized environments also have
alternative configurations of presentation software, large start-up costs that sometimes are equivalent to
data (and DBMS), and application software with tra- mainframe start-up cost.
ditional, centralized mainframe resource manage- The impact of client/server computing on SE is
ment on the upper left of the diagram. Moving down here now. There is tremendous demand for SEs who
the diagonal to full distributed client/server process- know how to integrate data, applications, and pre-
ing, we have first presentation software that resides sentation software over multiple processors and net-
both on the mainframe and on a PC. The PC soft- works. The large accounting companies, such as
ware interfaces to the mainframe presentation soft- Ernst & Young, who also do conSUlting, have found
ware and is translated for use by the application. At a niche in providing leading-edge services of this
the next level of sophistication, the presentation soft- type. But the need is in every size of company, even
572 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
Mainframe Environment
No Limited Full
Client/Server Client/Server Client/Server
Support Support Support
Legend:
D = Database Management System
P = Display Presentation Software
A = Application Software
those that cannot afford a large consulting com- systems, and for developing the applications that
pany's fees. The pressure on SE professionals then is make the information accessible in a meaningful
to develop the integration skills to develop and sup- manner. For graphic design, video direction, and so
port these applications as fast as possible. on, one strategy has been to hire graphics artists or
movie school graduates, for instance, to be multi-
media authors rather than to teach an SE about video
Multimedia production. This splitting of duties still requires SEs
Multimedia is a term that describes the integration to develop skills in integrating multimedia in appli-
of object orientation, database, and storage tech- cations. At present, the skills required include 00
nologies in one environment. By the 21st century, analysis and design, media knowledge, and human
multimedia will transform both applications and the interface design incorporating moving and still-
way we interact with them. New technologies must motion video, graphics, text, and data in the same
be able to be incorporated into traditional application interface.
processing to be useful in business organizations. By
defining equipment as objects and storing the object
definitions in a database repository, integrating new
equipment and technologies in traditional applica-
Globalization
tions becomes not just possible, but fairly easy. Globalization is the movement of otherwise local
SEs developing multimedia applications require businesses into world markets. In 50 short years,
new skills for authoring the contents of multimedia business organizations worldwide have evolved
Business and Technology Trends that Impact Application Development 573
from national to multinational to global enterprises. suffers from the same bias that diffusion of innova-
As with all trends, there are forces that both ease and tion theory in general suffers: If the technology is
inhibit movement into global markets. In general, not accepted, there is something wrong with the
information technologies enable globalization; and, intended user, not the transfer agent or the technol-
in general, cultural differences and history inhibit ogy. Naively, we think our way of implementing and
globalization. The technology enablers are applica- using are the right way as if no other way is as good.
tion and communications technologies that remove The concept of equifinality-many paths lead to the
the barriers of geography and time, while providing same goal-eludes most Westerners. We fail to
equal access to multimedia applications. The histor- evaluate the technology within the context of the
ical and cultural barriers inhibit cross-cultural intended cultural structure. We assume stupidity on
exchange of ideas, technologies, and methods of the part of the users and also assume this stupidity
work. Dealing successfully with both the technolog- can be corrected by sufficient education. What we
ical and cultural issues is a challenge to information forget is that projects fail when planning is incom-
systems professionals and business managers. plete, potential difficulties are not assessed or are
Preparing yourself for deploying globalizing tech- misassessed, and cultural impacts of projects are
nology is the challenge to SEs today. insufficiently analyzed. The challenge to SEs is not
There are three main social barriers to globaliza- to oversimplify projects and circumstances of their
tion of businesses: infrastructure differences, tech- implementation that inhibit technology transfer, but
nology transfer differences, and political and cultural to attend to the cultural aspects of implementations.
differences. Infrastructure usually refers to the In any technology transfer project, it is imperative
installed base of equipment and services for commu- that the sensitivity to local differences is maximal.
nications, transportation, and services of a geo- Teaching and training in a different culture does not
graphic entity (i.e., a country). Infrastructure relates mean making the target audience the same as you.
to computers, telecommunications, and supporting Equifinality must be allowed. SEs' roles change
software, including, for instance, database and net- from doer to facilitator, with less control than usual
working software. over outcomes. Successful globalization of applica-
There are two infrastructure challenges to SEs. tions and technologies requires considerable breadth
The first challenge is technical, learning both current experience for SEs; for those who can develop and
and past technologies, and devising sometimes integrate the necessary business skills with their
messy ways to integrate them. The second challenge technical skills, the rewards will be huge.
is social, developing and presenting alternatives and Client/server and multimedia are technologies
trade-offs for imaginative, practical, cost-effective that enable globalization and require different ways
applications in developing countries. of thinking in a global context. Most effective place-
Technology transfer is a large scale introduc- ment of data, database software, software, storage
tion of a new technology to some previously non- media, and computers is the main issue. Distribu-
technical environment. Transfers of computing and tion of data and functionality will require new deci-
communications technologies to all developing sion criteria. Before distributed applications,
countries in Eastern Europe, Asia, Latin America, decisions were based on what the software and hard-
and Africa are needed. History leaves me pessimistic ware could do. Constraints drove the decision pro-
about such transfers taking place easily, smoothly, or cess. Now we can have anything anywhere. The
soon. Broadscale transfers for such disparate tech- decision criteria shift from being technologically dri-
nologies as farming methods, birth control, building ven to being business driven. Why do we need data x
of dams, and water purification have failed simply for y PCs in location z if we can have a data for b
because technologists fail to contend with cultural PCs in location c? What business requirements
differences and resistance. 13 Technology transfer demand this placement of data, hardware, and so on?
The extent of distributed multimedia access and
13 See Hirschman, A. 0., Development Projects Observed. enabling of peoples in far-off locations that takes
Washington, D.C.: The Brookings Institution, 1967. place will become a conscious business decision.
574 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
Ethical, political, and practical issues inform dis- and implementation. 00 is more detail- and pro-
tributed media placement decisions. gramming-oriented, resulting in a deeper level of
Multimedia applications, because they support design by the end of the design phase. SA is so
data, graphics;photos, audio, and video images, also process-oriented that data, input, output, and other
have a significant cultural component in a global detailed aspects of the application are left to
application. Design of culture-free or culturally-rich SE skill and are not specifically addressed by the
applications becomes a decision. Is it truly possible methodology.
to design culture-free applications? My feeling is no, The second analysis of methodologies used the
all applications have cultural assumptions at least Humphrey's maturity framework to discuss the
implicit in their design. Multimedia will make obvi- maturity of methodologies. Humphrey discusses the
ous our assumptions about appropriate words, pic- initial, repeatable, defined, managed, and optimizing
tures, and ideas for users. Biases that surface levels of maturity. The results of this analysis show
will relate to information system developers, user that no methodologies are currently beyond the
designers, and manager approvers. When applica- defined level and that SA is only at the initial level.
tions go global, assumptions that survive in the There are too many activities that are not addressed
United States, in all likelihood, will be inappropri- by SA to reach the repeatable level for all requisite
ate globally. The assumptions will require develop- tasks. At the repeatable level different people would
ment of the same application with different media arrive at the same design. IE is at worst repeatable,
components to fit the using culture. SEs will need to and, when completed in a CASE tool, may reach the
learn how to surface cultural assumptions of appli- defined level. 00 is at the repeatable level for many
cation developers and how they carryover to the fin- early activities, but is at the initial level for package
ished product. SEs will need to make assumptions and message communication design.
explicit, then use the assumptions to design cultural CASE tools were discussed in their ability to pro-
diversity into applications. vide three key design objectives: integration, intelli-
In summary, business and technical trends are gence, and multiuser support. The ability of CASE is
pointing toward breadth and depth of skill levels hampered by methodologies that are not themselves
in SEs in many different areas. Methodologies integratable because of shifts in thinking that must
do not support these trends today. Therefore, con- be made from one phase of work to another. In gen-
tinued evolution and change to methodologies can eral, SA and IE characterize such shifts and have rel-
be expected. ative difficulty in CASE interphase integration of
work. In contrast, 00 is more consistent in the think-
ing and documentation forms both within and
between phases, thus, the CASE tools supporting
SUMMARY ________~___ 00 are more highly integrated and represent the
ever more detailed thinking required in OOD, and do
Two methods of analyzing methodology classes so within similar graphical and text forms through-
were used in this chapter. The first, the information out the CASE tools.
systems methodology framework, was extended to Next, business and technology trends that impact
include the characteristics of applications from application development were discussed, including
Chapter 1 and the desirable characteristics of appli- legacy systems, repositories and data warehouses,
cations. From the analysis we know that both infor- client/server computing, multimedia applications,
mation engineering (IE) and object orientation (00) and business globalization. Legacy systems and data
are more complete in desciibing applications than are historical leftovers from premethodology days
structured analysis (SA), but each addresses differ- that may have errors and structural flaws that make
ent phases of the life cycle. IE is more complete in their conversion to new environments costly and dif-
coverage of organization level information systems ficult. In particular, client/server, data warehouses,
planning and analysis, both of which precede design and repositories are three emerging technologies to
References 575
which companies want to migrate the legacy systems Dunsmore, H. E., W. M. Zage, D. M. Zage, and
and data. Client/server environments provide for G. Cabral, "Building an empirical case for CASE,"
storage and processing of data wherever it is most Software Engineering Research Center Report
needed by the organization in a peer-to-peer SERC TR-8-P, Lafayette, Indiana, December 16,
network. Data warehouses are storage technologies 1987.
that provide for massive amounts of historical data. Episkopou, D. M., and A. T. Wood-Harper, "Towards a
framework to choose appropriate information systems
Repositories are versatile means of storing informa-
approaches," The Computer Journal, Vol. 29, #3,
tion about data, applications, hardware, and software
1986, pp. 222-228.
that provide the definitions of interchangeable tech- Gane, Chris, Computer-Aided Software Engineering: The
nology components. Multimedia applications will Methodologies, the Products, and the Future. Engle-
use repositories to define the integration of object wood Cliffs, NJ: Prentice-Hall, 1990.
orientation, database, and storage technologies in Guindon, R., and B. Curtis, "Control of cognitive
one application environment. processes during software design: What tools are
Globalization is the movement of businesses into needed," CHI Proceedings. ACM: 1988, pp. 263-268.
worldwide markets. Global application developers Guindon, R., H. Krasner, and B. Curtis, "Breakdowns
must deal with difficulties in development due to and processes during the early activities of software
infrastructure differences and technology transfer design by professionals," in Empirical Studies of Pro-
grammers-2nd Workshop (G. Olson, E. Soloway,
difficulties. Technology transfer is the large-scale
S. Sheppard, eds.). Norwood, NJ: Ablex Publishing
introduction of new technology to a new environ-
Co., 1987, pp. 65-82.
ment, usually a developing country. Problems in Hirschman, A. 0., Development Projects Observed.
technology transfer relate to cultural and political Washington, D.C.: The Brookings Institution, 1967.
differences more than to the new technology. SEs Humphrey, Watts S., "Characterizing the software
developing global applications will need to attend process: A maturity framework," reprinted in Mile-
to the culture and politics to be successful. Client/ stones in Software Evolution, Paul W. Oman and Ted
server technology enables global applications. Mul- G. Lewis, eds. Washington, D.C.: IEEE Press, 1988,
timedia was discussed as one type of application pp. 301-307.
with a significant cultural component. Humphrey, Watts, Managing the Software Process. Read-
ing, MA: Addison-Wesley Publishing, Inc., 1989.
Iivari, Juhani, "Levels of abstraction as a conceptual
REFERENCES ______~____ framework for an information system," Proceedings
of IFIPS WG 8.1: Information Systems Concepts: An
Adelson, B., and E. Soloway, "The role of domain In-Depth Analysis, Belgium, October 18-20, 1989,
experience in software design," IEEE Transactions on pp. 122-15I.
Software Engineering, SE-11 , Vol. 11,1985, pp. Kelly, John c., "A comparison of four design methods
1351-1360. for real-time systems," ACM SIGSOFT Software
Bergland, Gary D., "A guided tour of program design Engineering Notes, Vo1.12, 1987, pp. 238-25 I.
methodologies," IEEE Computer, October 1981, Keys, Paul, "A methodology for methodology choice,"
pp.13-37. Systems Research, Vol. 5, #1, 1988, pp. 65-76.
Card, David N., Frank E. McGarry, and Gerald T. Page, McClure, Carma, CASE Is Software Automation. Engle-
"Evaluating software engineering technologies," IEEE wood Cliffs, NJ: Prentice-Hall, 1989.
Transactions on Software Engineering, Vol. SE-13, Olle, T. William, Jacques Hagelstein, Ian G. McDonald,
#7, July 1987, pp. 845-85I. Colette Rolland, Henk G. Sol, Frans J. M. Van
Conger, S. A., "Teaching globalization in information Assche, and Alexander A. Verrign-Stuart, Information
systems courses," in Global Information Technology Systems Methodologies: A Frameworkfor Under-
Education: Issues and Trends (M. Khosrowpour and standing. Wokingham, England: Addison-Wesley
K. D. Loch, eds.). Harrisburg, PA: Idea Group Pub- Publishing Company, 1988.
lishing, December 1992, pp. 313-353. Panzi, David J., "A method for evaluating software
Datamation; "The best in client/server computing," Spe- development techniques," The Journal of Systems and
cial Issue, October 1, 1991, pp. 1-24. Software, Vol. 2,1981, pp. 133-137.
576 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
Pennington, N., "Stimulus structures and mental repre- working protocol), im:lging. Predict how the
sentations in expert comprehension of computer pro- technology will change in use in applications in
grams," Cognitive Psychology, Vol. 19, 1987, pp. the next five years. Predict IS and user organiza-
295-341. tional changes as well as design changes.
Pressman, Roger S., Making Software Engineering 2. Discuss globalization of businesses and other
Happen: A Guide for Instituting the Technology.
changes to software engineering activities that
Englewood Cliffs, NJ: Prentice-Hall, 1988.
might be required.
Sorenson, Paul G., Jean-Paul Tremblay, and Andrew J.
McAllister, "The metaview system for many specifi- 3. Compare the methodologies using your own
cation environments," IEEE Software, March 1988, technique. What are the important methodology
pp.30-38. issues to you? How easy or hard do you find the
Wand, Yair, and Ron Weber, "On the deep structure of work involved in describing the ABC applica-
information systems," Information Systems Research, tion in each methodology? How easy or hard is
Vol. 4,#2, 1993,pp.23-45. it to really learn each methodology? Which are
Ward, P. T., and S. J. Mellor, Structured Development for you most likely to continue using? How likely
Real-Time Systems (three volumes). NY: Yourdon do you think these methodologies are to be use-
Press, 1985. ful for the emerging technologies of client/
Yourdon, Edward, Modern Structured Analysis. Engle-
server and multimedia? How would you change
wood Cliffs, NJ: Prentice-Hall, 1989.
any or all of the methodologies to make them
more usable? How might methodologies
KEY TERMS _________ become less tied to technology? (Please send
your responses to the author.)
AI inCASE Humphrey's repeatable
associative data level
relationships information systems
CASE integration methodology framework
STUDY QUESTIONS _ _ __
client/server information systems plan 1. Define the following terms:
complexity (ISP)
client/server Humphrey's maturity
data warehouse infrastructure
downsizing
downsizing framework
legacy
equifinality legacy data equifinality legacy data
fragile applications legacy systems globalization repository
globalization multimedia 2. What phases of application development are in
Humphrey's defined level multiuser CASE the Olle et al. information systems methodol-
Humphrey's initial level peer-to-peer network ogy framework?
Humphrey's managed process groups 3. Describe the features of the Olle et al.
level repository approach to comparing methodologies and
Humphrey's maturity seamless CASE identify the sophistication of the three method-
framework technology transfer ologies on each feature.
Humphrey's optimizing
4. Why do you think the ISP was left out of the
level
process methods of Tom de Marco and
Ed Yourdon? (You might refer back to Chapter
EXERCISES _ _ _ _ _ _ __ 1's historical discussion for a hint.)
5. Object-oriented methodologies all ignore the
1. Write a three- to five-page paper describing front-end tasks of feasibility and data collec-
some new technology--distributed database tion. Why? Can they continue to ignore those
(e.g., Informix or Sybase), Multimedia, Simple actions and still be useful in business applica-
Network Management Protocol (SNMP) (net- tions? Why?
Exercise Questions 577
6. The Olle et al. framework was expanded to does the author view current products on the
analyze the phases within each methodology market? How does a CASE tool you use rate
where information is expected to become on these three criteria? What changes might be
known. Describe this framework extension made to the tool you use to improve its integra-
and identify, for data, processes, relationships, tion, intelligence, and multiuser support?
physical database model, and event triggers, 19. Describe the research that seeks to integrate the
where this information is known in each of the best of all methodologies into a new, improved
three methodologies. hybrid. Critique the utility of such a methodol-
7. What is the position of process methodologies ogy and identify three of the problems with
with respect to data and data modeling? What this approach. What benefits might accrue from
is the significance of this position? How inte- a hybrid methodology? Why is it such a popu-
grated is data to process description? What is lar topic of research?
the significance of this level of integration? 20. Describe the research that studies novice analy-
8. List three sources of application complexity. sis of problems and relate this research to that
How does each source add to the complexity of which seeks to integrate the best of all method-
an application? ologies into a new, improved hybrid. How
9. Which methodology handles complexity the can the analyst research be used to improve
best and why? What is deficient about the other methodologies? What effect will hybrids have
methodologies' handling of complexity? on novice learning?
10. To what extent do the three methodologies dis- 21. What impact do legacy systems and data have
cussed guide input/output design? What is the on the use of new methodologies and CASE
significant of this? tools?
11. Rate the three methodologies on desirable 22. Define and discuss the issues of legacy systems
application characteristics: minimal coupling, and data.
maximal cohesion, and information hiding. 23. Define a data warehouse and why companies
Justify your ratings. are moving toward implementation schemes of
12. What is Humphrey's maturity framework? this concept.
How is it used to assess IS organizations? How 24. What is an associative data relationship and
is it used to assess IS methodologies for appli- why does it impact data storage techniques?
cation development? 25. Define client/server computing and downsiz-
13. What are three shortcomings of Humphrey's ing. Discuss how they relate.
framework? How might they be eliminated? 26. What is multimedia and how does it relate
14. List and describe the five levels of maturity in to application development and method-
Humphrey's framework. ologies?
15. Do many organizations or methodologies reach 27. Describe some of the cultural issues in global
the optimizing level of Humphrey's frame- information systems development.
work? 28. What are the main issues in deploying global
16. Describe the three methodologies in terms of applications?
Humphrey's framework.
17. If you have access to a CASE tool, use Table
13-6 to analyze the sophistication of your tool.
List five ways in which the tool you use could
* EXTRA-CREDIT QUESTION
1. Change the scenario for ABC Video. Assume
be improved to contain more of the desired ABC is an international organization that not
CASE features and functions. only rents videos but also sells concert tickets,
18. Three issues in CASE are discussed: integra- CDs, and other related entertainment and musi-
tion, intelligence, and multiuser support. How cal merchandise. What cultural assumptions are
578 CHAPTER 13 Summary and Future of Systems Analysis, Design, and Methodologies
in the case description of ABC Video that need equipment differences. If each of 3,000 stores
to be reexamined for an application to be used in 60 countries send information to a single site
in locations all over the world? What other in, let's say, Los Angeles, once each day,
changes might be required for worldwide use what technology considerations might be
of the rental application? Don't concentrate required?
on merchandise; concentrate on the cultural and
CHAPTER14
___ THE FORGOTTEN
___ ANALYSIS AND - - - - - - - - - - - - - - - - - -__________r - - - -
579
580 CHAPTER 14 The Forgotten Analysis and Design Activities
creation and collection of paper from which data is 1. Define task profile.
then keyed into a machine. The more people who 2. Define user profile and application design
touch a transaction, the more errors it will have. response.
Therefore, eliminate all middle men, enter data at 3. Choose option selection screen type.
its source, and errors are greatly reduced. 4. Choose functional screen type.
Second, which data to collect and display are also 5. Design option selection interface.
issues. The general answer, based on practice, is all 6. Design functional screen interface format.
data required for business reasons. Data may be 7. Choose field format options for normal,
expanded to include company specific requirements. abnormal, alert, and alarm data conditions.
Also, data items IS staff think might some day be 8. Design on-line user documentation, error
necessary, but for which users have no current or messages, and abnormal processing for all
future business need, should not be collected or interfaces.
displayed. 9. Design reports as required.
Last, and most complex, is how human-computer
interactions should be structured and presented to
ease learning, minimize errors, and facilitate use. Develop a Task Profile
Research and theory on physical and cognitive
Guidelines for Developing a Task Profile
aspects of memory, information processing, pacing
of work, color perception, icon perception, and key- The first activity is to develop a task profile which
stroke effectiveness all are used to determine guide- summarizes work requirements of the application.
lines for interface design. The results of applying the The level of detail in developing a task profile
research versus not applying the research are depends on the type of application being developed.
increased productivity and reduced errors. Since the The first task, then, is to classify the application as
research is so voluminous, it is presented in the con- either transaction, query, DSS, ESS, or process
text of the chapter. monitoring and control (a special type of TPS).
With all the choices and research recommenda- Since transaction processing is the most frequent
tions, deciding how to actually design functional application type in businesses, they are discussed
screens can be a confusing exercise. In the next here. The level of detail and activities for task profile
sections, practical guidelines from research and develop-ment are summarized in Table 14-1 for the
practice are developed. Information from the analy- above application types.
sis phase is used to define the display requirements For each activity, a hierarchy of processes is
of the human interface. The analysis information is defined. This is the basis for screen navigation
used to define a task profile for the application. design. The top activities identified become selection
Then, a profile of users is developed to identify options on a menu. Upon selection, the entries at the
screen requirements that relate to users rather than second hierarchic level are presented, and so on
to functions of the system. The task profile is until a functional work screen is presented. The level
matched to guidelines for the application type to of detail for the hierarchy should match the level of
define and select the general interface as menus, processing detail for the application type.
windows, or commands. Application type also sug- Next, required and optional data are defined for
gests functional screens as forms oriented, ques- each task (see Table 14-1). For business applications,
tions and answers, or direct manipulation. Once the following the methodologies discussed in Chapters
general and functional interfaces have been defined, 7-12, required and optional data for entities should
individual field presentation is defined and format- have been defined and documented in the data dic-
ted for the screen. Finally, extra field characteris- tionary. For most business applications, this infor-
tics, such as color, are decided and added to the mation can be developed at the entity/relation level
design. Each of these topics is summarized below rather than the attribute/field level. The idea is to
and addressed in the following sections. identify multivariate dependencies which, in real-
Human Interface Design 581
Define Task Process Level Activity Level Activity/ Activity/ Process Level
Hierarchies Process Level Process Level
Define Transaction/ Entity Level Entity Level Entity Level By input source
Required/ Field Level
Optional Data
Define Data Only if greater Only if greater Only if greater Only if greater For each field
Precision than 2 decimal than 2 decimal than 2 decimal than 2 decimal
places for places for places for places for
numbers numbers numbers numbers
Define Data Process/ Activity Level Activity/ Activity Level Field Level
Source Transaction Process Level
Level
Define Entity/ Entity Level Entity Level Entity Level Field Level
Purpose Transaction
Level
Define Only if it varies Only if it varies Only if it varies Only if it varies Field Level
Accuracy from 100% from 100% from 100% from 100%
Define Domain Field Level Field Level Field Level Field Level Field Level
ID Specific Field Level Field Level Field Level Field Level Field Level
Display Criteria
time systems, may need to meet synchronization and and text fields might be blanks, commas, or slashes.
timing constraints. These definitions limit the number of data fields on a
If not already defined, precision requirements line while defining specific screen contents.
should be specified, by field, for all numeric fields The source of data for each process should be
(Table 14-1). Precision requirements specify the identified next (see Table 14-1). Data source can be
number of decimal places and special display char- user-provided through data entry, measured data
acters required for numeric information. Precision entry, or system-derived through computation. The
is very important in mathematical, statistical, and key to identifying source, if it is unknown, is to
process control applications. Precision beyond two determine where users go when they have a question
decimal places is frequent in business applications about data on a screen. The answer might define a
dealing with large financial transactions. Banking user, instrument type, or application as the informa-
applications, for instance, frequently require preci- tion source. When user data entry is the source, train-
sion to five decimal places for computing interest ing needs and help facilities are required to ensure
due and paid. Specific maximum field size, need for proper entry. Edit checks for entry errors are re-
sign (e.g., +), and need for debit/credit indicators quired. When instrument measures are the source of
[e.g., CR or ( ) ] should all be defined. For text data, the signal-to-noise ratio should be analyzed to
fields, the maximum length should be defined, if not determine the need for filtering devices or software.
already done. Possible edit characters for numeric Fields for which the application is the source are
582 CHAPTER 14 The Forgotten Analysis and Design Activities
called derived fields for which data entry is not ABC Rental Application Task Profile
allowed.
Next, the purpose of every entity or field should There is no special complexity in the ABC rental
be defined, depending on the type of application. application, so completion of the task profile is rela-
Possible choices for purpose are forms completion, tively simple. We are using the Information Engi-
information, alert, or alarm. Business applications neering analysis in Chapter 9 as the basis for
data purposes are usually form completion and this discussion. The first action is to create the
information. Rarely are data items used to alert or task hierarchy. Using activity level as the top of each
alarm the user. Because alarms are rare in business, hierarchy, we rearrange the processes as the next
entity level checking is sufficient for all but critical level and their subprocesses as the third level, con-
applications. For each entity, then, the task profile tinuing until all processes are elementary (see Figure
identifies needs to send alert or alarm signals to the 14-1). This diagram is the basis for navigation
user based on data changes or system process out- between screens. Each leg of each level on the
comes. For critical and process control applications, hierarchy is translated eventually into a menu selec-
each data element should have its purpose defined tion list.
since the task of process control is to monitor As of the analysis, all data were required for all
changes in a system and correct any abnormal or entities (see Table 14-2). Precision for money fields
undesired processes. Alerts to changed conditions is two decimal places. All other numeric fields are
and alarms to abnormal conditions are an integral dates or integers. The source of Customer, Video,
part of process control interface design. and Copy data is user data entry, so extensive edits
The need for accuracy for each task and, if less will be needed in the entry programs to ensure that
than 100%, of the data processed should be assessed. only correct data enters the system. End of day,
In business applications, this definition should be Video History, and Customer History are all derived
provided only when it varies from 100%. Typically, by the system and have no human interaction. The
variation in business is in query or ESS applications derived relations identify testing requirements for
for which ballpark numbers are acceptable for many specific verification. The Rental relation is a combi-
types of processing. nation of entered and derived data which identifies
For instance, a marketing person may want to tar- both edit and testing requirements.
get a product to one or more specific demographic The purpose of the entities is either forms com-
groups. If the target mailing is 1,000,000 pieces, the pletion or information with one Rental relation
marketer needs to know how many groups he needs exception. The credit field will be used to deny rental
to meet this goal. A sample based on selection crite- privileges to customers who have a poor credit
ria (e.g., age, education level, and zip code) can be rating. Some special processing may be desired to
used to project the size of the population ±5%. In highlight bad credit ratings. The possibility of high-
this case, a 0.1 % sample might be sufficient. Rather lighting bad credit rating information should be
than read a 20,000,000 record file, only 20,000 discussed with Vic and his approval obtained. No
records are needed. decision is made at this time.
The last two pieces of task information-domain Accuracy for all maintenance, rental, return,
and display criteria-are defined if not already com- and query tasks is assumed to be 100% (see Table
plete. The domain is the set of allowable values for 14-2). If Vic, while performing ad hoc querying,
each field. Special display criteria might include chooses to sample the data rather than read the entire
translations of data to text (or vice versa), or a spe- database, that is okay, but not of interest for this
cial color for some field, and so on. definition.
All of these task characteristics are used to deter- The domains of each field are in the data dictio-
mine the type of interface in system terms, and to nary. No special display criteria are identified at
determine training needs for users. this time.
Human Interface Design 583
Get Return ID
Print Receipt
Develop a User Profile application and how it will address the user needs is
also developed.
Guidelines for User Profile Information in the user profile is obtained from
Development users through interviews, questionnaires, or person-
nel file searches. If personnel file searches are per-
A user profile is developed to determine the need formed, only average ratings of user skills should
for special interface design requirements that relate be computed unless each employee gives permission
to the user rather than the task. User profile criteria to use his or her information. Use of employee
include physical, educational, computer, and task records for other than personnel purposes without
capabilities (see Table 14-3). At the same time the permission is considered an unethical violation of
user profile is developed, a matching profile for the privacy rights.
584 CHAPTER 14 The Forgotten Analysis and Design Activities
In critical applications with possible life threaten- Typing is the other typically used physical skill. If
ing consequences, each individual user should be user typing skills are low, either the application must
profiled and reviewed for proper skills, computer be designed not to require typing, or typing training
experience, and task expertise before being assigned should be provided to users.
to use the new application. Education can take Education and math profiles can be either
care of some deficiencies in skill levels, but with individual or average analyses (see Table 14-3).
some critical applications, people may be reas- Education level determines the level of writing
signed to other jobs when their knowledge does required to explain errors. For math-intensive or
not match the application requirements. For noncrit- numerical control applications, specific math skills
ical applications, the profile can average user skills might also be necessary of users. When this is the
for each characteristic. User profile is used to deter- case, math skills needed are defined for each task
mine sophistication of the interface and train- (e.g., one task might need algebra, one might need
ing needs. the ability to interpret geometric drawings, and so
Physical skills include color perception, typing on). Users whose profile does not match the required
skill, and physical disabilities that might be present skill levels are trained or reassigned. Many compa-
in the user population. Color perception problems nies, such as Texas Instruments, Chevron Oil, and
mean that reds and greens might not be perceived. others, retrain their employees in math skills needed
If colors are used, users should be screened to ensure to manage complex computerized manufacturing
that they can recognize the selected colors. Also, equipment.
color selection should relate to conventional mean- When the average education and math levels are
ings for each color used. For instance, red is the lower than high school-graduate level, the applica-
usual alarm-signaling color. In an application using tion interface must be designed as simply as possi-
red to signal an alarm condition, then, all users ble. Instructions and text help must be written using
should be screened for their ability to perceive the sentences under 25 words and use words averaging
color red. less than three syllables. Different indexes can be
Human Interface Design 585
Physical Skills:
Color Perception Red/Green/Blue Color Either design application without the
Perception problem colors or reassign the users.
Typing Ability in words/minute Either design the application to fit the skill
level or schedule typing training to increase
skill level.
Disabilities Sight, hearing, or physical Either design application to accom-
impairment that might change modate impairments or reassign the
application hardware, software, users.
or interface design
Educational Skill:
Education Level Average or actual level of For both education and math, design
highest degree application help and training to ensure users
can learn and uSe the application.
Math Proficiency Average or actual level of
math proficiency
Language
Native All native languages not the same International applications should use
as intended implementation language native to the region for the
language application interface.
Proficiency with Average or actual level Training and text descriptions in appli-
application language of proficiency cation can be no more difficult than the aver-
age level of proficiency. Training should be
provided to ensure that all users attain the
average level (i.e., the average becomes the
minimum).
Computer Proficiency
Average Proficiency Average or actual level of Design the application help, messages,
proficiency in years of and user documentation to ensure
experience understanding of all functions,
messages, and menu options.
Number of packages Number and type of packages Define training method and
with which users are familiar requirements.
Define level of supervision after training is
complete.
Job Characteristics:
Turnover Average % new employees per Determine interface option selection
year type.
Experience Average years task experience Determine level of help and location (auto-
mated vs. manual and immediate screen mes-
sage vs. requested help).
586 CHAPTER 14 The Forgotten Analysis and Design Activities
used to compute reading level of text. For instance, able activities, classroom and hands-on training
the software RightWriter©, l provides the Kincaid would be indicated. For applications that are simple
reading grade level (scale of 1-16), Flesch index of and have few activities, classroom, computer-based
readability (scale of 1-10), and a fog index (ratio of training or on-the-job training are sufficient. Assign-
nouns and verbs to total words in a sentence) as mea- ment of new staff on the job might require close
sures of text difficulty. supervision for a period of time to ensure that they
Information about native language is important to possess the skills to use the system properly. Close
determining the language of the interface. As glob- supervision should be used for all critical applica-
alization of the economy and development of global tions regardless of complexity or method of training.
organizations increases, the need to implement the The level of task turnover in the next rating cate-
same system worldwide will become commonplace. gory determines which of the training methods is
When applications are implemented in other coun- actually used. If turnover is low, classroom or com-
tries, the native language should be used as much as puter lab training reach the most people at once and
possible. From research we know errors are reduced are the cheapest. If turnover is high, some method
and some user satisfaction comes from working with of individual training is required. Some alternatives
applications in one's native tongue. Sometimes, this for individual training are on-the-job, programmed
requirement is government imposed. For instance, in instruction manuals, or computer-based programmed
the early 1980s, the King of Saudi Arabia declared instruction. All can be effective means of training.
that as of 1990 all communications, documentation, Finally, task experience is estimated. If the aver-
and application interfaces used in the kingdom age user has a high level of task experience, the
would be in Saudi language. This posed a tremen- labels for fields can be more abbreviated, less text is
dous challenge to every company doing business needed to guide data entry, and an expert mode of
with Arabia because Arabic is read right to left, fre- operation might be preferred. If the average user has
quently omits vowels, and has as much as 50% of a low level of task experience, or experience is vari-
every sentence in a local dialect. At the time of the able, novice and expert modes might both be needed.
declaration, there was no one recognized Arabic Task experience and turnover information to-
dictionary for the Arab world. Rather, each country gether determine the mode of interface as novice or
had its scholars map the language for their country. expert, and the extent to which on-line help should
In general, the more critical the application for be provided. Figure 14-2 shows that with low expe-
controlling some potentially catastrophic process, rience levels, novice-only modes are required. With
the more important native language processing a high experience level, either a mixed mode or an
becomes. I would not like to think of a person expert mode-only are required.
who barely speaks English as the controller of a Figure 14-3 shows that the type of message and
nuclear power plant with all systems and manuals extent of on-line assistance also varies with experi-
in English! ence and turnover. Low experience with low turn-
Next, computer experience is profiled. The aver- over suggests use of meaningful text error messages
age and range of number of years experience, num- with on-line help to elaborate on the error messages.
ber of software packages used, type of software (e.g., With high turnover, the on-line help should include
spreadsheet), and whether the individual develops information on menu options, fields to be completed,
his or her own software are all important to know. and error messages for data entry errors. With high
The level of computer experience, coupled with the experience levels, the on-line messages can be
skill level required of the application, determine the abbreviated (or eliminated with use of a beep instead
type of training that is most effective. For applica- of any text message), and with high turnover, sup-
tions that are complex, critical, or have many vari- plemented with a paper manual documenting errors
and error recovery.
Last, effective training for the application type,
1 RightWriter is a copy-protected product of RightSoft, Inc. user education level, and experience level can be
Human Interface Design 587
Turnover
Low High
Task
Experience
Turnover
Low High
Task
Experience
FIGURE 14-3 Turnover and Task Experience Determine Level of On-line Assistance
588 CHAPTER 14 The Forgotten Analysis and DeSign Activities
decided. Training choices include classroom in- the phone (or other ID) number will be typed. An-
struction, computer-based training (CBT), or on- other typed entry is the total amount paid. This
the-job training (OJT). Classroom training is the should not be too error prone because most people
most cost-effective for groups of students. Students pay in even dollars, receiving change. If the need to
can ask questions and receive personalized training enter a few numbers really worried Vic, user ID
while a number of people are being trained simulta- cards can replace the need to type user IDs, or,
neously. The disadvantages of classroom training are alternatively key pads are less error prone than type-
high cost and the fact that training cannot be writer keyboards and could be used.
repeated without additional cost. The average education and math levels of em-
CBT is most effective for training one or a small ployees is expected to be at the 10th-grade level.
number of people simultaneously and at different This means that algebra is the most abstract level of
rates. CBT is self-paced, low pressure, and does not math skill. The system design criteria are KISS-
require a senior person to monitor the training. The keep it simple, stupid-so the 10th graders can do
major disadvantage of CBT is its cost, which is the work easily. The math level should be acceptable
steadily dropping. Much training in business will be since the only skills required are to enter the amount
computer-based by the year 2000 because, by then, it paid and to make change.
will be cost-effective for most business uses. The language of employees and the language of
On-the-job training is cheap but requires a senior the application is expected to be English.
person to teach trainees. The senior person is Task turnover is high and task experience varies
assumed to be a good teacher who can explain all from low to high. Vic has one employee who has
necessary variations to someone else. These as- worked there four years and two who have been
sumptions may not be valid. If OJT is used, some there two months. The task experience of the long~r
manager or senior staff person should monitor train- employee is significantly greater than the other two.
ing and privately correct the teacher if a problem While the video rental business is not complex, the
arises. two newer employees cannot be expected to perform
all functions. The system design criteria in response
ABC Rental User Profile to high turnover and variable task experience is to
provide a simple interface with message help on
Video stores hire younger people, who are frequently
request for all selections, fields to be completed, and
in high school. The turnover is high because it is
error messages.
part-time work with mostly evening hours (prime
Computer experience is also expected to be vari-
date time) and because the business is somewhat
able but generally low. Number of years' experience
cyclical in video rental patterns. Since the specific
for the three employees ranges from zero to two
users are not known, the average user is estimated
years. Number of software packages ranges from
based on the four current ABC employees. The
zero to three. The software used is word processing
analysis is summarized in Table 14-4.
by two people, and database and spreadsheet by one
In the ABC example, current employees have no
person. One person wrote his own software.
physical impairments and none are anticipated. Typ-
With little computer experience, high turn-
ing skill is expected to be low. No particular prohi-
over, low task experience, low task complexity, and
bitions on color or special ttquipment will be needed
10th-grade education, two alternatives are recom-
except to compensate for the lack of typing skills.
mended. First, individual, self-paced, computer-
The application will use a bar code reader, as sug-
based instruction (CBT) is recommended because
gested by Vic, to replace the need to type most
the students can come in on their own time to train
information. The bar code reader minimizes the key
whenever it is convenient. When the store is not
strokes required of users. The reader will scan user
busy, they might continue their on-the-job training
IDs, if they are used, and video bar codes to enter the
using the CBT. The method would be to give the per-
information to the computer. If user IDs are not used,
son one each of the different transaction types. The
Human Interface Design 589
Physical Skills:
Color Perception No Problems None
Typing Less than 15 WPM Design to minimize data entry by using bar
code reader for Video ID, Copy ID; data to be
entered Customer Phone, Amount Paid
Disabilities None
Educational Skill:
Education Level 10th Grade On-line help
Math Proficiency Algebra Needs no special design. Users must be able
to make change.
Language:
Native English/Spanish None unless Vic wants to verify user ability
to read all display text
Proficiency with High English will be the implementation language.
application language
Computer Proficiency:
Average Proficiency Low, 0-3 yrs. Training in basic computer skills, startup,
Average = 1 Yr. shutdown, etc., required.
Number of packages 0-3, Lotus, WP
Job Characteristics:
Turnover 65% Yr. Use extensive on-line help for all options,
entry types, data types, forms fields. Provide
expanded on-line help to supplement mes-
sages for errors.
Experience Low to High, Provide extensive training in all transaction
Average = Low types, beginning with turning on the machine.
Monitor performance for first week on the job
to ensure that training was sufficient.
person would enter the information and the com- the trainee should be sufficient. If this is the chosen
puter would automatically do all subsequent pro- alternative, the trainees should learn rental and
cessing. Then, the person would do several of each return processing first. This can be followed with
type of transaction completely. The system would less important tasks after several days. If OlT is the
intercept their entries and prompt them for correc- preferred training method, Vic should monitor the
tion, displaying reasons for the correction when they trainer(s) and trainee(s) closely for several days to
made errors. ensure that the trainers cover all alternatives, pace
Second, if CBT is too costly, on-the-job training the instruction to fit the person, and make no as-
(OlT) with a senior person monitoring and assisting sumptions about the trainees' skills.
590 CHAPTER 14 The Forgotten Analysis and Design Activities
The footer screen section contains indicators of names and option selection technique. First, based
navigation choices. Nav.igation choices should iden- on the number of items on the menu, location is
tify which key to select for each allowable move- decided. If the number of options is less than 10, the
ment option. Movement can be within a screen, items should be centered as a left-justified list of
between screens, or between menus and functional options. If numbers or letters are assigned to the
screens. Usually, screen navigation actions are taken options, they should be right-justified, followed by
by using special keys: escape (ESC), delete (DEL), a period, and two spaces to the left of the corre-
or programmed function keys (PF or F keys). The al- sponding choice (see Figure 14-8).
lowable actions should be identified at the bottom When the number of options is 10 or greater, you
of the screen in a manner similar to that shown in should experiment with different layouts to make the
Figure 14-7. The identifiers should always contain a menu simple and easy to use. If the options are all
connector (such as colon) between the key label and independent, separating sequences of four or five
the action label. The action labels should be con- options by blank lines enhances understandability
cise, clear, and consistent across the entire applica- (see Figure 14-9). If list options are interrelated, then
tion (see Figure 14-7). Ideally, only actions allowed experiment with segmenting the screen into different
from the current screen should be shown. Others areas with each area containing an area ID and a cen-
might be blanked out or muted to indicate that they tered, justified list of options for the area (see Fig-
cannot be chosen here. ure 14-10).
The options for menu selection are entry of an
option ID without cursor movement, point and pick,
Menu Standards or entry of an option ID with cursor movement.
The research on menu processing has given us Either of the first two are recommended and selec-
guidelines for location and ordering of menu op- tion should be based on user preference (see Figure
tions. U ser/SE choices .prevail for menu option 14-11). The third option requires more key strokes
Human Interface Design 593
Customer Maintenance
1. Add
2. Delete
3. Update
4. Query
1. Consultant Assessment
2. Consultant Selection
3. Applicant Scheduling
4. Consultant Maintenance
9. Query Consultants
10. Query Clients
11. Client Billing
12. Consultant Payment
and is more error prone; therefore, it is not recom- option or letters assigned from the alphabet in
mended. Option IDs can be alphabetic or numeric; sequence. Again, there is no one right answer and
alphabetic options can be the first letter of the user preference should prevail. If a point-and-pick
Create Add
Update Delete
Query Update
Query
Add Customer
Add Change Customer
Change Query Customer
Query Delete Customer
Delete
FIGURE 14-12 Menu Options Listed By FIGURE 14-14 Complete Menu List
Frequency
menu-driven full screen displays because users can window is simpler than a menu system which uses
view different, possibly unrelated information at the the entire screen for one thing at a time. Because
same time in different windows. For instance, in windows are different from menus, they have dif-
ABC's rental application, we might be looking for ferent guidelines and standards for their use.
rental information for Sarah Cropley. We can begin a A typical window can have the components
query function, then type, for example a '?' in the shown in Figure 14-17. A Close Box stops process-
Customer Name field to indicate a look-up. A new ing and is similar to an F3 key use defined for a
window opens up and shows customer names. We menu. The Title Bar names the window the same
select Sarah Cropley, the window closes, the name is as the header line in the header portion of a menu.
moved to the first window, and we continue the Location ID and status indicator identify where the
query. Look -up and selection of information from a user is in the window and whether or not processing
Add Add
Delete Change
Query Query
Update Delete
Enter Selection:
FIGURE 14-13 Menu Options Listed FIGURE 14-15 Concise Menu List
Alphabetically
Human Interface Design 597
I Box
Windows have two basic varieties: tiled and over- if it is available, between windows. In current win-
lapping. Tiled window systems only create non- dowed systems, the user has little choice about
overlapping windows. These work best for process positioning of selected options for title bar and scroll
control and non data intensive applications. When bars, for example, but, if choice is allowed, the
many functions and types of data may be active at design should be consistent in all tasks. One of the
once, overlapping windows might be desired. Over- best features of the Macintosh environment is that
lapping windows layer windows as opened, one on Apple Computer requires any software operating on
another, until the application maximum. To move the Mac to use exactly the same interface definition
from one window to another, the user clicks on the as the Apple operating system. All software seems
edge of the desired window to bring it to the front familiar before it is even used. Finally, if no other
of the stack. features beyond a window space are used, scrolling
Windows are defined as hierarchies of objects for to allow viewing of all window accessible informa-
management. Figure 14-18 shows the hierarchy for tion should be provided.
the window components in Figure 14-17. As new Window menu styles include horizontal pull-
windows are opened, a new hierarchy is built. All down, Lotus-style horizontal pop-up, and vertical
of the window hierarchies are managed by a screen pop-up. Horizontal pull-down menus show the
manager which links all hierarchies. top-level selection choice across the top of the
Windows should be set off from each other and screen, taking the least screen space of all menu
from the background by thick, easily recognized options (see Figure 14-19). When a menu is acti-
borders. Tiled windows should provide blank space, vated, by having the cursor moved to its location, the
Human Interface Design 599
second-level menu is pulled-down from the original Figure 14-20). The main difference is that pop-up
entry. To make a selection, the cursor is moved to the selection continues to show between pull-down and
desired option and activated. Activation is either pop-up menus the second level actions, whereas
through a return key or by pressing a mouse button. pull-down menus disappear as a selection is made.
Lotus-style horizontal pop-up menus present a Vertical pop-up menus are long lists that con-
second level of options shown as menu items (see tain a portion of the list in a scrollable window (see
Scrollable elements
not shown on
the screen
Figure 14-21). To select an action not currently ABC Rental Option Selection
showing, the menu is scrolled until the desired action
is visible. Then it is activated. Vertical pop-up menus The ABC rental application is mostly transaction
also disappear once an action is activated. In Figure processing with some query processing. Both
14-21, the items that would not be showing on the windows and menus are recommended for transac-
screen are in the gray area. tion systems, with windowed query development
There is no research on the effectiveness of these recommended for query applications. Both graphical
three types of menus. In general, though, we know and digital presentation are recommended. If hard-
from past research that familiarity with the interface ware has not already been chosen, these recom-
type leads to greater satisfaction with the software. mendations imply math and graphic capabilities for
Both horizontal pull-down and Lotus-style pop-up the workstations. Standard displays should be suffi-
screens are familiar to most PC users. Vertical pop- cient unless Vic wants many graphics, in which case,
ups remain useful for long lists. one display should be high-resolution for graph-
Both pull-down and vertical pop-up menus offer ical use.
a simple means for providing expert and novice The key screen design decision is between win-
modes of work. Command keys can be defined for dows and full screen menus for selection. There is no
specific functions and shown on a menu for optional one best choice in this decision. When software is
use (see Figure 14-22). Novices can use the menu chosen before screen design, software sometimes
without paying attention to the commands, while dictates the interface. For instance, mainframe soft-
experts can learn commands as they need them, ware, for the most part, does not support windows
becoming proficient in some areas and remaining a as this text is written. The most advanced screens
novice in others. This option, plus the office desk require a full-screen menu interface. Conversely,
metaphor that people easily relate to, make win- some PC software does not support anything but
dowed environments the preferred development menu bars and windows. To use full-screen menus in
screen style. this software is cumbersome and costly. User pref-
Human Interface Design 601
erence for selection tends to be strong and should Functional Screen Design
be the deciding factor.
Assume no software is selected yet. To give Vic Functional Screen Design Alternatives
an informed choice we should sketch both window
and menu screen and let Vic choose which he likes Once all navigation through menus or commands is
best. To do both, we have to design the interface to complete, the functional level of screen is presented
accommodate the application. For windows, the for the real work of the application. Functional level
menu bar should include each major entity and/or screen choices are direct manipulation, question and
process. The menu bars and subchoices for ABC answer, and form filling. Direct manipulation inter-
rental processing are shown in Figure 14-23. This actions are those in which the user performs an
design might change with software selection, such action directly on some display object. CAD/CAM,
as dBase IV, so a sample menu bar with subchoices CASE, and some computer-based training (CBT)
for dBase is also shown as Figure 14-24. Next, a systems have direct manipulation interfaces.
hierarchic menu system is defined for contrast Question and answer (Q&A) interfaces are
(see Figure 14-25). The hierarchy menus mirror those in which progressively more focused dialogue
the task hierarchy defined above. One menu is takes place based on responses to preceding ques-
present for each activity and for its successive lev- tions. Artificial intelligence applications and some
els of subactivities until the functional screens CBT systems are the most common uses of the Q&A
are reached. format.
The recommended design uses windows. Vic Form-filling interfaces are most common in
selects windows with the Figure 14-23 menus to be transaction processing applications but can be
used. He dislikes the dBase menu because none of used for any application needing to collect discrete,
the functions relate.to his applications. Finally, Vic single values for variables. Form-filling interfaces
requests a 'quick look' at the screens on the com- present the user with labels and indicators of where
puter to confirm his choice. data is to be entered. Users are led through the form
602 CHAPTER 14 The Forgotten Analysis and Design Activities
completion process by cursor movement and mes- interface designs are shown in Table 14-6 for all
sages from the software. application types. Windows are the preferred method
of selection presentation because they can be layered
Functional Screen Design Guidelines to keep track of thinking processes during long
selection sequences, and because their pop-up action
In general, the application type determines the most matches the way people think more closely than
appropriate functional screen design. Recommended menus. Command languages are not preferred for
Customer
Maintenance
Create
RenVReturn Update
Delete
Query
Move the cursor to your choice, Move the cursor to your choice,
Press Enter Press Enter
Create End of Day
Update History
Delete Update
Query Query
Startup
Shutdown
DSS and ESS because the users of these applications the task. Ideally, a combination of windows with
are usually managers who should not be expected to optional expert commands should be provided.
know a command language. DSS and ESS may be For transaction applications, forms completion
used infrequently and the interface should chauffeur screens are preferred for functional processing.
and lead the user as much as possible. Command Q&A is much less efficient for transaction applica-
languages are the third choice for all application tions (TPS) than forms because line-by-line entry
types because they assume expert level knowledge takes longer and is fatiguing. Direct manipUlation is
both of the task and of the computer system doing inappropriate for TPS.
Human Interface Design 605
For query applications, all options can be used for face is selected. Therefore, they could be designed at
selection and query generation. Query generation is the same time the general interface is being decided.
the functional processing in a query application. For In any case, the forms screens should be presented to
query generation, windows with query criteria are Vic to get general comments and to correct any
preferred. For experts, direct command language use design he might dislike before a prototype is built.
is preferred. Query results can use graphical or digi-
tal styles of presentation.
DSS and ESS should use a consistent interface Presentation Format Design
until data results are presented. Either window
Once the general form of the interface is decided,
selection with window request formulation or menu
details of display are decided. The first set of choices
selection with form request formulation are recom-
are for data presentation based on the type of data.
mended. Results screens can combine any graphic
The second set of choices are for specific field for-
and digital presentation styles, although warning
mats. Presentation format describes the method of
messages for inappropriate display selections might
displaying data on a screen.
be desirable.
Artificial language applications usually result in a
Q&A format. Each AI language environment uses Presentation Fonnat Design Alternatives
its own method. For instance, Turbo Prolog TM4 uses
a combination of windows and command language The options for presentation format include analog,
to initiate processing. A text answer which may have digital, binary graphic, bar chart, column chart, point
an associated probability of correctness is the usual plot, pattern display, mimic display, text, and text
AI output. Some AI language environments also forms.
support limited graphical display.
Last, in process control applications, the func- ANALOG. Analog displays are for continuously
tional display is the results display. Analog, mimic, variable data (see Figure 14-26) and are usually used
and graphical display are all common in process in direct manipulation interfaces. Analog displays
control, sometimes on the same screen. The display use a pointer of some kind to show a position that is
usually has a command line at the bottom of the analogous to a value the position represents. Ana-
screen. Commands are limited to requesting addi- log displays all should have a scale, pointer, a di-
tional information about a certain measurement or rection indicator of increasing/decreasing measure,
part of the system being monitored, or requesting a and an indicator of normal/abnormal measures (see
different display. The most flexibility and sophisti- Figure 14-26). For instance, analog display is effec-
cation of design are required in process control ap- tive for the pounds per square inch of pressure (psi)
plications because they are most likely to be critical to show a measure of exerted force. Another exam-
in terms of having life-sustaining responsibility. ple from manufacturing is the continuous flow of
various densities of oil from a cracking plant which
ABC Functional Screen Selection is effectively conveyed via analog display.
The scale is a numeric indicator of the item mea-
ABC rental processing is a TPS and will use forms
sures. A pointer indicates the current position on the
for the data entry functions. The forms screens for
scale. Pointers might be arrowheads or needles and
data entry include rental, return, customer mainte-
may be fixed or moving. The indicator of increas-
nance, video maintenance, periodic, and query
ing/decreasing direction is usually a combination of
selection processing. These screens should not
arrows and text to indicate the meaning of direction
change regardless of which option selection inter-
of pointer movement. Normal and abnormal mea-
sures can be indicated by a shaded section of the
4 Turbo Prolog is a trademarked product of Borland scale, different colors to scale numbers, a change in
International. color of the pointer, a tone for abnormal measures, or
606 CHAPTER 14 The Forgotten Analysis and Design Activities
Changeinlasthour:+.2
some means of showing expected and unexpected for determining ranges of acceptable operation.
numbers. Examples of rate of change are the flow of oils
The guidelines for analog displays are summa- in a cracking plant or the voltage fluctuation
rized as follows: in cables. A monitoring example is a speedometer
for speed limit. Pressure gauges in a nuclear power
Display Contents
plant or bond ratings selections that must fall within
Scale to which the measure applies
company guidelines are examples of ranges of
Pointer to indicate position on the scale
operation.
Indicator of increasing/decreasing direction
Normal/abnormal measures indicated
DIGITAL. A digital display is used to convey
Display Design
exact numerical information. Digital displays are
Use conventional user mental model of item
most effective when used for variables that have one
Use moving points on fixed scales
value at a time. Each value requires a label to iden-
Use same analog design for all analog
tify the data value.
measures on display
Guidelines for digital data and an example are
Use design method~ircular scale or open,
shown in Table 14-7. In general, only that data of
partial circle scale-to facilitate user
required precision for accuracy should be displayed.
recognition
Field size should provide for the maximum and min-
Usage
imum values. If data displayed changes frequently,
Rate of change
as in a stock trading application, the data should
Range of values for continuous data
stay on the screen long enough for comprehension,
Determine acceptable operation
about five seconds, before being changed. If the user
In general, the most effective displays fit the users' is monitoring change, an arrow, plus/minus signs,
mental model of the measure, use moving pointers or other indicator of direction of change might
on fixed scales, and are consistently designed when be shown.
more than one analog measure is used. If numeric
analog values must be tracked, a semicircular open BINARY. Binary means having two parts. A
scale using a fixed pointer with a moving scale binary display shows some graphic to indicate a
allows faster numeric recognition. two-value selection option. Usually, we think of
Analog displays are best used for monitoring rate binary items as having on-off, or yes-no, or zero-
of change, monitoring a range of analog values, or one values.
Human Interface Design 607
TABLE 14-7 Guidelines and Example of correspond to the values of related variables (see
Digital and Binary Data Figure 14-28),
By convention, bar charts show increases in value
Display Contents: as the chart is read left to right. Bar charts are effec-
a. 'Y' or 'N' or other character tively used to show task plans over time, percentage
b. 0 or· of task completion, comparisons of item values (i.e.,
c. 'On' or 'Off' item 1 value vs. item 2 value), and cyclic data (e.g.,
d. lor 0 (One or zero) or other numerals product sales over a fixed period). In business
e. -J or blank
applications, bar charts are rarely used on screens
Display Design with other graphic displays; they are generated by
If text form, use contents a, c, or d above applications as summary output for managers, and
If analog display, use bore can be easily generated on-line by many software
If in a menu list, use b or e packages.
Usage
To indicate an item that is 'turned on' or 'turned off'
To indicate a two position setting COLUMN CHART. A column chart is a bar
chart using vertical bars rather than horizontal ones.
Example of digital time display
Bar charts are most often used when time is a fixed
period (or is not relevant). Column charts are most
often used when time varies and is shown on the
x-axis (across the bottom), For instance, cyclic data
is most effective in a bar chart when comparing
a fixed period (see Figure 14-29). When compar-
ing cyclic data over periods, a column chart is
more effective.
The general rule is to use column charts for mul-
tiple time periods, to compare different items on the
Binary interface information can be presented same scale, or for consistency with cultural conven-
using text or graphics in several ways (see Figure tions which assume a vertical scale (e.g., plotting
14-27). The binary item can be displayed in text temperatures, times, revenues, sales).
using the words yes-no or on-off, or with letters 'y',
'n'. A menu can list the option with a check mark to
indicate an 'on' condition, A graphical button, or POINT PLOT. A point plot is a column chart that
circle, can be used-when the button is empty, the shows the x-y points on the diagram with or without
item is not on; when the button is filled in, the item a line connecting them (see Figure 14-30). Point
is on. plots might have trend lines generated to show the
By itself, binary indicator selection may not be a direction of change. A band chart is a special type
major decision. It becomes important when used of point plot that plots several variables on the same
with other information on the screen at the same diagram. Band charts use shaded areas of the dia-
time. If used in a menu, a check mark, change of gram to show variable participation. Bar charts are
color intensity, or change of color can all be used to most effective for showing cumulative variable par-
effectively indicate an 'on' condition without using ticipation or percentage of participation of each vari-
any extra characters. If used within a line of text, text able (see Figure 14-31).
presentation (e.g., 'y' or 'n') is more effective.
10 Pt.
12 Pt.
·14 Pt.
Cairo
Helvetica
• New Century
Times Roman
are effective. Pattern displays repeat the same MIMIC DISPLAY. A mimic display shows a
graphic several times with identical 'normal' dis- schematic or other replica of a system to allow the
plays (see Figure 14-32a). When a change to one user to monitor its functioning (see Figure 14-33).
portion of the pattern occurs (see Figure 14-32b), it Because mimic displays are usually symbolizing
is easily perceived by users. These are not very complex systems, the information presented should
common in business applications. be kept to a minimum needed to control, monitor,
John
Jane
Marsha
8 10, 12 14 16 18 20
Years of Education
Sales
LfL;.
By Month Connected Line Plot
JFMAMJJASOND
JFMAMJJASOND
Trend Line
Shows Average
Change
1\, /'
Sales By Month
By Location
: .. ' -'_.
JFMAMJJASOND
screen/program ID as discussed above, The header summary totals or other summarizing informations.
may be the same as the general screen header. Footers and instructions are optional. The body,
The instructions can be in the form of screen text, then, is the main focus of attention.
help availability, or a short description of expected The body of the form should be partitioned or
action. As much as possible, the screen should pro- windowed to mirror sections of data to be entered
vide intuitive guidance. Instructions should lead the (see Figure 14-35), The screen in Figure 14-35
user to supply information to get to the next step. shows a simple Customer Add screen for ABC
The body of a form contains the labeled fields Video, All information relates to the customer and
to be entered in an easily understood, contextually there is no additional family metp.ber information in
related format. The footer should provide screen the application. If additional family members are
Human Interface Design 611
$75MM
$50MM
$25MM
added to the membership, the Customer Add screen guidelines. The first variation shows each field
might look like Figure 14-36 which shows two sec- labeled. The second shows major fields labeled and
tions, one for general customer information and one minor fields with understood labels. The third shows
for additional family members. one heading for all fields; this heading minimizes the
Each field or group of fields should be clearly text on the screen. No one of these is preferred over
labeled to identify the required information. Cus- the others. Rather, the customer should be allowed to
tomer preferences are needed to design identification choose the preferred design.
for some fields. For instance, three variations of Labels, and any codes designed as well, should be
name and address information are shown in Figure designed to be familiar, less than five characters
14-37; all three conform to different, good design long, and include letters and numbers. For instance,
Figure 14-38 shows four possible codes for a Cus-
tomer ID. The first alternative, 913-8041, is a phone
a. Normal Pattern Display for 100 Indicators
number. It is low in recognition for the clerks in the
00000 00000 00000 00000 00000
store, but the highest of any choice for the customer.
00000 00000 00000 00000 00000 Who doesn't know their own phone number? For
00000
00000 00000 00000 00000 that reason, high customer recognition, a phone
00000 00000 00000 00000 00000
number, is a good choice for Customer ID.
The second choice, CONG001, is a combination
b. Abnormal Pattern Display for Several of 100 Indicators alpha and numeric code. The first four characters are
00000 00000 00000 00000 00000
the first four letters of a last name and the last three
0000. 00000 00000 00000 00000 characters are a sequential number. This is also high
00000 00000 00000 00000 00000
in recognition for both customers and clerks. It is
00000 00000 00000 0000. 00000
less recognizable than a phone number, but a good
choice in any case. The next code, 03001 uses '03' to
FIGURE 14-32 Normal (a) and Abnormal (b) denote 'C' and a sequential number '001' to denote
Pattern Displays sequence within the Cs. The purely numeric code is
612 CHAPTER 14 The Forgotten Analysis and Design Activities
00
~
Connections that can fail are exaggerated to ease monitoring.
cryptic but short. It is less useful than the first two to provide for the maximum length of the informa-
choices. tion. This is difficult with names, especially hyphen-
Text information, such as names, should always ated names. Each application defines its own
be left-justified. Ideally, they should be long enough maximum; but, in general, over 90% of names in the
United States are shorter than 35 characters. If disk
storage space is tight, shortening fixed-length text
fields is one way to conserve space; another is to
Header define a variable length field that does not store
f----- unused spaces.
After the individual labels, fields, and field codes
Instructions
are defined, the next task is to position them on the
screen. The design is context related and should
group fields that logically go together. From cogni-
Body tive psychology research we know human brain
capacity is limited to holding 5-7 bits of information
called 'chunks' in our short-term memories. Short-
term memory (STM), also called 'active' memory,
Totals
is what is in your head while you are thinking. STM
is measured in nanoseconds of response time for
f---------------- processing and is analogous to the arithmetic/logic
Footer unit (ALU) on a computer where all processing takes
place. In designing presentation formats, we try to
group items to take advantage of the chunking phe-
FIGURE 14-34 Sections of a Form Screen nomenon. For instance, in the Customer Add screen
Human Interface Design 613
Address: _ _ _ _ _ _ __
Name: _ _ _ _ _ _ _ _ _ _ __
Address: _ _ _ _ _ _ _ _ _ _ __
---------
---------
character entry are listed below; examples of field • Make areas of the screen not used for input
guidelines are shown in Table 14-8. inaccessible to the user.
Guidelines for default values are:
• Always display keyed information.
• Never require delimiters to be keyed. For • Display all defaults before any data entry
instance, in a social security number, provide begins.
dashes to split the numeric parts: xxx-xx-xxxx. • Confirm defaults by tabbing past the field.
• Do not require entry of leading zeros for nu- • Default replacement should not alter current
meric fields or of following blanks for text default value. For instance, if the default date
fields. is today's date, and the operator places yester-
Human Interface Design 615
entry and the Customer information is displayed inducement to keep it the same. Unless screen space
automatically. is a major problem, the post office format will
The second issue is format of the information. be kept.
The options in Figure 14-41 all follow a conven- Two fields remain: Customer ID and Credit Sta-
tional post office address format. The address need tus. Customer ID is an important field as the identi-
not be formatted in that manner, but the high recog- fier of the information and should be positioned in a
nizability of addresses in this format is a strong way that highlights its presence. Conversely, Credit
Human Interface Design 617
Use upper and lower case if possible ALL UPPER CASE Mixed case is preferred to
IS DIFFICULT enhance readability.
TO READ
Only use asterisks in extreme situations *****This ***** *****ALERT*****
is *****very ***** The database may have
distracting *****. been destroyed.
Error IDs should be in a consistent PFOO 1 Error 00 1 PFOO 1 Error 001
location Error 002 PF002 PF002 Error 002
Should be brief Numerics were expected Numerics expected.
by the application but you
entered some nonnumeric
information.
Should be positive You entered an illegal date Enter date format
format. mm/dd/yy
Should be constructive You idiot! This mistake Reconstruct database and
should NEVER occur. begin again.
Should be specific Illegal entry or ? Enter data format
mm/dd/yy
Should be comprehensible FACDB Database error.
29081230123 Call the DBA at x3456.
Should allow the user to feel as if they ? To undo, press F5.
control the system rather than the
system controlling them.
Provide levels of messages with less
detail for error message and more
detail for requested help.
Status is only important when it is the cause of a can- an easy-to-spot location-the upper right comer of
celed request. So, Credit Status needs some sort of the screen.
'alert' design but, otherwise, can be positioned to The second section of the screen is for Open
conserve space. Several alternatives for Customer ID Rentals information. The information needed on
and Credit Status formats are shown in Figure 14-42. the screen includes Video ID, Copy ID, Descrip-
All alternatives are acceptable; the third option is tion, Rental Prices, Rental Date, Return Date, Late
selected because it minimizes labels and has credit in Fees, and Other Fees. By convention, a typical bill,
618 CHAPTER 14 The Forgotten Analysis and Design Activities
Customer Name: _ _ _ _ _ _ _ _ _ _ __
Address: _ _ _ _ _ _ _ _ _ _ __
City: _ _ _ _ _ _ St: Zip: _ _ - _ _
---I
Customer:
Amount Due, Total Amount Paid, and Change. These right-justified with one set of numbers on the rental!
could be on one line, two lines, or three lines as return lines. The title fields should be right-justified
shown in Figure 14-44. for the group of three lines.
The choices for payment should be first, readabil- Last, we consider placement of the entire screen
ity and understandability, and second, space avail- in the blank area between the standard screen header
able. For ABC, all infoffi1ation can fit on the screen and footer. So far we have 22 lines accounted for in
with three-line spacing and still have room left over. the rental screen: two standard header, one screen
So, the last alternative (Figure 14-44c) is selected header, two footer, four customer, ten rent/return,
as most easily read. The money fields should be two rent/return header, and three total lines. There
a.) Label Each Field, Position on Same Line for Easy Location 10 c.) Minimal Labels, Position on Same Line
-~I
Customer 10: Credit: Customer:
Name: _ _ _ _ _ _ _ _ _ _ __
Address: _ _ _ _ _ _--=--_---=-,--__
City: _ _ _ _ _ _ St: Zip: _ _ - _ _
b.) Label Each Field, Position Separately d.) Minimal Labels, Identify Main Fields
are no extra lines on the screen (see Figure 14-45). and given its own label to specifically identify it
Ideally, one blank line should separate the header (Figure 14-46a). This makes reading the Customer
and footer from the body. Also, one blank line is de- ID somewhat more difficult but adds to the readabil-
sired to separate the rental/return information from ity of the rental information. A better choice is to
customer information. To provide blank lines, we redesign the standard header and make it two lines,
either delete a header line or change the arrangement with the second line identifying the function, and
of information on the screen. According to our pri- only display function keys available and use one
0rities' customer information should be condensed line. This screen (Figure 14-46b) is preferred and
onto fewer lines to gain the blank lines. The Cus- recommended. In the end, Vic should select his pre-
tomer ID can be added to the customer name line ferred screen and it should be the final design. Vic
selected the recommended screen for the same rea-
sons that informed its design.
A. One line
F1: Hlp F3: Quit F5: Undo F6: End Ent F7: End Trans F8: Pg Up F9: Pg On F1 0: Sh R F11: Sh L
Tab: Nxt Fld "Tab: Lst Fld ESC: Cncl
sured in points. A point is a measure of type that is FONT. Most software applications have a fixed
approximately 1/72 of an inch (about 2.8 mm). In default for type font as well as type size. Most
general, the size of characters should be no less than applications default to a serif style such as that used
10 points and no more than 14 points unless an alert in this text. A serif font has been proven easier to
or alarm situation is being shown. These sizes are in read and faster to comprehend than a sans-serif style
the range of normal printed point sizes for display such as this. If fonts are selectable, the rule of thumb
processing. An example of the range of point sizes is is to select one or, at most, two fonts and use them
shown in Figure 14-47. consistently throughout the application for obvious
The default in most applications is 12-point type. distinctions. For instance, use one font for all field
As you can see from Figure 14-47, the larger the labels and another font for all information entered by
point size, the fewer characters fit on a screen. At the application user. Do not mix fonts for the same
18 inches, the minimum point size should be about purposes or users will get confused and error rates
9 and a comfortable point size is 12. The further will increase.
away from the screen the user is, the larger the point
size should be. At 30 inches, the minimum point size STYLE. Type styles might include regular, bold,
should be 10 points and either 12 or 14 points print italic, oudlillll.e, reverse video, SMALL CAPS, ALL
size are acceptable. At 10 feet, the size should be CAPS, underline, or stfilEB dUSHgk. While the
about 72 points, or one inch. options make for interesting reading, interchanging
622 CHAPTER 14 The Forgotten Analysis and Design Activities
F1: Hlp F3: Quit F5: Undo F6: End Ent F7: End X Tab: Nxt Fld ATab: Lst Fld ESC: Cnd
the styles on a form to be completed make it much video is to show cursor position. The character at
harder to comprehend and will increase error rates. which the cursor is positioned is shown in reverse
In general, regular print is acceptable in all applica- video and switches back to normal as soon as the
tions for text display. For general purpose, noncriti- cursor is moved.
cal text, regular print is recommended. Italics and outline are not generally used because
Bold print and reverse video are useful to call they are harder to read and, therefore, increase com-
attention to a field if it is warranted. For instance, prehension time. Strike-through and underline are
bold type style is effective for alert field values on a used mostly in word processing applications and
monochrome screen. A common use of reverse can be effective in that context. For most forms-
Human Interface Design 623
completion TPS applications, neither of these is rec- which colors selected do not differ sufficiently to
ommended. Finally, research studies have shown enable distinction, and for tasks in which the goal is
that use of all capital letters increases comprehension to identify large numbers of objects (of the same
time and they are not recommended. color) when surrounded by a large number of objects
of other colors. These ineffective color uses result
COLOR. Color can be an effective addition to in problems of discrimination. Research findings
screen design, or it can seriously detract from the show that performance deteriorates with more than
understandability and readability of the information. six colors on a screen. Many writers suggest using
For indicating binary or ternary conditions, color is no more than four colors at anyone time for business
faster and easier to comprehend than any other cod- tasks.
ing scheme. Research on color selection recommends selec-
Research provides clear guidance on appropriate tion by wavelengths, ensuring sufficient contrast to
and inappropriate uses of color for application dis- speed comprehension. For instance, Figure 14-48
plays. Color is most effectively used for search tasks shows common colors on a spectrum by wavelength.
in which the goal is to find one or two objects (of Poor choices would be blue, blue-green, and green
the same color) that differ from surrounding objects. for different meanings on the same screen. Good
This type of search does not occur often in business choices would be red, yellow, and blue, because they
applications. Color coding also is effective for: are sufficiently different to facilitate understanding.
Because color blindness and other color percep-
• unformatted display of information
tion problems are common, user profiles and user
• symbols which may be within a high density
testing should be used to guarantee that all users
of information on the screen
can recognize all colors on a screen. Bold or odd
• tasks in which the position of the item to be
colors of any type, for example, olive-green, should
identified is not known but the color is
be avoided.
• screens for which color relates to the task
Common meanings ascribed to colors should be
• user tasks involving search and recognition of
used in the application, and the common meanings
differences in symbol color
which change by culture should be adapted. The
Color is least effective for tasks in which a large government recommends using red only for alert
number of colors are indiscriminately used, for conditions, yellow for warning, and green for normal
624 CHAPTER 14 The Forgotten Analysis and Design Activities
different color should be chosen. If data entry errors also is using it for tapes purchases with money still
are highlighted, the recommended colors are either owing, a usage never before defined.
yellow or blue to make them distinct from the red
used for credit standing.
Insufficient payment occurs when the Change
Design of Report Output
Amount is a negative number. The current design In many companies, formal reports are no longer
calls for moving the cursor to the payment field produced from application systems. Instead, users
which is updated with the new Total Amount Due. are provided with a query language and told to
Since this is not an expected occurrence, clerks develop ad hoc reports as they are needed. When
might miss the cursor movement and complete the formal reports are required, they usually are based
transaction even though insufficient payment has on queries of the same information. The guidelines
been made. Some method of highlighting is also for reports, then, follow similar guidelines for
desirable to ensure against such mistakes. The rec- screens.
ommendation is to blink all money fields and move
1. Design a standard header and footer and
the cursor to the new Total Amount Due.
be consistent in the general format on all
Late tapes might cause a justifiable denial of
reports.
rental rights, but this has also never been discussed
2. Keep report body as close to query screens as
with Vic. The number of days that constitutes sig-
possible.
nificant lateness needs to be defined. If monitoring
3. If query screens are not present for the speci-
of lateness is desired, a red, blinking value in the
fied reports, follow the design'guidelines for
rental date field could be used to represent signifi-
screens. Define clearly identifiable areas for
cant lateness.
grouping information that is related or that
Last, special fees, which require management
repeats. Follow reasoning for individual
update, might also be highlighted and a cause for
fields on a report that parallels the reasoning
rental denial. The use of special fees is not well-
used for screen design.
defined to the project team at this point. Presumably
Vic is using special fees for lost or damaged tape The ABC rental receipt is shown in Figure 14-49
assessments. Perhaps if the fees are over a certain as an example of a report that follows the design of
amount, to be defined, Vic would want the field high- its related screen. Notice that while the receipt has a
lighted and, unless paid, rentals would be denied. If header, it is preprinted and differs from that of the
Vic wants this highlighting, a red, blinking field, screen. Preprinted information is most effective
consistent with other rental denial fields, would when it is printed in some unobtrusive color, such
be suggested. as turquoise, which users can ignore when they
A long conversation with Vic resolves all of these become familiar with the report format.
issues. The recommendations for errors, credit prob-
lems, and insufficient payments are all accepted. Vic
likes the idea of denying rental rights when tapes
are over 10 days late. He questioned the use of the
CONVERSION------
same blinking red signal, however, thinking that
white blinking might be more effective. The SE Conversion of applications is a systems analysis and
explained that if one signal, blinking red, is used for design in miniature. The activity is only concerned
rental denial regardless of reason, it will be more with transforming data from its current format and
easily learned by the clerks. Vic agrees with the rec- storage media into a new application's format and
ommendation. He does not want special fees high- storage media. Conversion is usually concurrent
lighted, nor does he want rental denied. He is using with design and done as a side activity by a small
special fees for the two purposes described, but he group of one to three people who report to the PM
626 CHAPTER 14 The Forgotten Analysis and Design Activities
Accepted By: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
and work with the DBA to define and populate the 8. Recommend and gain approval for imple-
new database environment. The activities of con- mentation strategy.
version are: 9. Develop a schedule for application
implementation.
1. Identify current and future locations for all
data items.
2. Define edit and validate criteria for all Identify Current and Future
attributes.
3. Define data conversion activities.
Data Locations
4. Define options for data conversion. The first task is to identify the data being converted.
5. Recommend and gain approval for data con- A matrix listing every relation with its attributes/
version strategy. fields is developed. Then, in one column, the present
6. Develop a schedule for data conversion location of each attribute is identified. An automated
based on estimates of time to convert one data field entry has the current file, relative address
data item. in the logical record, length, type characters, and
7. Define options for application conversion and current data name. A manual field entry identifies the
implementation. data source and person responsible for data accuracy.
Conversion 627
A third column is created to identify specific con- correct data values are. Second, the conversion team
version errors if they are known. and user must define the mapping from incorrect val-
ues to correct values. Then, any new values that
might change the mapping from old to new storage
Define Attribute Edit and technique must be reviewed with the systems design
Validate Criteria team to ensure that the application design is still
valid. Third, an army of clerks must be hired to cor-
For attributes that are simply being moved from one
rect the errors. This means that special training for
location to a new location, the edit and validate cri-
data correction is required. Fourth, training for the
teria should already be defined in a data dictionary. If
new application must address the data inaccuracies,
this information is not already defined, the conver-
the new values, and their interpretation for all cur-
sion team defines and documents necessary edit and
rent data users.
validate criteria.
Data that have combinations of problems require
When attributes are being encoded to use a short-
multiple skills of conversion team members and
ened storage format, the encoding scheme must have
complicate the conversion process. Data conversion
been defined. If a coding scheme is not already
planning should be complete early in the design
defined, the conversion team works with the design
stage. The planners should know which types of
team to define and document the encode-decode
these problems are present and how the conversion
scheme.
team is planning to minimize their impact.
Best Case.
Simple programmable conversion
Worst Case.
Use multiple create/merge programs,
difficult verification, high clerical and
management support
implemented in that one geographic location for six they are tested. Third, small numbers of trans-
months. Then another location is added. After actions or one type of transaction might be imple-
another six months, a third location is added. The mented first using transaction conversion. Then,
timed geographic technique keeps the lives of the as the users gain experience and the application
implementers relatively stable and allows the dis- stabilizes, more transactions are cut over until
tributed companies using the software to choose all are in production. In the first variation, the
their own implementation times. entire application is implemented in one department
Functional conversion has three variations. or group at a time. In the second, pieces of the
First, work functions can be cut over one at a application are implemented one at a time, and may
time to the new application. This is a local version of be in production company-wide or by group. In
the geographic conversion method. Second, incre- the transaction variation, the whole application is
mental software development can place spe- complete, but it is implemented piecemeal by trans-
cific work functions into production use as soon as action type.
Conversion 629
When a new application changes the old method TABLE 14-9 ABC Rental/Return Data
of work, or when a specific problem is highlighted Relations and Conversion
during feasibility or analysis for immediate imple-
mentation, some form of functional, incremental Relation Status Priority
conversion is useful. Both of these circumstances
occur in large business applications. Small applica- Rental! Derived from 0
tions may not have enough functionality to allow Return Processing
iterative conversion, requiring the complete appli- Customer Manual/Clean 1
cation to be placed into production at one time. Video Manual 2
Gradual conversions can not always be done. Clean if known
When the new application is automating a previ-
Copy Manual 3
ously manual process, gradual conversion may be
Need a count
difficult unless unrelated transactions can be identi-
fied. When this occurs, the project team should Customer Derived from 0
develop a final test using live data that parallels History Processing
daily production and can, therefore, be checked Video Derived from 0
for accuracy. History Processing
Parallel conversion means that the new and old End of Day Derived from 0
methods of work, including any applications work, Processing
are both done every day for some period, usually one
or two cycles of processing. Parallel conversions
only work if the new application produces the same
outputs as the old application and has comparable and Copy-are manual and needed the first day of
formulae and processing on the data. In the parallel operation. All could have the same priority because
method, the people using the application would do the application cannot be tested without all three
their jobs in the new way and follow it by doing the relations. The customer relation is given the highest
work in the old way with the same data. That is, the priority because it has accurate data from the card
same information is processed twice. If the formu- file, and therefore, should be more easily converted.
lae, processing, or outputs are very different, parallel Another reason for choosing the customer relation
processing might not work. Parallel conversion is first is because if it turns out to be error-ridden, the
also difficult when the number of people doing the other two files can be assumed to be as bad or worse.
work is insufficient for processing the double vol- Customers tend to overestimate the quality of their
ume of work. Then, if parallel conversion is desired, data, and errors become known when the method of
some gradual method should be coupled with paral- processing changes.
lel execution. The strategy then is convert the customer file
from the existing card files, followed by the video
and copy information. The next issue is who is to
ABC Conversion Strategy do the data entry. The clerks might enter Customer
Conversion in ABC is from a totally manual to a information during nonbusy work hours or could be
totally automated application. This means that the hired for extra hours of work. The estimate of con-
planning for conversion should follow the need for version for customer information is approximately
data. Each relation is examined individually to 70 hours (4 minutes * 1,000 customers / 60 minutes
determine its criticality for processing on the first in an hour). This assumes four minutes of data entry
day of Rental/Return use (see Table 14-9). time for each of 1,000 customers. The ideal solution
Of the seven relations in the application, four is to hire clerks for extra work so their entire atten-
(i.e., Rentals, Customer History, Video History, and tion is only on conversion at the time. This speeds
End of Day) are derived from processing and need the process and minimizes errors that might occur
no conversion. The other three-Customer, Video, from interruptions during the work day.
630 CHAPTER 14 The Forgotten Analysis and Design Activities
One alternative for doing the data conversion is to for all copies, we can enter the video information
hire the current staff to work more hours. If three and a count of copies and have the application gen-
ABC clerks each worked two extra hours each day, erate all Copy relations. Part of the change procedure
and all work a five-day week, the customer conver- for a video, then, must include changing the number
sion would take between ten days and two weeks. of copies. Increasing the number poses no problems.
This alternative is attractive because the current Decreasing the number means that a check for
clerks know the data. The disadvantage of this outstanding or past rentals must be made and, if
alternative is that the clerks don't type and the present for a number to be removed, the number may
four minute estimate might be very low for them. not be removed. These maintenance requirements
Another disadvantage is that because the clerks' typ- should be discussed with the design team to ensure
ing skills are low, name and address errors, which that they treat video processing in this way.
are very difficult to identify via computer, might get The last issue to decide about data conversion is
into the file. who should do the video and copy conversion data
A better alternative is to hire an experienced data entry. The estimated time for a complete physical
entry person(s) from a temporary agency. The cost is inventory is about 28 hours. This number assumes
not too high, $10-14/hour, and their accuracy will be six seconds of inspection time per tape for 10,000
greater. For an experienced typist, the four minutes is tapes, plus four seconds overhead for extra move-
probably a high estimate. ment of tapes to make room for the sorted ones (i.e.,
The next relations to be converted are Video and 10 * 10,000/60 seconds per minute / 60 minutes per
Copy. One issue in this conversion is the high hour = approximately 28 hours). This includes sort-
amount of time for bar coding each copy of a video. ing the tapes by title alphabetically and keeping
Assignment of bar codes affects database design. Al- them in that order until the data are completely
ternatives are to use the bar code to identify each entered. Tapes out on loan must be included in each
tape uniquely and duplicate video information in the day's conversion process to ensure 100% conversion
copy relations, or identify each video with a portion coverage. Once the tapes are in sequence, the clerks
of the bar code and identify each copy by a unique putting tapes back into inventory are assumed to
sequence number within bar code. The preferred alphabetize them automatically, adding no extra time
solution from a data perspective is to generate one to the conversion.
Video ID bar code that is the same for all copies of a The data entry for each tape, because of the cod-
tape. Database storage and typing time are mini- ing scheme defined, should take only about two min-
mized, and retrievals will be faster. This solution is utes per tape for a total time of about 33 hours (i.e.,
recommended. The only advantage to the other 2 * 10,000/60). The total conversion time for the
alternative is that no sorting of the physical inven- ABC rental/return application is about 120 hours, or
tory is required. The disadvantage of the unique base about three weeks.
code for each tape alternative is that video informa- Again, the clerks, who know the inventory best,
tion is replicated a number of times thus increasing could be hired extra hours to work on conversion
the time for data entry, error rates, and retrieval time. sorting and data entry, or Vic might hire outside
The related issue in video-copy conversion is the workers to come in daily for 8-10 hours for sev-
physical inventory identification of all copies of each eral days.
video for entry into the application. The scheme we If Vic wants to use his current clerical staff to use
chose of one Video ID bar code for all copies of the otherwise idle time, the amount of time for conver-
same tape makes data entry easy but makes the phys- sion is 120 hours divided by the number of idle hours
ical work more difficult. The people doing this work per day. If the three clerks are idle a total of six hours
must sort all of the tapes by video, assign the Video per day, the conversion will take approximately 20
ID, and generate and affix the bar codes to each days. This is a long period of time and usually, the
copy. Last, each copy's bar code must be entered into longer conversions continue, the greater the likeli-
the system. Since we chose one Video ID bar code hood of errors. The recommended approach is to hire
User Documentation 631
temporary data entry clerks to sort the tapes, assign With complete novices who have never used a
bar codes, and enter the data into the system. computer system, having them develop the user
The alternatives and recommendations are pre- manuals is NOT a good idea.
sented to Vic for his approval. He chooses to hire Contents of the user documentation vary with
two temporaries for two weeks to work full-time on each project and company. In general, the writing
converting all data. His rationale is that he really sty Ie should not be patronizing, but should take the
wants his clerks to concentrate on customers, and users' general level of computer expertise into con-
he decides they can help with the physical inventory sideration. This means that documentation written
sort in their spare time. The remainder of the time for experts can be concise, use jargon, and have less
they should be working at helping customers. If explanatory information about how to get started.
videos are missed during the inventory sort, they will Documentation written for novices should begin at
be found as they are rented and their information will an elementary level, for example, "The button to
be entered into the application then. turn on the machine is located .... "
An outline for general contents of user documen-
tation is provided in Table 14-10. First, any docu-
ment should contain a table of contents. A system
USER ________________ overview describing the scope of processing is next.
DOCUMENTATION ________ Assumed level of user and expected system-user
interactions should be included in the overview.
Diagrams should be frequent and 'understood by
Mix of On-Line and Manual your mother.' Also in the overview, include in-
Documentation formation about whom to call for help and what
kind of help they offer. For instance, Operations pro-
User documentation is important because it is usu-
vides assistance if the terminal malfunctions,
ally the first information about an application that
or the Information Center assists in developing
new employees are given. Therefore, it should be
ad hoc queries.
developed and maintained to disclose accurate usage
Describe the hardware, software, and at a very
information about an application. User documenta-
high level, how the equipment is connected. This is
tion is started after analysis and can be a parallel
especially important when LANs, distributed appli-
activity to design. Some researchers and practition-
cations, or PCs hooked to mainframes are being used
ers recommend developing the user documenta-
and some functions are local and some remote. Be
tion before design begins. The application is
specific about what work is performed in what loca-
then designed to meet the requirements of the user
tion and how to determine problems.
documentation.
Next, describe the general formats for screens and
Frequently, users develop the manual documenta-
functions. Begin the details of system operation with
tion and define what they would like for on-line help
startup and shutdown, including security informa-
and messages. At the least, users should participate
tion, without documenting security codes! Describe
in developing user documentation. The arguments
all function keys and what they do.
for having users develop their own documenta-
Then, for each screen in the application, present
tion are:
the screen and the required/optional entries made by
• Users are less likely to assume knowledge the operator. Be specific about the type of data to be
that SEs take for granted (e.g., how to start an provided. Present an example of a correct screen
application). and of an incorrect screen with error messages.
• Users know what to do better than SEs. Sequence this information by logical groupings of
• Users who develop their own documentation activities. For instance, for ABC, there would be
require less training because they already four functional description sections: rental/return,
know how the system will work. customer maintenance, video maintenance, and
632 CHAPTER 14 The Forgotten Analysis and Design Activities
TABLE 14-10 User Documentation respond to the sequence of functional sections in the
Contents body of the report.
Introduction
Application Overview AUTOMATED ____________
Special Features
Format of Document SUPPORT FOR ___________
Support Group Services, Contacts FORGOTTEN ____________
General System Information
Obtaining a User ID
ACTIVITIES ____________
Starting the Machine
Many products are available to support the activi-
Shutting the Machine Down
ties in this chapter. For screen design, screen 'paint-
System Access Procedures ers' and application generators both provide screen
Logon Procedures design. Screen painters are forms-oriented design
Logoff Procedures tools that allow fast prototyping and layout of
General Data Entry Information screens that then generate coded descriptions of the
Menus and Menu Selection with examples screens. A user identifies that screen design is
of all screens desired; if the relation is described in the tool, the
Data Entry Screen Format with one example screen fields can be listed to provide screen design guid-
Function Key Assignments ance, and the user 'paints' the screen by placing
Rent/Return Procedures For each section: labels and field names on the screen in the target
Customer Maintenance List screen( s) location. When complete, the screen can be called
Procedures Required up to allow printing and viewing of the screen
Video Maintenance Procedures entries as it would be presented to the data entry clerk.
Periodic Processing Procedures Optional Screen painters can be stand-alone software pack-
Backup/Recovery Procedures entries
ages but are more frequently a function of CASE
Error Recovery Procedures Procedure for
environments.
Error Messages screen
completion
A second type of software support for screen
design is available in application generator software.
The screens for menus are designed first with menu
entries typed in by the software user. Then as func-
tional screens are reached, the program code to gen-
periodic processing. For each screen, describe nor- erate the requisite screen interaction (e.g., SQL) is
mal, error, optional, and required processing. coded. If custom form design for data entry is
Include backup and recovery information if required, some packages include that activity, too;
the user is expected to perform those activities. others require the designer to generate the code
Be specific about what actions are performed and within the package.
the sequence of actions. If recovery must be acti- Conversion software support is mostly in the
vated from a specific terminal, for instance, begin form of utility programs that allow easy reformatting
the instructions with something like the following. of data to move from a current automated file to
"At Terminal 011, located on the 2nd floor of one or more new files. Merging of information from
235 West Covina in the southwest corner, and two sources to create new composite files is some-
labeled 'MAIN OPERATOR TERMINAL,' enter times provided but requires more complex soft-
the following." ware coding.
In an appendix, provide a list of all error mes- Manual-to-automated data conversion ideally
sages, by message ID with a detailed description of uses the application code for data creation to further
how to correct the error. Format the appendix to cor- test it and increase estimations of reliability. Sev-
References 633
eral application generator packages, for example, the presentation format, each screen item's charac-
Focus™ ,5 provide automatic screen generation with teristics of size, type font, style, color, and blink rate
no underlying edit or validation for 'quick and dirty' are defined. In designing forms, decisions about the
data entry. This is useful in proto typing and demon- chunks of data to be presented and formatting of
strating prototypes, but should not be used for the chunks on the screen are required.
production application. Focus generates the screen Conversion alternatives are direct conversion or
by sequentially listing the fields as defined in the incremental conversion. Incremental conver-
database. As a line fills up with data, a new line is sion may be geographic or functional (by transac-
generated. This automatic screen utility only works tion, by department function, or by application func-
on files with no repeating information and cannot tion). Direct conversion has the highest risk of
join files for combined data entry. failure because the old method disappears at con-
Help packages are now plentiful in the market- version; therefore, when an alternative is present,
place. Help used to be totally manual and all mes- it is usually recommended. Incremental conver-
sages had to be in the user documentation. As help sion type selected is determined by the context of
has moved to become an on-line function, more mes- the application.
sages are documented on-line than in manuals. The Reports are designed following the same general
advantage of a Help package that is independent of guidelines as those of screens. Whenever a report is
specific software is that it, and its messages, can be of displayed information, both screen and report
used across applications and software environments. should use the same format.
This cross-application use can help ensure that defi- User documentation is an important introduction
nitions are consistent throughout the company and to an application for many new employees. As such,
can make data administration standards compliance it should be easy to read, oriented toward the educa-
easier to monitor. tion and computer experience level of the reader, and
The automated packages supporting the screen should include all information for normal and abnor-
design, conversion, and help processing are summa- mal processing of an application. Lists of contacts
rized in Table 14-11. for different types of problems should be identified.
TABLE 14-11 Automated Support for Interface Design, Conversion, and On-Line
Documentation
Product Company Technique
Galitz, Wilbert 0., Handbook of Screen Format Design. Powell, James E., Designing User Interfaces. San Mar-
Wellesley, MA: QED Information Sciences, Inc., cos, CA: Microtrend Books, 1990.
1981. Olsen, Dan R., Jr., User Interface Management Systems:
Martin, James, Design of Man-Computer Dialogues. Models and Algorithms. San Mateo, CA: Morgan
Englewood Cliffs, NJ: Prentice-Hall, 1973. Kaufmann Publishers, 1992.
Mayhew, D. J., Principles and Guidelines in Software Schneiderman, Ben J., Designing the User Inter-
User Interface Design. Englewood Cliffs, NJ: face: Strategies for Effective Human-Computer
Prentice-Hall, 1992. Interaction. Reading, MA: Addison-Wesley, 1987.
Morland, D. Verne, "Human factors guidelines for Thomas, John c., "User interface design," Proceedings
terminal interface design," Communications of NYU Symposium on Human Factors, New York,
of the ACM, Vol. 26, #7, July 1983, pp. 484-494. NY, May 1982.
Study Questions 635
Tullis, T. S., "Screen design," Handbook of Human portions of screens or whole screens for differ-
Computer Interaction, Mark Helander (ed.). ent functions. Discuss why complete reuse of
New York: Elsevier, 1988, pp. 377-411. Create Video screens is not possible for Video
Update processing.
KEYTERMS _____________ 2. For the CCD Medicaid case described in Appen-
dix A, design windowed menus for the applica-
analog display menu tion. Design the screen for Patient Information
band chart mimic display
Creation. How much scrolling is necessary?
bar chart normal/abnormal measures
What colors, type, style, font, and so forth, do
binary on-the-job training (OJT)
binary display option selection
you recommend for each field?
body of form overlapping windows
body of screen parallel conversion
classroom instruction parallel execution STUDY QUESTIONS _ _ __
close box pattern display
column chart paint 1. Define the following terms:
command language point analog display OIT
computer-based training point plot field format scrolling elements
(CBT) pointer flash rate user profile
derived field precision requirements
form task profile
digital display question & answer format
horizontal pull-down
direct cutover resize box
direct manipulation scale
menu
direction indicator screen painter 2. Why is the data source the best location at
field format scroll arrow which data should be entered into automated
flash rate scroll bar applications?
flicker fusion scroll box 3. Why should screen design guidelines be
footer screen section scrolling elements followed?
form screen short-term memory 4. Describe a task profile and how it is used in the
functional conversion status indicator application development screen design and
geographical conversion task profile conversion.
gradual cutover text
S. When should individual users be profiled and
header screen section tiled windows
when can average user information be used?
horizontal pull-down menu title bar
incremental cutover transaction conversion
6. Describe how novice/expert modes of opera-
incremental software user profile tion should be determined.
development vertical pop-up menu 7. Describe how extent and type of on-line mes-
location ID window sages and help are defined.
long-term memory zoom box 8. Describe the option selection choices and how
Lotus-style horizontal you decide which to use.
pop-up menu 9. Why is command language use by itself rare?
10. What is a screen window and why are they
EXERCISES _ _ _ _ _ _ __ popular?
11. How many scrolling options are available?
1. Complete the screen design for Customer and What is the minimum scrolling that should be
Video data entry for ABC Video. For video data provided in an application?
entry, keep in mind how conversion defines the 12. What are the differences between tiled and
add function to automatically provide for Copy overlapped windows?
relation creation. Specifically, identify reused 13. Why should function keys be consistent?
636 CHAPTER 14 The Forgotten Analysis and Design Activities
14. Describe general screen design contents. 24. Discuss issues in data conversion.
15. What is direct manipulation interface? 25. Why should users do user documentation?
16. What application types use forms as the most Why should application developers do user
common functional screen design? documentation?
17. List and define five data presentation alterna- 26. Discuss how contents of user documentation
tives. For each alternative, describe one possi- can be varied to match user skills and computer
ble business application use. expertise.
18. When are bar and column chart use recom-
mended?
19. How are fields positioned on a screen? On a
* EXTRA-CREDIT QUESTION
1. Define a poorly designed menu and functional
line?
screens for ABC Customer Maintenance. Use at
20. Why are short-term memory (STM) and long-
least 10 bad design elements. Then, fix the
term memory (LTM) important in screen
design problems and define effective screens for
design?
the same function. Describe the guidelines fol-
21. When is color effective in screen design? How
lowed in defining each element of the good
many colors should be used on screens at any
screens. Write a paragraph discussing the kind
one time?
of errors that users might make from using the
22. How can type font be varied for effective
poorly designed screens.
screen design?
23. What are three options for incremental conver-
sion? How do you choose which to use?
IV PAR T
IMPLEMENTATION
~D
----------------..
____________________ ____ ~
--------~----I
~_I
~AINTEN~CE _______________~______ 1
The five chapters in this section discuss implementa- generate code. The language selected must be able to
tion and maintenance issues. An application is never support the application requirements. In Chapter 15,
completed until it is retired. After analysis and we first describe identifying characteristics of lan-
design, we must be able to implement the design on guages. Then, the implementation of each charac-
computer hardware using computer software or our teristic is described for ten languages. Based on the
work is useless. The first three chapters in this sec- language characteristics, we define the types of ap-
tion relate to implementation issues: selecting a plications for which each language is best suited.
computer language; evaluating and selecting hard- Similarly, outsourcing and use of software pack-
ware, software packages, or consulting services; and ages are growing in all industries because it is
testing/quality assurance of the finished product. frequently cheaper to buy rather than build an appli-
Chapter 15 defines characteristics of languages, cation and/or its environment. In Chapter 16, we dis-
to allow us to distinguish between ten languages that cuss the evaluation process and highlight the types
are evaluated. Then, the languages are matched to and alternatives for soliciting bids from vendors.
the application types discussed in Chapter 1 and Sections and contents of a request for proposal
to the methodologies discussed in Chapters 7-12. (RFP) are defined and developed for the ABC case
Language selection, rather than code structure, is to show what they look like. Hardware, software,
emphasized because of the increased use of com- and consulting services might all be contracted for in
puter-aided software engineering (CASE) tools to the same request, or could individually be the subject
637
638 PART IV Implementation and Maintenance
of RFPs. Examples of RFP expectation criteria for Documentation for project work can be thousands
each type of work are provided to give a sense of of pages long. Since errors in code usually begin to
the level of detail to which work is defined in an be traced through documentation, it is important to
RFP. Then, vendor proposal evaluation alternatives identify changes to facilitate the error tracing pro-
are defined and discussed in relation to ABC Video's cess. Also, users and maintenance personnel who
application. might only infrequently review documentation
Regardless of the development product-pack- should be directed to the new information rather than
aged software, generated CASE code, or manually having to read entire documents each time. The tech-
programmed code-proving that the software works niques for identifying change easily are identified in
by testing it at various levels of detail and aggrega- Chapter 18.
tion is required. Chapter 17 defines the different Similarly, application decisions might provide a
strategies for testing and types of testing performed. useful trace of the considerations and discarded
Test types are matched to strategies to develop an ideas throughout a project's life. Few project teams
effective overall strategy for testing applications. For keep such a decision trace because, historically, to do
each level of testing, key issues in test case devel- so meant maintenance of more thousands of pages of
opment are identified. Based on research on testing paper. With automated decision support and sophis-
errors found, guidelines for deciding when to stop ticated word processing, keeping a record of deci-
testing at each level are provided. The ABC case is sion history is now feasible and can be useful in
then analyzed to demonstrate how the theories organizations with rapidly changing management or
apply in practice. on projects that support business functions that are
The last two chapters relate to change. Chapter 18 subject to rapid industry change.
discusses application change management that all Software changes and application configuration
take place throughout the life of a project. Change management are the other major topics of Chapter
is a way of life in computing and application devel- 18. A recent buzzword identifies software reengi-
opment is no exception. In Chapter 18, we first dis- neering, also called reverse engineering, as the back-
cuss how to design for reusability by using templates ward design of undocumented programs and
and reusable modules. Then, change management applications that were probably built without the
techniques that apply to documents, decisions, soft- team having followed a methodology to guide the
ware, and application configurations are presented. work. Also called spaghetti code, such applications
The automated tools section includes software rep- can be maintained beyond a useful life. In the chap-
resentative of each type of change management. ter, we describe how to decide when to reverse
Implementation and Maintenance 639
engineer, reengineer, or retire applications and/or nesses are described. Then, one way to plan a career
individual programs. Once the decision is made to by thinking through your wants and requirements for
maintain software, management of the software technical, job, company, geography, and opportuni-
maintenance process is an important task in deter- ties for advancement is developed. A method for
mining that the correct configuration of modules, defining your chances of job success is defined next.
functions, programs, and so on, is in production. The Trends of IS jobs over the last five years by geogra-
issue of configuration management is more compli- phy, salary, and industry are discussed. Part of
cated when multiple versions of software, such as a developing yourself into a professional and having
DOS and MVS versions, exist. Techniques and man- a career is to maintain your professional status.
agement practices for configuration management are Techniques for maintaining professional status and
described in the chapter. building on knowledge areas including education,
Finally, your career is important and requires professional association membership, accreditation,
management by you for your working life. It is dif- and reading are all defined, with suggested ap-
ficult to plan a career without having a sense of what proaches to applying the information to your own
opportunities and expectations are available. First, situation.
the typical job levels and types of jobs found in busi-
C HAP T E R 15
CHOOSINGAN --------------------------------------------------~
IMPLEMENTATION _ _ _ _ _ _ ---II
LANGUAGE
640
Characteristics of Languages 641
code what you want to do, not how. With set pro- Not
cessing, you identify the database and the language Equal
controls all file manipulation. The more procedural
Less <
the language, the richer the language constructs need
to be. The more detailed the application, the richer Greater >
the language of the application should be. Less or equal ~, =<, <=
Sequencing occurs between and within com- Greater or equal 2, =>, >=
mands. Between-command sequencing is controlled
by you as the programmer who defines the order of
commands. Intracommand sequencing is part of lan- FIGURE 15-5 Language Operators
guage definition and is called operator precedence.
Operator precedence is the prioritizing of symbols
to manipulate data. All languages have at least four cesses involved in programming by "chunking" case
arithmetic symbols in common: + for add, - for sub- contents.
traction, * for multiplication, and / for division. Most Exits leave the current code module and return
languages also have many other symbols and opera- to the calling module or to some other named mod-
tions supporting unary and binary operations includ- ule. Exits can be simple returns to the calling mod-
ing relational processing (e.g., "less than," "less than ule, such as Return, Cut, or Exit statements (see
or equal," etc.), logical processing (e.g., "and," "or," Figure 15-7); exits can indicate the nature of the end
or "not"). A list of operators available in different as in PROLOG's Fail exit, or exits can return to a
languages is provided in Figure 15-5. named module in a Goto statement.
Control language constructs support iteration, Arrays, or tables, are a third type of language
sequential or selection processing via loops, exits, construct that mayor may not be supported by a lan-
conditional statements, or case constructs. Loops guage. Linear arrays, or lists, are one type of data
provide iterative, repetitive processing and are usu- that are relatively simple to support (see Figure
ally supported through structured programming 15-8). When higher dimension arrays are supported,
notations such as "do while ... " or "do until. ... " the maximum number of dimensions are identified.
Conditional statements support "if ... then .. . Occasionally a language will support n-dimensional
else" processing. Conditional statements are used in arrays, with a user-defined maximum.
some languages to control iterative loop processing. Next there are four possible alternatives for phys-
Common loop notations are shown in Figure 15-6. ical input and output (I/O) of information to and
Case statements allow identification of code seg- from automated files or data entry fields. First, spe-
ments that combine to identify the "case," for cific I/O statements (e.g., read/write) for externally
example, in Focus file maintenance processing you stored data may be one of three types: record-
can code screen processing cases for add, change, oriented, set-oriented, or array-oriented. Record-
and delete cases. This simplifies the thought pro- oriented I/O reads (or writes) a physical record of
644 CHAPTER 15 Choosing an Implementation Language
DO ... ENDDO 2
FOR .. . 3
FOR ... END FOR 4
if False ... 5
ifTrue ... Two Dimensional Array of Months and Days
INDEX .. . January 31
LOOP ... ENDLOOP February 28
REPEAT ... END March 31
REPEAT .. . April 30
WHILE .. . Three Dimensional Array of Sales By Year By Month
WHILE ... ENDWHILE Year Month Sales
whileFalse ... 1996 January 220,000
whileTrue ... 1996 February 250,000
information that may contain one or more logical Year Month Sales
records. Recall from database class that records (or 1994 January 100,000
tuples in relational terminology) are groupings of
1994 February 100,000
related fields. Record-oriented I/O requires opening
and closing of files, reading or writing of records,
and user management of all file processing, such as FIGURE 15-8 Types of Arrays
checks for end-of-file. COBOL, Fortran, Assembler
languages, and Ada are record-oriented.
more rigorously defined and has provably correct only used within a given module. Global data are
contents based on mathematical set theory which accessible to any module in the application. The
underlies relationship processing. Implicit I/O, on ability to have local data is important to attaining
the other hand, is in languages which predate rela- information hiding and minimal coupling. The
tional theory and do not have provably correct extent to which global data is required limits the
results. quality of resulting programs by limiting informa-
Array-oriented I/O reads and writes strings of tion hiding and cohesion.
fields that are assumed to be some sort of array. The Subprograms' activation is similar across lan-
user is responsible for defining and manipulating the guages. Called modules are referenced by module
nature and data type of array. The language simply name. For instance, "CALL FACTORIAL, 5" might
reads or writes until the end of the array. Pascal is be a subprogram call that passes the value five for
an array-oriented language. factorial computation. Modules must reside in a
List-directed I/O is a variant of array-oriented library that is linked to the calling module via control
I/O. List-directed I/O is used in Fortran to define a language (e.g., JCL). Options for call processing
list of variable names to which items are directed as include passing of variable data either by name, by
they are read. The language reads until the list is full, address, or directly, by value. Value passing requires
then continues processing until the read is again local data definition while passing data by name or
executed. Data items are not specifically formatted, address is used with either local or global data.
rather the format is implicit in the variable names. Generally, when using subprograms, a main mod-
The extent to which data formats and I/O pro- ule calls the subprogram which performs its process-
cessing can be defined and controlled distinguishes ing and returns to the calling module. The ability to
languages as I/O-oriented versus CPU -oriented in support subprogram processing requires one or more
their processing. The more elaborate the I/O pro- entry and exit points. Exit and return processing are
cessing, the more I/O-oriented the language. The also important when passing control of processing
more primitive the I/O processing, the more CPU- between modules. In general, the more opportunities
oriented the language. Fortran is an example of a to enter and exit a given module, the more proficient
CPU-oriented language, while COBOL is an exam- the programmer needs to be to ensure proper pro-
ple of an I/O-oriented language. cessing. According to structured programming ten-
ants, a well-designed module should have one entry
and one exit point. Some languages, such as Small-
Modularization and Memory talk and Ada, enforce this idea by allowing only one
entry and one exit per module. One entry-one exit
Management modules are less error-prone than modules that allow
The extent to which modularization and memory many alternatives.
management are supported is an indication of lan- The next level of sophistication is the extent to
guage sophistication. Modularization is the creation which programmers have control over their own
of subprograms or stored functions. Languages dif- memory management. Memory management refers
fer in the manner in which the subprogram and their to the ability of a program to allocate more computer
data are supported. First, the ability to define sub- memory as required. This is an option frequently
programs or functions is important to attaining desired in variable list processing and real-time
desirable program characteristics such as maximal applications that manage multiuser resources. Mem-
cohesion. Not all languages allow SUbprograms. In ory in less sophisticated languages is static: The pro-
particular, set-oriented languages (SQL) do not eas- gram is assigned a maximum at the time it is initiated
ily support subprograms. for processing. If more memory than that allocated
Second, how data in modules is managed is is needed, the program abends, more memory is
important. Data can be local or global. Local data requested manually via job control language, and the
storage defines data variables and constants that are program is rerun.
646 CHAPTER 15 Choosing an Implementation Language
module. The constant part is loaded into memory tomized report column titles and the use of double
once and it services tasks in a serially reusable man- quotes for customized report page titles. This type of
ner until it is overwritten by another program. A inconsistency hinders the learning of the language
copy of the variable part is activated for each task and almost guarantees that novices and infrequent
when it is initiated (see Figure 15-9). A queueing users will make mistakes.
mechanism keeps track of the user's identification, Ambiguity of a language refers to the extent to
the location of the variable part, program status which humans and compilers will differ in their
word, and register contents for the task. This infor- interpretation of a language statement. Ideally,
mation is swapped into (or out of) the active area as humans' thinking should be identical to compiler
the user becomes activated (or interrupted). Only interpretation, and that compiler interpretation
one task is active at a time, but several tasks might should be intuitive to humans. Unfortunately, ambi-
be in various stages of task completion. Only the guity may be inherent to some problems, such as
property ofreentrancy allows true real-time process- artificial intelligence applications which reason
ing and support for multiple concurrent users. Both through a process. As new rules and inferences are
serial reusability and recursiveness are required to added to an AI application, interpretation of exist-
achieve reentrancy in programs. ing data and rules might also change, thus intro-
To summarize, programming languages differ ducing ambiguity into a previously unambiguous
in the extent to which they support alternatives application.
for defining data types, input/output process- Compactness of a language is its brevity. The
ing, mathematical, relational, logical, bit, control, presence of structured program constructs, key-
array, subprogram, and memory processing. The words and abbreviations, data defaults, and built-in
less extensive the language constructs supported, functions all simplify learning and programming.
the simpler the language, but the more restricted the Contrast SQL or Focus, both fourth-generation
domain of problems to which it is amenable. The languages, with COBOL, a third-generation lan-
more extensive the language constructs sup- guage. A report that takes three to five lines in 4GL
ported, the more complex the language, and the procedure code requires 50-150 lines of COBOL
more extensive the domain of problems to which it code (see Figure 15-10). That learning time is con-
is appropriate. siderably shorter for Focus than COBOL, partly due
to the compactness of the language.
In turn, compactness implies locality in providing
NONTECHNICAL _ _ _ __ natural "chunks" of code that facilitate learning,
mental visualization of problem parts, and simula-
LANGUAGE _ _ _ _ ___ tion of solutions. Locality is provided through block,
CHARACTERISTICS _ _ __ case, or other similar chunking mechanisms in lan-
guages. Chunks might be implemented via a per-
Nontechnical characteristics are at least as important formed section of code in COBOL, a case construct
as technical characteristics when selecting a lan- in Focus, or an object definition in Smalltalk. In all
guage. The nontechnical characteristics evaluated three of these examples, a user's attention is focused
here are uniformity, ambiguity, compactness, local- only on the chunk of the code present. By being able
ity, linearity, ease of design to code translation, com- to ignore other parts of the code, learning of the
piler efficiency, and portability. The availability of chunk is simplified.
CASE tools, availability of code generators, and Linearity refers to the extent to which code is
availability of testing aids also add to a language's read sequentially. The more linear a language, the
attractiveness, and are discussed in a later section. easier it is to mentally "chunk" and understand the
Uniformity is the use of consistent notation code. Linearity facilitates understanding and main-
throughout the language. An example of nonunifor- tainability. In Figure 15-10, the COBOL code
mity in Focus is the use of single quotes for cus- chunks in paragraphs and performed sections; these
648 CHAPTER 15 Choosing an Implementation Language
4GL-Focus
TABLE FILE SALES
HEADING CENTER 'SAMPLE SALES REPORT'
SUM SALES
BY REGION
ACROSS MONTH
BY YEAR
ON YEAR SUMMARIZE
ON YEAR PAGE-BREAK
END
3GL-COBOL
WORKING-STORAGE SECTION.
01 CONTROL-TOTALS.
05 LINE-COUNT PIC99 VALUE 55.
05 END-OF-FILE PIC9 VALUE ZERO.
88 EOF VALUE 1.
05 CURRENT-REGION PIC 99 VALUE ZERO.
05 SUM-SALES.
10 JAN-SUM PIC 9(5) VALUE ZEROS.
10 FEB-SUM PIC 9(5) VALUE ZEROS.
10 MAR-SUM PIC 9(5) VALUE ZEROS.
10 APR-SUM PIC 9(5) VALUE ZEROS.
10 MAY-SUM PIC 9(5) VALUE ZEROS.
10 JUN-SUM PIC 9(5) VALUE ZEROS.
10 JUL-SUM PIC 9(5) VALUE ZEROS.
10 AUG-SUM PIC 9(5) VALUE ZEROS.
10 SEP-SUM PIC 9(5) VALUE ZEROS.
10 OCT-SUM PIC 9(5) VALUE ZEROS.
10 NOV-SUM PIC 9(5) VALUE ZEROS.
10 DEC-SUM PIC 9(5) VALUE ZEROS.
01 REPORT-HEADER.
05 FILLER PIC X(48) VALUE SPACES.
05 HD1 PIC X(19) VALUE
'SAMPLE SALES REPORT'.
01 COL-HEADER1.
05 FILLER PIC X(132) VALUE
'REGION MONTH'.
01 Cot-HEADER 2.
05 FILLER PIC X(132) VALUE
JAN FEB MAR APR MAY
JUNE JULY AUG SEPT OCT NOV DEC'.
01 REPORT-DETAIL.
05 FILLER PIC XXX VALUE SPACES.
05 REGION PIC XX VALUE SPACES.
05 FILLER PIC X(10) VALUE SPACES.
05 SALES PIC X(84) VALUE ZEROS.
PROCEDURE DIVISION.
SUMMARY-CONTROL.
IF REGION = CURRENT-REGION
GO TO PAGE-CONTROL
ELSE
MOVE SUM-SALES TO SALES-NUMERICS
MOVE YEAR TO REGION
WRITE REPORT-DETAIL AFTER 3.
ADD 3 TO LINE-COUNT.
PAGE-CONTROL.
IF LINE-COUNT> 50 OR REGION NOT = CURRENT-REGION
WRITE REPORT-HEADER AFTER PAGE
WRITE COL-HEADER1 AFTER 2
WRITE COL-HEADER2 AFTER 1
MOVE 4 TO LINE-COUNT.
MOVE REGION TO CURRENT-REGION.
PRINT-REPORT.
MOVE CORRESPONDING INPUT-SALES-SUMMARY TO REPORT-DETAIL.
WRITE REPORT-DETAIL AFTER 1.
ADD 1 TO LINE-COUNT.
PRINT-REPORT-EXIT.
EXIT.
language features facilitate COBOL program under- language constructs above. Then we discuss appli-
standability. cation characteristics and how they map to the
The ease with which program specifications are languages.
translated into code is also important in language
selection. In general, more declarative languages,
such as SOL, are considered easier to code than
COMPARISON OF _ _ _ __
more procedural languages such as Fortran. How-
ever, PROLOG and other inferential languages, LANGUAGES _ _ _ _ __
while declarative and simple in developing single
rules, are not simple when trying to determine Ten languages are evaluated in this section to high-
whether the rules aggregate to the proper knowledge light the differences across paradigms and language
structures. generations for all of the characteristics defined
Compiler efficiency is the extent to which a above. The ten languages selected were chosen
compiled language generates efficient assembler because of their current and expected future popu-
code. Compiler efficiency varies by vendor and by larity either in academic circles (e.g., Pascal) or in
language. Compiled code efficiency is important industry. The languages include SOL, COBOL, For-
especially when programming for small computer tran, BASIC, Focus, C, Pascal, PROLOG, Ada, and
systems or for embedded applications that interact Smalltalk. Each language is discussed briefly below
with other system components as part of a larger to highlight the characteristics that make it popular
system. and unique. Table 15-1 summarizes the 10 languages
Along with efficiency of executable code, porta- on all of the characteristics described above.
bility of code is important. Portability is the ability
to transplant the code without change to a different
operating platform that might include hardware, dif-
SQL
ferent operating system, or different software envi- As the American National Standards Institute's stan-
ronment. A hardware platform may be a single-user dard for database query language, SOL has enjoyed
personal computer, a workstation, or a mainframe. a successful life. SQL pervades any database course
Each of these might run the same operating system, taught in North America and is a query language
for example Unix, or might use a different operat- front-end to virtually every database package on the
ing system. The more code that must be changed to market regardless of machine size, number of users
accommodate a specific hardware or operating supported, or complexity of the database. SOL's
environment, the less portable the language. As virtues are mostly nontechnical: ease of learning,
global and distributed applications become more compactness, uniformity, locality, linearity, portabil-
prevalent, the need for language portability will ity, and availability of automated tools (see Table
increase. Ideally, programs should be able to be 15-1). The simplicity of the language is evident in
developed anywhere for execution on any hardware the small number of hours of learning time it takes
or operating system platform. novices to begin using the language. A novice might
In summary, when technical characteristics do not begin writing queries in literally minutes. Profi-
distinguish languages for application use, nontechni- ciency, of course, takes longer, but time to become
cal characteristics of languages become important proficient is shorter than most database languages.
to their selection. The nontechnical characteristics Many CASE environments that support analysis
evaluated here include uniformity, ambiguity, and design also support logical database design
compactness, locality, linearity, ease of code devel- through the process of normalization. Those prod-
opment, compiler efficiency, portability, and avail- ucts also generate SOL database definitions as
ability of automated development tools. In the next the logical DB design output. Many of the same
section, we discuss ten popular programming lan-
guages and the extent to which they contain the (Text continues on page 656)
Comparison of Languages 651
Data Types
Real Yes Yes Yes Yes Yes
Integer Yes Yes Yes Yes Yes
Character Yes Yes Yes Yes Yes
String No No No Yes No
Boolean No No No No No
Date No Yes No No No
User-Defined No No No No No
Pointer No No No No No
Bit Identification No No No No No
String-Mask No No No No No
Data Type Checking
Typeless X X
Automatic type
coercion X
Mixed mode X X
Pseudo strong
Strong
Operator Precedence 0" */± 0" */± 0" */± 0" */± 0" */±
Binary and Unary
Operators Yes Yes Yes Yes Yes
Arithmetic +,-, *,/ Yes Yes Yes Yes Yes
Relational <,=,>,::;,~ Yes Yes Yes Yes Yes
Logical and,or,not Yes Yes Yes Yes Yes
Bit No No No No No
Type Conversion No Yes, No Yes, Yes,
Limited Limited and Limited and
Inconsistent Inconsistent
Control
Loops No No FOR ... PERFORM ... FOR ...
NEXT UNTIL CONTINUE
Exits No EXIT, EXIT, EXIT EXIT,
GOTO GOTO GOTO
Conditional WHERE IF ... IF ... IF ... THEN IF ...
Statements ELSE ... ELSE
Case No Yes (not in No COBOL 88 No
Statements query language) only
Arrays
Linear Arrays No No Yes Yes Yes
Multiple
Dimensions No No Upt02 Up to 3 Up to 3
(Table continues on next page)
652 CHAPTER 15 Choosing an Implementation Language
Input/Output
I/O of Records No No Yes Yes Yes
I/O of Arrays No No No No Yes
Implicit I/O Yes Yes No No No
Format Control Automatic or Automatic or Programmed Programmed Programmed
Programmed Programmed only only only
Data-directed I/O No No No No Yes
Subprograms
Subroutines Nested Yes Yes Yes Yes
Functions Limited Yes Limited Limited Limited
Local/Global No Yes Limited Programmed Yes
Storage only
Static/Dynamic No No No No No
Storage
Entry Points No Yes Yes Yes One
Pass Parameters No Yes Yes Yes Yes
Call by Address No No No No No
Call by Value No No No No No
Call by Name No Yes Yes Yes Yes
Reusability No Yes Yes Yes Yes
Reentrancy No No No No No
Recursion No No No No No
Concurrency Only when Yes No No No
used with DB2
Exception Handling No Limited Limited Limited Limited
Nontechnical
Uniformity High Medium-High Medium Medium Medium
Ambiguity Low-Medium Low-Medium Medium Medium Medium
Compactness High High Medium-High Low Medium-High
Locality High High Programmed Programmed Programmed
only only only
Linearity High High Low-Medium Low-Medium Low-Medium
Ease of design
to code High High Low-Medium Low-Medium Low-Medium
Compiler Yes, Medium, Medium, Medium-High Medium-High
Efficiency when used Mostly Mostly
as embedded Interpreted Interpreted
language;
otherwise SQL
is interpreted
Source code
portability High High Medium High High
Comparison of Languages 653
Nontechnical, cont.
Availability of
CASE tools Yes Yes No Yes No
Code generators Yes No No Yes No
Testing aids Yes No Yes Yes Yes
Maintainability High Medium-High Low-Medium Low-High Low-Medium
Data Types
Real Yes Yes Yes Yes Yes
Integer Yes Yes Yes Yes Yes
Character Yes Yes Yes Yes Yes
String Yes Yes, Limited Yes Yes Yes
Boolean No, but can be Yes No Yes Yes
user defined
Date No No No No No
User-Defined Yes Yes No Yes Yes
Pointer Yes No No Yes Yes
Bit Identification Yes No No Yes Yes
String-Mask No Limited Yes No No
Data Type Checking
Typeless X
Automatic
Mixed mode X
Pseudo strong X
Strong TurboProlog X X
Operator Precedence () []-> not () ** not abs unary
+ - (unary) */ div mod + -unary * /mod rem binary
++-! ~ * + and-or mod div + - unary keyword
& size of =<> < <= > >= */ + - & binary
(type) <in + - binary relational
* / % +-«» relational logical
<= >=!= == operators short -circuit
&/\
&&11
?:
= op=,
No exponent No exponent No exponent No exponent
operator operator operator operator
Operators
Binary and Unary Yes Yes Yes Yes Yes
(Table continues on next page)
654 CHAPTER 15 Choosing an Implementation Language
Operators, cont.
Arithmetic +,-, *,/ Yes, also % for Yes Yes Yes Yes
modulus
Relational <,=,>,:::;;,~ Yes Yes Yes Yes Yes
Logical and,or,not Yes Yes Yes Yes Yes
Bit Yes No No Yes Yes
Type Conversion No No No No No
Loops DO WHILE ... Simulated via BEGIN ... END iITrue
FOR ... REPEAT ... WHILE ... ifFalse
REPEAT ... WHILE ... FOR ... whileTrue
END INDEX ... BLOCK while False
LOOP ... END
LOOP
Subprograms
Subprograms Yes Yes TurboProlog, Yes Yes
else No
Functions Yes Yes Yes Yes
Local/Global
Storage Both Both Both Both Both
Static/Dynamic
Storage Both No control Both Both Both
Entry Points One per One per One per One per One per object
function routine program routine
Parameters
Call by Address Yes No No Yes No
Call by Value No Yes No Yes No
Call by Name Yes Yes Clause name Yes Yes
as subgoal
Reusability Yes Yes Yes Yes Yes
Recursion Yes Yes Yes Yes Yes
Reentrancy No Yes No Yes Yes
Concurrency No, unless Concurrent Depends on Yes Yes
C++ Pascal only version
Exception Handling Yes No Yes Yes Yes
Nontechnical
Uniformity Low-High Medium-High Medium-High Medium-High Medium-High
Ambiguity Low-Medium Low-Medium Medium-High Low-Medium Low-Medium
Compactness Low-High Medium-High Low-High Low-High Low-High
Locality Low-High Low-High Low-Medium Low-High Low-High
Linearity Low-High Low-High Low-High Low-High Low-High
Ease of design
to code Medium-High Medium-High Medium Medium-High Medium-High
Compiler High High Usually Medium-High High
Efficiency interpreted
Source code
portability High Medium-High Low Medium-High Low
Availability of
CASE tools No In academia, No Yes Yes
yes
Code generators No No No No No
Testing Aids Yes Yes No Yes Yes
Maintainability Low-High Low-High Low-High Medium-High Medium-High
656 CHAPTER 15 Choosing an Implementation Language
products also provide code generation of Cobol with a language of defaults that does not support user-
embedded SOL providing DB access. Examples of defined or user-managed resources.
CASE products are ADWTM and IEFTM. These prod-
ucts have their own code generators and can inter-
face to code generation software.
BASIC
In terms of technical capabilities, SOL is limited. BASIC is short for Beginner'sAll-purpose Symbolic
It is assumed that complex programming is done Interchange Code. BASIC is present in this evalua-
in some other language with SOL embedded as tion because of the number of applications written in
described above. SOL can define and modify data- it regardless of whether it were appropriate or not.
bases, perform simple mathematical processing on BASIC is, well, basic. Nothing fancy is supported
fields for reporting, and generate default or cus- in this language, but all rudimentary processing is
tomized reports. present (see Table 15-1). BASIC is fairly easy to
learn and write, with reasonable levels of uniformity,
compactness, and good automated testing aids. The
remaining characteristics vary considerably from
Focus one version of BASIC to another. In particular, its
As a fourth-generation language, Focus consists of a portability is low-medium since the I/O commands
database engine with its own query language, SQL usually must change to suit a particular environment.
compatibility, a full-screen processor, and language BASIC does standard programming operations,
subsets for graphical, statistical, file maintenance, supporting a limited, but standard number of data
and intelligent processing. Focus DB supports rela- types, with no type checking. There are language
tional, hierarchic, and network files as well as pro- constructs for loop, condition, and array processing.
viding an interface to many popular mainframe Files can be read and written.
DBMSs, such as IMS, IDMS, Adabas, Model 204, BASIC is popular because a whole generation of
and so on. college graduates was subjected to it as the basis for
Like SQL, Focus' main strengths lie in the non- learning programming. Provided an application does
technical characteristics of the language: compact- not require any nonstandard processing, BASIC can
ness, locality, linearity, ease of code translation, perform adequately.
portability, and availability of CASE tools for docu-
menting analysis and design (see Table 15-1).
Occasionally, Focus can be ambiguous in interpret-
COBOL
ing handling of data across a hierarchy or in multiple COBOL stands for COmmon Business Oriented
joined files. Language. It is the most frequently used language
Focus is a full-function database language. This in computer history and continues to maintain that
means that files can be defined, maintained, vali- status even though its demise is regularly reported as
dated, modified by transaction processing, and imminent. COBOL can be likened to a bus. Buses
queried all in the same environment and the same are uncomfortable, take longer than most other
language regardless of the hardware/software plat- modes of transportation, but are suited to many types
form. This high level of portability and full- of trips. Similarly, COBOL is uncomfortable to
function nature of the processing make Focus a pop- code, it takes a long time to develop code, but it is
ular 4GL for rapid application development and user suited to many business problems. As an all-
query processing. purpose language, COBOL does most everything,
A reentrant version of Focus is available to sup- and it is written in a language that is close to English.
port multiuser processing. Application code in Focus COBOL input/output processing is consistently
is not reentrant. A compiler is available for file mod- superior in efficiency and range of data structures
ify routines; otherwise, Focus is interpreted. Focus is supported (see Table 15-1). COBOL is not good for
Comparison of Languages 657
subprograms (see Table 15-1). However, standard "A wid weighs 1.25 pounds." PROLOG rules
Pascal cannot use subroutine libraries since it define how facts are assembled to make information.
assumes all program modules are instream, that is, An example of a rule might be: "If a widget is
embedded within the code of a single program. overweight, check the weight and tolerance of
There is little control over interrupt processing in each component."
the language, so abends cannot be intercepted and PROLOG goals are data that match some selec-
redirected. I/O processing is more limited than some tion criteria, for example, the probable cause of a
languages in not supporting random access files and manufacturing problem specified in the query: What
in very limited string processing. could cause finished widgets to be 3.2 pounds over-
Pascal is similar to C on the nontechnical char- weight? Subgoals, which would be subprograms in
acteristics in that the readability, ambiguity, local- the terminology of the other languages, are deter-
ity, and so forth of the language are dependent on the mined from the goal. In the example above, widget
author using indentation and separation of state- components, their weight, weight allowances, and
ments to ensure these characteristics. But, unlike C, how each is used in widget manufacturing might all
the language constructs of Pascal support readability be subgoal information to be determined to answer
once the indentation is done. Pascal requires less the query. Goals are satisfied/answered by satisfy-
technical knowledge of hardware or operating sys- ing all subgoals. When a subgoal fails, an alternative
tems to be efficient. for arriving at similar information is found via logi-
Because Pascal was developed as a teaching tool, cal backtracking through the rules. The subgoal
automated programming support environments are might remain unsatisfied, leading to a low level of
available at least in academic settings. 3 These envi- confidence in the deduced answer.
ronments require the student to enter the construct Although the constructs for PROLOG are simi-
desired; the software then displays a template of lar in many ways to those of declarative, procedural,
options for which the student fills in the blanks and object languages, there are many significant dif-
of the selected subconstructs. There are also many ferences in both data and program processes (see
automated testing aids such as visual execution Table 15-1). Data are facts that are normally stored
environments available to support Pascal pro- in the program rather than as separate files. This is a
gram testing. limitation in using PROLOG for general purpose
business processing.
Program control is maintained through the order-
ing of clauses for execution and through the use of
PROLOG verbs like fail, which initiates backtracking by fail-
PROLOG is short for PROgramming in LOGic. ing a subgoal, or cut, which prevents any more back-
PROLOG is the only strictly artificial intelligence tracking when a subgoal is fulfilled. Subprograms
language included in this group. PROLOG was are simulated via call/return processing to clauses.
developed at the University of Marseilles in the early Iteration is performed via recursive processing
1970s with the most common version in the United of rules.
States that of David H. D. Warren. PROLOG is a How one rates PROLOG on the nontechnical
goal-oriented, declarative language with constructs aspects of the language depends on the size of the
for facts and rules. PROLOG facts are pieces of problem being automated. For small problems, the
concrete, factual information. A fact might be: "A language can be compact, local, and linear. For large
part of a widget is a wid." Another fact might be: problems, the language can be highly ambiguous,
noncompact, difficult to follow in a linear manner,
and without local references to facilitate understand-
3 Thomas Reps, MIT, developed a Pascal programming envi- ing. Ironically, PROLOG is viewed as a good lan-
ronment for Cornell as part of his dissertation [Reps, 1984]. guage for novices with little exposure to procedural
Comparison of Languages 659
languages. It is easy to learn if one can think in the caveat on Smalltalk use is that object orientation,
goal-oriented manner of the language. and therefore object-oriented programming, requires
a different kind of thinking than procedural language
programming such as COBOL.
Smalltal'k
Smalltalk was developed as both operating environ-
ment and language during the 1970s at the Xerox
Ada
Palo Alto Research Center by the Learning Research Ada, the official language ofthe U.S. Department of
Group. It is an object-oriented language that treats Defense, with a user population in the hundreds of
everything as an object, even for instance, integers. thousands, has had more thought about its imple-
Smalltalk is highly customizable and can, therefore, mentation than any other language. Ada was named
be used to design efficient applications. after Ada, Countess of Lovelace, who originated the
Many important object-oriented concepts are idea for stored programs to drive the use of comput-
embodied in the language, including abstraction, ing devices.
encapsulation, and some class processing (see Chap- Ada's design by committee has not resulted in a
ters 11 and 12). Abstraction is the definition of iden- perfect language, but in one that is better than most.
tifying characteristics of an object. Encapsulation is Current versions of Ada are object based rather than
the term used to describe the packaging of data and object oriented. In object-based applications, pro-
allowable processing on that data together. Objects grams are cooperative collections of objects, each
communicate with each other only by message pass- of which represents an instance of some object type.
ing. An individual object is an instance of a class. All object types are members of a hierarchy of types
Classes describe objects that share common data and which are linked through processing rather than
processes but that also may have data and processes through inheritance relationships. Classes, rather
that differ. For instance, the class employee might than types, are not formally recognized; there are no
have subclasses manager, professional, and clerk. persistent objects such as files, and inheritance is not
All subclasses are also employees and share that data supported (see Table 15-1).
and processing as well as their own. In addition, an Ada files, as in Smalltalk, are defined as a type
individual might be a member of professional and within the constructs of the language and all pro-
manager classes at the same time. cessing is on the type. Also, there is no real message
Smalltalk is a full-function, unconstrained pro- processing in Ada, at least as of 1992. Rather, the
gramming language that can literally be used to do system is fooled through function calls and parame-
anything (see Table 15-1). The major weakness of ter passing to simulate message processing. Like
Smalltalk is that it does not specifically support per- Smalltalk, Ada's strength is its ability to support
sistent objects, also known as files. But if the file is event-driven processing, like missile guidance in
an object, then it, too, can be processed in Smalltalk. embedded defense-related systems.
The strength of Smalltalk is in its use for event- Future versions of Ada are expected to adapt mul-
driven processing as in process control, heating sys- ticlass inheritance structures and processing,
tem monitoring, or just-in-time notification of dynamic binding of objects, real message process-
manufacturing needs. These types of applications ing, and persistent objects that provide a variety of
use nonpersistent messages from the external envi- data structures. With these extensions, Ada is suit-
ronment to drive the processing done by the appli- able for virtually any application. The same warn-
cation; these applications do not necessarily need ing about the difference in object-oriented thinking
files for processing. Similarly, message processing expressed about Small talk is also appropriate here:
support in Smalltalk assumes point/pick devices, Object-oriented design and program development is
such as a mouse, for interactive, nonpersistent com- different in kind than procedural development of
munication with the application user. The only major applications via languages such as COBOL.
660 CHAPTER 15 Choosing an Implementation Language
TPS-Batch X X X X
TPS-On-Line X X X X X X X X
TPS-Real-
Time X X X
Query X X
DSS/Data
Analysis X X X X X X X X
AI/Expert
Systems X
EIS X X X X
within its one language. As such, it is the most full- ware packages to provide all the functions of
function data analysis tool in this group. The other such applications.
languages have the individual tools for a program- GDSS applications almost always use packages
mer to build a data analysis application, but the to support group decision processes, but might use
assumption is that some processing would be done C, Pascal, PROLOG, Ada, or Smalltalk for part of
by general purpose modeling languages (e.g., Sta- the processing, depending on the environment (see
tistical Analysis System-SAS.4 If complex simul- Table 15-2).
taneous equations are required, Focus is not the Finally, artificial intelligence applications, specif-
appropriate language. Then, choices are restricted ically expert systems, might use PROLOG (see
to Fortran, Ada, or Smalltalk. Fortran does not actu- Table 15-2). Only PROLOG supports inference
ally provide simultaneous equation solutions, but it through logic programming. None of the other lan-
can be 'fooled' into performing as if it does. The guages is appropriate to AI applications.
other languages are better choices for simultaneous
equation processing. Some dialects of C (Le., Con-
current C) and Pascal (i.e., Object Pascal) might also
be used for simultaneous equations. Language Matched to
ESS or DSS applications may have changing Methodology
requirements that are not well understood due to the
unstructured nature of the problem domain. For such The experience with methodologies is similar to that
applications, C, Pascal, PROLOG, Ada, or Smalltalk of languages in that few heuristics are known to
might be used (see Table 15-2). One or more of these guide methodology selection. Rather, at the present
languages might be combined with purchased soft- time, a company tends to adopt and learn one
methodology and it is used for all applications,
whether appropriate or not. The position taken
4 SAS is a registered trademark of the SAS Corporation, here is that the methodology and language should
Cary, NC. match the application type. In this section, the ten
662 CHAPTER 15 Choosing an Implementation Language
Process X X X X X X X X
Data X X X X X
Object c++ X X X
SOFTWARE ----------------------------------------------------------~
666
Request for Proposal Process 667
estimates in a make-buy decision, a detailed sched- must rely totally on the key person(s), ensuring that
ule and cost should be developed. If the RFP is com- they remain on the project until it is operational.
paring only external purchase options, less detail and Staffing estimates are used to develop personnel
precision are required. In this case, the schedule pro- costs for the project. If the proposal includes hard-
vides an estimated end-date for the item to be used in ware or software, each item should be priced at the
comparing the proposals. The expected end-date best retail prices available. For instance, MacWorld
might be omitted and left as a proposal item, or and PC magazines include tear-out pages of adver-
might be listed as either required or desired in the tising by discount vendors for both hardware and
proposal. software. Professional data sources, such as Data-
Occasionally, a user manager will mandate the Pro™,l provide retail prices which can be used as a
desired completion date for a project. In that case, basis to which proposed costs might be evaluated.
the in-house estimates are developed to determine
the realism of the mandated date. If the date is
unlikely because it is very different from the esti-
Develop Request for Proposal
mate, the vendors can be asked in the proposal re- The steps in developing the RFP are first, to deter-
quirements how they deal with completion date mine likely vendors; second, select from the likely
problems and a tight schedule. vendors the few that best meet your require-
The planning process is the same as that followed ments; and third, develop and send the proposal to
in Chapter 6, with the level of precision adjusted to the vendors.
fit the situation. Requirements are converted into a
task list. Each task's development time is estimated Determine Likely Vendors
for the most likely outcome. Sophisticated estimates,
Several stages of information gathering precede the
including optimistic, average, and pessimistic times,
actual bidding process. First, potential vendors are
mayor may not be developed. During the proposal
identified. Vendor identification can be from a com-
evaluation process, vendor time estimates are com-
mercial information service, such as DataPro TM, or
pared to the planned completion date.
from trade magazine advertisements, for instance,
A similar activity is done for personnel estimates.
from PC Magazine, Computerworld, or Network
A rough estimate of the number of people and their
Week. This process should identify ten or more
skill levels should be developed, based on the tasks
vendors.
and times for each task. During proposal evaluation,
the estimated project team skills are matched against
Narrow the Number of Vendors
the skills of the people to be assigned to the project
by each vendor. The closeness of match indicates When potential vendors are identified, they are con-
several things. First, the closer the match, the more tacted and requested to send information. Depending
confidence you can have that the vendor understands on the comp~ny and item, this can be an informal
the problem. Second, the closer the match, the more telephone call or can be a formal, written request
likely the vendor's reasoning is consistent with your for information (RFI). Documentation on the prod-
reasoning about the project's needs. Third, the less ucts requested is reviewed to narrow the number of
close the match, the more likely the vendor is staff- alternatives to a manageable few, usually between
ing the project with people who are learning new two and five.
skills and who, therefore, will not be fully knowl- The information review frequently identifies a
edgeable about the technology or application area need for more information to differentiate between
of your problem. This third case is not necessarily products. Either requirements are refined or more
bad, but it does imply that there will be one, or pos- information is obtained, or both. Another round of
sibly two, key person(s) on whom the success of the
project rests. This places you, as the client, in a
somewhat more vulnerable position because you 1 DataPro is a trademarked name of DataPro, Inc., Delran, NJ.
Request for Proposal Process 669
information gathering might then take place. At this due dates and locations for delivery of proposals is
point, remaining vendors might be called in to pre- maintained. Late or incorrectly delivered proposals
sent their product( s) and demonstrate how they are dropped from further consideration, providing
work. Specific technical questions to provide miss- equitable treatment of all vendors.
ing information are asked. Assume a proposal is being let by the local
The decisions after this round of information police department for development of an applica-
gathering depend on the nature and use of the prod- tion that would deploy computer terminals in each
uct being purchased. If the number of users is small police car for interactive look-up of license plates,
and the product is inexpensive (e.g., under $10,000), arrest warrants, and moving violations. The appli-
a selection might be made. The more users and the cation requires both hardware and software to be
more expensive the product, the more extensive the developed for 14,000 police cars in a large metro-
evaluation. Other companies that use the product politan area with over 3,000,000 inhabitants and
might be solicited for experience with the company covering several jurisdictions. Examples might be
and product, and perhaps, are visited for an on site Washington, D.C., Los Angeles, New York City,
demonstration. In these cases, when the field of ven- Houston, or Chicago. Hardware cost alone is over
dors is narrowed to between two and five, an RFP is $2,000,000. The databases each will have millions of
developed and proposals are requested. entries with issues to be resolved about how and
when information is removed from the files. Inter-
Develop and Send the Proposal faces to several other applications for license plate
to Vendors information and access to arrest warrants from mul-
tiple local and national databases are desired.
The RFP can be developed in parallel with vendor The proposed application has several sources of
identification. There is some risk that doing so, how- complexity, the least of which is that vendors prob-
ever, will produce a biased requirements set that ably know little about how a police officer spends his
favors one particular vendor. The best approach, day. When New York City let a similar contract for
therefore, is to develop the requirements first, then its police force, they had a formal announcement of
search for vendors. When the vendor list has been the proposal to vendors. Vendors were selected and
narrowed to between two and five, the RFP is final- invited to the presentation by mail based on previous
ized, vendors are notified that they will receive the contract work or reputation. Nonsolicited vendors
proposals, and the proposals are sent or delivered to were also welcome in response to announcements
each vendor. From this point, the requesting com- of the RFP that ran in the local newspaper for sev-
pany begins to manage the proposal process. eral days.
At the formal presentation, each vendor was
invited to spend up to four hours traveling with an
Manage Proposal Process officer to view the tasks firsthand, for which the
The proposal process begins with release of an RFP application would be built. A specific officer was
to vendors and continues until the proposals are identified as the liaison for these tours.
delivered and the selection process begins. The pro- In addition, the liaison officer was available for
posal process might include one or more formal questions at any time until proposals were submitted.
meetings, informal meetings, inquiry sessions, or If questions were asked by a vendor, the question
other methods of information exchange between the and response were recorded and a list of all such
vendors and the requesting organization. The more queries was sent to all vendors attending the pro-
money involved and the more complex the proposed posal announcement meeting. The purpose of pro-
work product, the more process management is viding all queries and responses to all vendors was to
needed to ensure equitable treatment of all vendors. ensure that information inadvertently left out of the
Equitable treatment means ensuring that all vendors RFP that might alter the decision process could not
receive the same information. Firm compliance with be used by one vendor to the detriment of the
670 CHAPTER 16 Purchasing Hardware and Software
others. By giving everyone all responses, every ven- sections. After selection, a contract is negotiated and
dor had the same information. work begins.
Halfway through the two-month proposal pro-
cess, another meeting was held for vendors to come
ask more questions and to clarify the requirements INFORMAL _____________
from the document. That meeting was well attended
but contained no real information. When one person PROCUREMENT __________
was asked why he bothered attending, he replied,
Most of the same information required for the RFP is
"To see what the competition asked."
required for the informal procurement process. The
Each vendor presented his or her proposal on the
major difference is in the approach. In the informal
due date and left the written copy for NYC review.
process, few, if any, written documents are used for
Each vendor, then, heard the other vendors' propos-
vendor-client communications. Rather, telephone
als and had some sense of the differences between
calls, meetings, and document reviews are the
them. Ironically, the company with the best solution
major sources of information. The process of selec-
lost because the company was too small. One short-
tion is similar to that of the RFP process, including
coming of the RFP was that it had not identified
trials and benchmarks for acceptance of the item
company size as a selection criterion; if it had, the
being procured.
vendor would not have wasted his time bidding.
Negotiation is verbal and may go back and forth
between the principals for several weeks. Vendors
signify agreement with the negotiated terms via a
memo. A memo proposal summarizes the main
Evaluate Proposals and Select points of agreement, then lawyers are called in, as
Alternative with an RFP, to add the legal terms.
The sections of the proposal responses are each eval-
uated separately, then summarized together. The
technical evaluation reviews that requirements are CONTENTSOFRFP _______
met and scores the proposal based on the priority cri-
teria developed during the preparation of the RFP. RFP contents include a summary, information on
A benchmark, or comparison test, might be used to the technical, managerial, company and financial
identify differences between hardware or software aspects of the bid, a schedule of the process, selec-
packages. tion criteria, vendor response requirements, and any
The management approach is evaluated for the standard contract terms (e.g., for EEO or OSHA
type, quality, and nature of staff and vendor com- compliance). Each RFP section is detailed below to
pany resources proposed for the work. A financial identify optional and required information.
evaluation is developed to show the present value
of the proposed amount(s). Other analysis, such
as payback period, or average cost per vendor
Vendor Summary
employee, might be developed for comparison pur- The Vendor Summary section provides a short, one-
poses. Next, the vendor's prior experience with the page summary of the work to be done (see Table
firm, similar applications, and business reputation 16-1). General terms and conditions of the proposal
are ranked to evaluate the vendor's capability to do process are usually first to allow vendors to quickly
the proposed work. Finally, each section is weighted decide whether or not they are interested in the
again for comparative section importance, creating engagement. The contents of the general instructions
a summary of the ratings and final weighted score for sections should include proposal instructions, loca-
each vendor. Objectively, the vendor with the high- tion and date for proposal delivery, dates for bidders'
est, overall weighted score is selected for the work. conferences, and contacts for status reporting and
Each type evaluation is discussed in the evaluation inquiries.
Contents of RFP 671
TABLE 16-1 Detailed RFP Outline graphic dispersion across 16 states, should be identi-
fied. Then, the details of work to be provided are
1.0 General instructions described.
2.0 Statement of work
2.1 Description of work to be performed DETAILED REQUIREMENTS. The work might
2.2 Project milestones and deliverable products include hardware, software, programming services,
2.3 Criteria for vendor qualification or other IS services. The criteria for each item should
3.0 Technical specifications
be detailed as much as possible. In general, regard-
Technical outlines are in Tables 16-4, 16-5, and 16-7 less of the type of procurement, the features and
for hardware, network, or operating system, and functions of the equipment should be described in
customer software or package, respectively. sufficient detail to enable the vendor to design a
solution. Functional requirements-what-the item
4.0 Management approach
4.1 Schedule and staffing
is expected to do are described in detail. Volume
4.2 Support requirements of vendor of data, throughput, response times, and growth
4.3 Reporting requirements are identified. The type, contents, tim-
4.4 Staff reporting structure and problem ing, and format of interfaces also are provided. A
management hardware interface might list, for instance, a network
5.0 Financial requirements interface connection to a fractional T-1 (cable) ser-
vice for internetwork communication. A software
6.0 Company information interface might list, for instance, a DBMS interface
7.0 Vendor response guidelines connection to a SQL server. An application inter-
8.0 Standard contract terms and conditions
face might list, for instance, electronic messages to
be sent to an Accounts Receivable Application.
For services, the work description varies depend-
ing on the work. The two most common service
RFPs request proposals for software development
Required Information and for outsourcing of operations. For software
services, the application requirements are the infor-
The requirements list details the requirements of the
mation provided. For outsourcing operations, the
work as described in the sections on hardware and
business functions included and any existing job
software. The section can refer to an attached docu-
descriptions relating to those functions should be
ment that might have been developed in-house for
provided to the vendors.
functional requirements of the application, hard-
Diagrams, tables, and lists should be supple-
ware, or software. In any case, requirements should
mented by text to provide clarification of incom-
be listed and identified as mandatory or optional. A
plete, misleading, or ambiguous diagrams. For
set of prioritized weights for the requirements should
instance, a data flow diagram cannot describe timing
also be developed for use in scoring, but weights
of processes or process interrelationships that might
should not be published in the RFP. There are four
be important. They also do not include constraints,
general classes of requirements: technical, manage-
need for simultaneous processes, and so on. Re-
ment, corporate, and financial.
quirements for these items would be described in
text as required.
Technical Requirements
GENERAL REQUIREMENTS. The require- AUDIT AND APPLICATION CONTROL RE-
ments should place the company and problem in a QUIREMENTS. Recall from Chapter 10 that
context for the vendors. First, a brief overview of the audit controls are frequently needed to prove
industry, company, and work domain is appropriate. processing. The audit and control section of the
Then, a summary of the problem being automated RFP identifies the minimum acceptable level
is presented. The major complexity, such as geo- of auditability required. If audit controls are in
672 CHAPTER 16 Purchasing Hardware and Software
compliance with laws or other professional guide- The type of trammg can be one-on-one, pro-
lines, the requisite laws and guidelines should be grammed, individually self-paced, classroom,
referenced. computer-based training, or some variation of these.
Vendors' designs might assume human interven- Training information provided might include the
tions to ensure accurate application processing. A type, number of sessions, location, and audience for
requirement should be developed to surface such training. The qualifications of expected trainers
assumptions. For instance, controls might include should also be requested.
data integrity, data and process access, exception
management, and print control of prenumbered doc- ACCEPTANCE. Acceptance criteria, specifying
uments (e.g., checks). These examples usually the contents and timing of the acceptance test,
require manual interventions supplemented with should be identified so the vendor knows how work
interactive processing to recover from failures or to will be judged. Acceptance criteria might include
fix hardware problems. For instance, a check might type and amount of test data, length of time for par-
jam in a printer after it is printed. Both software and allel and pilot runs, phased cutover approach and
human procedures are required to reprint the check speed desired (e.g., five locations per month for five
and to account for the damaged check. (See Chapter months), and performance criteria for success (e.g.,
10 for types of failures that should be planned.) Ven- five consecutive days with all accounts in balance at
dors should be required to identify and detail all such the end of daily processing).
interventions as part of their proposal. Hardware and software packages are usually
benchmarked to verify that they perform as adver-'
PERFORMANCE REQUIREMENTS. Perfor- tised. A benchmark is a comparison test between two
mance requirements include manual, hardware, and or more configurations. The contents of the test are a
software performance. For instance, hardware per- suite of application programs that are representative
formance might define acceptable limits for down- of the expected work load of the production system.
time, precision for mathematical computation, or A benchmark test provides you the ability to com-
cycle time. pare throughput performance with the representative
work load. In addition to the benchmark which pre-
CONVERSION REQUIREMENTS. Recall that cedes installation, hardware and software packages
conversion requirements define the required changes might also be run through a trial period similar to
from the current environment to the new automated that described above for acceptance.
environment (see Chapter 14 to review this discus-
sion). The RFP typically identifies data for conver-
~anagernenti\pproach
sion, including the current format, current volume,
and growth required. Conversion timing constraints SCHEDULE AND STAFFING. Vendors should
should be identified if any exist. The vendors' be required to develop a schedule for the proposed
designs should describe the target database for the work. Pert, critical path (CPM), Gantt charts, or
data and a migration path for conversion. The ven- other graphical schedules might be required. Mile-
dors' conversion plans also should estimate conver- stones for the project and deliverable work products
sion impacts on users, computer operations, and should be identified as specific requirements. The
project staffing. discussion of work should be required to include
number, timing, and skills of the expected employ-
TRAINING. Training to be provided as part of the ees. For contract software development, vendors fre-
contract should be listed as a required topic of quently attach resumes of the intended project
the vendors. Training options can be left open to manager(s) and project team members for client
vendor proposal or be specified as requirements. information. If the client wants the right of refusal on
Training might be provided for users, software main- all employees, a representative set of contractor staff
tenance staff, operations staff, or user support staff. resumes should be provided for client review.
Contents of RFP 673
PROJECT MANAGEMENT. Project manage- Further assumptions about how application infor-
ment is an important issue in an RFP because it fre- mation will be entered into the computer (e.g.,
quently identifies the one or two people the client keyboard entry by clerks, keyboard entry by pro-
will work with most closely. The requirements can grammers), the availability of computer resources
include reporting structures, management of work, for testing, and the frequency of tests for each ven-
and problem resolution policies of the vendor dor staff member should be identified.
firm. In general, vendors should identify an on-site
manager and a more senior, vendor manager to over- Company Information
see and guarantee the quality and quantity of ven-
dor work. The resumes of one or both of those Information in this section should qualify the vendor
contacts should be required in the response to allow as viable to perform the work. Standard company
assessment of the qualifications of the managers for information required in an RFP includes the com-
the proposed work. pany history, ownership, growth, current size, pre-
vious contracts with the requesting company, and
references for similar work. If the company performs
PROJECT REPORTING. Status reporting form, a specialized service, such as LAN installation and
content, and timing should be requested of vendors. service, it can be highlighted in this section.
This can be left to the vendor to describe, or can be
stated as a requirement for compliance by the ven-
dor. Normally, status meetings are held as required Financial Information
or weekly, whichever is more often. A written sta- The last of the requirements is for a cost estimate of
tus report should be required to identify work com- the work. Cost estimates vary depending on whether
pleted, progress against the schedule, problems the work is for hardware or software or services (see
needing resolution for project completion, and work summary in Table 16-2). In general, the vendors'
assignments for the next period. responses provide the opening for negotiation of the
financial aspect of a procurement. Except for fixed-
VENDOR ASSUMPTIONS. Special vendor re- price bids defined below, the price quoted is rarely
quirements should be identified. The idea behind this nonnegotiable.
section is that there should be no surprises because For purchased hardware, the options are to lease,
of erroneous assumptions by a vendor after a selec- to lease with an option to buy, or to purchase the
tion is made. The vendor's assumptions are stated equipment. Under a lease option, equipment is on
in the response to ensure that the client also shares loan from the vendor and is paid under a monthly
the same assumptions. Any hardware, configuration, leasing arrangement. In general, the more equip-
purchased software, or facilities alterations assumed ment leased, the more flexible the vendor for lease
by the vendor to be available for their use are negotiation.
solicited. For instance, when vendors build custom The lease with option to buy provides a basic
software, they normally assume that their employees leasing arrangement with some percentage of the
work at the client site, use client computing equip- lease payment applied to purchase of the equipment.
ment and software, and follow the client's employ- At the end of the lease period, the lessor has the
ment practices. option of returning the equipment to the vendor or of
The vendor's expectations and type of support paying the vendor the residual price (i.e., the
required from the client should be identified. For remaining value of the equipment) and purchasing
instance, copying, clerical, and secretarial support the items.
might be expected. In addition, access to the users A purchase option identifies the total current
should be identified with estimates of the num- cost of the equipment and the payment terms that
ber and expected participants for data gathering can be offered to entice a purchase. Frequently
meetings. the purchase of very expensive equipment (e.g.,
674 CHAPTER 16 Purchasing Hardware and Software
TABLE 16-2 Financial Options Bids that are T &M with a ceiling purport to pro-
vide the best risk sharing between vendor and client.
Item Being Fixed-price bids put the risk of not completing the
Acquired Financial Options work as scheduled on the vendor who loses any
moneys above the bid price. T &M bids place the risk
Hardware Lease on the client who pays for all work until it is done
Lease with Option to Buy
whether it is on schedule or not. T &M with a ceil-
Purchase
ing tries to share the risk by allowing T &M, assum-
Software Base License Fee ing the work is on budget, or a ceiling with vendor
Plus risk if the schedule is not kept. Whether this notion
Monthl y/Annual works or not in reality is subject to debate. In any
Maintenance Fees
case, the ceiling price is most commonly used in
Services Time & Materials (T &M) comparisons since most projects tend to end up at
Fixed Price that price anyway.
T &M with Ceiling
ments that might alter a vendor's interest in bidding TABLE 16-3 Vendor Response Outline
are especially important. For instance, if only com-
panies for which the proposed work is less than 10% 1.0 Technical response
of net income will be considered, this should be 1.1 Overview of the system
made known. 1.2 Diagram( s) of processes and data
Other information that might be provided is a 1.3 Configuration diagram(s)
1.4 Performance data
brief description of the selection process in terms of
1.5 Detailed explanation of the system features
required and mandatory functions, and the relative
and functions
importance of the four major areas of information: 1.6 Compatibility (with other client equipment,
technical, management, financial, and company. The applications, etc.)
individual weights should never be identified or the 1.7 Degree of risk in using proposed hardware,
responses will be written to get a good score rather software, or application
than to address the design issues. 1.8 Maintenance estimates
1.9 Reliability
1.10 Quality assurance and control
Vendor Response Requirements 1.11 Training
An optional part of an RFP is the format for the ven- 1.12 Deliverable products
dor's response. The argument for requiring a set 2.0 Management approach
response is that the comparison of multiple propos- 2.1 Organization
als is simplified when the responses all use the same 2.2 Personnel and manpower controls
format. The disadvantage of a fixed response is that 2.3 Vendor/subcontractor and client relationship
some important area of consideration that might 2.4 Delivery schedules and project plans
2.5 Proposed staffing
have been overlooked in the RFP or in the outline for
2.6 Consultants to the vendor (e.g., subcontractors)
the response, might never surface until after a vendor 2.6.1 Subcontractor identification
is selected. Some companies opt for requiring the 2.6.2 Subcontractor relationship and
financial data to be identical but allow discretion for management structure
the remainder of the vendors' responses. 2.7 Status reporting schedule and approach
The major advantage of a standardized vendor
3.0 Corporate information
response is an easier comparison of responses. If 3.1 Company background-Ownership, size, age,
there is no standard format, you must first find the experience, capabilities, products, services
answer to each piece of desired information in each 3.2 Vendor previous experience with the client
proposal, then create a cross-reference document, company
or otherwise identify each item for easy reference. 3.3 Vendor experience with similar projects
Having no standard format also requires you to
be much more careful in reading every document
to ensure that you have identified the requisite
information. in such a way that his proposal is favorably pre-
The response outline should be tailored to fit the sented. The risk is that information from several
specific proposal and to ease response evaluation. vendors will not contain information in such a way
In general, the sections follow the requirements that it can be compared. The solution to this problem
above: Technical Response, Management Approach, is to tell the vendors exactly how to present finan-
Corporate Information, and Cost/Price. A full cial information. A simple format that summarizes
outline for a vendor response is provided in all costs for easy use and analysis is best. Figure
Table 16-3. 16-2 provides a sample financial summary for-
One of the most important standard response for- mat that includes all information that you, as the
mats is for financial information. Each vendor usu- requesting organization, might need to compare
ally provides his own information in his own format the proposals. In customizing the form for a
676 CHAPTER 16 Purchasing Hardware and Software
Item: Analysis Design Implement Test Parallel Year1 Year2 Year3 Year4 YearS
I. Hardware
1.
2.
3.
4.
TOTAL Hardware
II. Software
1.
2.
3.
TOTAL Software
IV. Other
1. Documentation
2. Testing/Assurance
3. Site Preparation
4. Supplies
S. Travel
6. Maintenance
7.
B.
9.
10.
TOTAL Other
specific procurement, you omit sections not re- TABLE 16-4 Technical Requirements
quired. So, for software-only procurement, omit all Outline for Hardware
hardware sections.
3.0 Technical Hardware Requirements
3.1 CPU cycle time
Standard Contract Terms 3.2 Number of processors
Finally, the RFP should include any standard con- 3.3 Memory cycle time and processing
tract terms and conditions that might be desired. For 3.4 Number and type of registers
3.5 Number, type, and prIority structure for
instance, penalties for nonperformance against the
interrupts
contract or conditions under which payments will 3.6 Memory organization, maximum addressable
be made or withheld are terms of an agreement for memory
which companies frequently require standard con- 3.7 Parallel operation capabilities
tract clauses. 3.8 Math/graphics co-processors
3.9 Number, type, and transfer rate for data
channels
HARDWARE ____________ 3.10 Channel control unit-type, maximum device
assignment, effect on CPU
Hardware might be described in detail, or more com- 3.11 Storage devices-number and type
monly, is described by its functionality. In this sec- 3.12 Tape drives-density, speed, transfer rate,
tracks, size
tion we discuss the hardware criteria that are usually
3.13 Disk-access time (seek + search), rotational
in an RFP. The main categories of hardware infor- delay, transfer rate, tracks and cylinders,
mation in this section are functionality, operational capacity per unit
environment, and performance. Training and accep- 3.14 Communications control capabilities-
tance criteria were discussed above and also apply maximum remotes, lines, interfaces
to hardware. 3.15 Ability to connect to I/O peripherals-bar
code, microform, imaging, graphics, multi-
media, and other special purpose equipment
Functionality 3.16 Expandability
A technical requirements section outline for hard- 3.17 MTBF-mean time between failures
ware is shown as Table 16-4. Keep in mind that 3.18 MTTR-mean time to repair
3.19 Support
the outline would be customized to fit the specific
3.20 Software compatibility for operating systems
components desired. If hardware requirements are and specific packages desired
known, they should be specified in sufficient detail 3.21 Site requirements-air-conditioning, electrical,
to exactly identify needs. In this case, the vendors heating, cooling, etc.
are not selecting a solution to your problem; they 3.22 Budget limitations
are bidding on a hardware configuration. For this 3.23 Throughput requirements
type of specification, if the configuration does not 3.24 Delivery requirements
meet all of your needs, the vendor is not liable
because you detailed specific hardware.
More often, you will not know the specific hard- work, volume of inputs and printed outputs, types,
ware, but you do know the functions to be performed volume and contents of files, and software are mini-
by the hardware. In this case, the information pro- mal requirements to specify.
vided is to detail the work environment closely More detailed requirements, such as CPU cycle
enough that the solution will work. For hardware, time or response time to a type of query, are pro-
this means that all work to be performed and the con- vided for any critical requirements. Critical require-
straints for the work should be identified. The num- ments, here, mean those monitoring or relating
ber of users, work profile for each user, timing of to human life (e.g., EKG monitor or space rocket
678 CHAPTER 16 Purchasing Hardware and Software
lift-off). Error processing, error recovery, security, • Maintenance and reliability requirements
types of human intervention, and so on are all spec- • Peak and average transaction time
ified if they are important considerations in the deci- requirements
sion process. • Geographic or other environmental constraints
Equipment not desired should also be identified. on equipment
For instance, most configurations can alternate
Frequently, in the absence of specific hardware
between minicomputers or local area networks. If
design requirements, performance requirements are
minicomputers, for instance, are not desired as a
the basis for the RFP. A sample outline for operat-
solution, the requirements should be stated as: "This
ing system or network performance requirements is
proposal is for a local area networking solution to
shown as Table 16-5. In the table, the list includes
support ... " followed by a list of major applica-
support for all desired functions of the environment.
tion functions. ABC's RFP might finish that sen-
The implication is that hardware is less important
tence: " ... a rent/return processing application for a
than the functional support to be provided by the
video store."
operating system. Table 16-6 shows an example of
performance requirements that might be used to
Operational Environment specify a local area network to support diverse work.
Vendor responses to hardware requests should be
The operational environment includes the geo- required to include all operating system, program-
graphic, building, and room specifications for the ming language, software, and interface require-
equipment. The extent of vendor responsibility and ments, growth capabilities, and limitations.
information should be defined as explicitly as possi-
ble. If the vendor is responsible for the installation,
that information should also be included. If a loca- Software
tion is known, but the site is not improved for the The basic categories of software criteria are needs,
equipment yet, the vendor should be required to resources, performance, flexibility, and operating
specify flooring, air, ventilation, electrical, plumb-
ing, and other environmental requirements of the
installation. If a site is already prepared for equip-
ment, it should be described in sufficient detail for
TABLE 16-5 Technical Requirements
the vendor to know whether his configuration will
Outline for Operating System or Network
tolerate the environment or if further alteration is
Performance
required. Schematics of desk configurations should
be provided for multiunit RFPs. 3.0 Generic Operating System Requirements
3.1 Instruction set and types of numeric processing
3.2 Cache memory
Performance 3.3 Hardware compatibility
Performance requirements identify the tolerance 3.4 Software compatibility
limits for different types of problems. Hardware 3.5 Virtual and real memory requirements
performance requirements might include any of 3.6 Job, task, data management structure
and function
the following:
3.7 Multiprocessing capabilities
•Acceptable limits of downtime 3.8 Fixed system overhead
•Inquiry response time 3.9 Variable system overhead
•File update response time 3.10 Control language
3.11 Compilers supported
•Maximum percentage of communication
3.12 Packaged software supported
errors
3.13 File access methods supported
• Recovery times for hardware failures
Hardware 679
Vendor 1 Ranking
Method 1 Method 2 Method 3
Requirements (Rank 1-3) (Rank 1-10) (Binary)
Provide for at least 10 relational Weight Rank Weight Rank Weight Rank
files to be open simultaneously 1 1 .5 1 .5 0
Provide at least three indexes Weight Rank Weight Rank Weight Rank
per relation 2 3 1.5 10 1.5 1
Provide user views that join up Weight Rank Weight Rank Weight Rank
to six relations 3 2 3 3 3 1
Summary
L (Weight * Rank) 13 24.5 4.5
Vendor 2 Ranking
Method 1 Method 2 Method 3
Requirements (Rank 1-3) (Rank 1-10) (Binary)
Provide for at least 10 relational Weight Rank Weight Rank Weight Rank
files to be open simultaneously 1 2 .5 9 .5 1
Provide at least three indexes Weight Rank Weight Rank Weight Rank
per relation 2 2 1.5 10 1.5 1
Provide user views that join up Weight Rank Weight Rank Weight Rank
to six relations 3 1 3 4 3 1
Summary
L (Weight * Rank) 9 31.5 5
the scale used in scoring to ensure balancing of section differences in the number of items ranked
weights and scores. by dividing the weighted score by the number of
items, in the example, eleven.
In both scoring systems, raw and normalized,
Technical Evaluation
Vendor 4's solution meets more criteria with a higher
In ABC's scoring example, the technical section quality rating than the other vendors. Vendor 4 did
evaluation shows one page of technical requirements not get the highest marks on all items, however. Ven-
that describe characteristics of a software environ- dors 1 and 2 have low scores for the technical section
ment without specifying the software (see Figure with more bottom ratings than the other vendors.
16-4). This list might be an additional 8-10 pages These vendors would probably not be chosen and
longer when complete. To get the ranks for each could be deleted from the remaining analysis if it
item, the vendor responses are reviewed and the were extensive.
quality and completeness of each response is rated. None of the proposed language solutions has all
The ranks are multiplied by the item weight and required items with the highest rating. This means
weighted scores are summed. The weighted score two things. First, the solution, whichever one is
can then be normalized to account for between- selected, should be reevaluated before a final deci-
RFP Evaluation 683
Vendor 3 Ranking
Method 1 Method 2 Method 3
Requirements (Rank 1-3) (Rank 1-10) (Binary)
Provide for at least 10 relational Weight Rank Weight Rank Weight Rank
files to be open simultaneously 1 3 .5 10 .5 1
Provide at least thl'ee indexes Weight Rank Weight Rank Weight Rank
per relation 2 0 1.5 0 1.5 0
Provide user views that join up Weight Rank Weight Rank Weight Rank
to six relations 3 3 3 10 3 1
Summary
L (Weight * Rank) 12 35 3.5
13 9 12
2 24.5 31.5 35
3 4.5 5 3.5
sion to ensure that the application can be done with- to determine the fit with client expectations and the
out too many design compromises because of flaws realism of the approach. For instance, if there are
in the proposed language. Second, more evaluation more than one vendor staff, one of the staff should be
of possible languages for implementation can be designated the 'senior' person in charge of the work
done and a language recommendation might be products and problems of the other person(s). Any
made to the selected vendor. In other words, the lan- personnel problems of vendor staff should not be
guage for implementation becomes a negotiating dealt with by the client; the senior person has this
point for lowering the cost or for changing the pro- responsibility. Also, a person from the vendor's
posed solution. management staff should be designated as responsi-
ble for guaranteeing the quality of work product by
the company's staff. This person is usually the man-
Management Approach Evaluation
agement contact for the client and is the ultimate
The section of the proposal on the management manager for the vendor staff even though there may
approach includes all the information about how the also be an on-site, working manager.
vendor will manage the staff and the process to the Proposals should be assessed in a manner con-
satisfactory completion of the client. The schedule, sistent with that of the technical requirements. That
staffing, management reporting, and problem resolu- is, either a zer%ne grading system, or a ranking
tion should be included. In addition, the vendor dis- system, is used, depending on which is used for the
cusses expected resources of the client company for technical requirements. The management tech-
the work engagement. niques requested in the RFP for the management
There is no one right way to evaluate the man- approach should have been previously prioritized
agement approach. Rather, this section is reviewed and weighted. The items are listed, scored, and
684 CHAPTER 16 Purchasing Hardware and Software
Up to six attributes in
compound key 5 2 3 4
Summary
L (Weight * Rank)
for items shown 90 77 129 174
Summary
L (Weight * Rank) 30 30 70 70
NPV Hardware Lease with Option to Purchase $30,000 $32,000 $31,750 $24,600
Hardware Rank 4 4 2 3
Software Rank 6 4 2 3
malized scores can be generated as we have shown. problems, for fixed price work, for instance, are to
The normalized scores are used in the comparison severely hamper the vendor's ability to do business.
with the scores of the other sections. In the rankings, The first score assessed, then, is one of risk that the
the higher the score, the lower the cost. In this case, vendor can do this work without straining his or her
Vendor 1 receives the highest cost scores for both own organization.
hardware and software. Vendor 4, the highest ranked The second type of evaluation gives credit for
vendor in the technical section, was third on both past work with the client company. The idea is to
items, with a weighted score of 3. If hardware and favor a company with successful past experience
software are equally important, we could have aver- because their personnel are likely to know the
aged the scores for each vendor. Using weights client's way of doing business and need less intro-
which are somewhat higher than the weights for the ductory time than vendors without that experience.
other score categories increases the importance of Other project managers who know the vendor should
the financial evaluation relative to the technical and be asked about the quality and quantity of work of
other evaluations. vendor employees, satisfaction with the vendor, and
compliance with contract terms. A high ranking
should be given for successful past projects and a
low ranking (e.g., negative) for unsuccessful past
Company Evaluation
work. Obviously, no ranking can be given for a com-
One risk any client takes when contracting work to pany with no history at the client site. If this item is
others is that the vendor might not meet the terms the decision criteria for a proposal, then the technical
of the contract for some reason. The company evalu- evaluation should be reevaluated to ensure that the
ation is one way to define such risks and assign a best proposal is being selected.
score to each vendor company. A similar evaluation gives vendors who have
In general, the longer the company has been in developed similar work products credit for that
business and the larger the size, the less likely the knowledge. Vendors who are already familiar with
company is to go out of business. Similarly, the the problem domain, and who need less start-up time
smaller a percentage of the total company's work to learn the domain, are favored over those without
this particular contract is, the less likely schedule that knowledge.
Summary 687
Age/Size 5 3 4 2
Similar work 5 3 2 4
Reputation 5 3 4 2
Summary
I (Weight * Rank) 45 15 50 40
Vendors who claim similar experience should be The summary form (see Figure 16-9) shows the
checked by discussing the experience with reference proposals summarized on one page for a manage-
clients. Unless another firm gives a positive recom- ment overview. The weighted and normalized
mendation, no credit for domain experience should weighted scores should both be shown as an indica-
be given. A neutral or negative recommendation tor of the sensitivity of the weighting system in
does not necessarily mean a negative rating. Rather, selecting the proposal winner.
a negative rating raises a flag that not all projects
are perfect but should not cause a vendor to be dis-
qualified. If all recommendations are negative, then AUTOMATED ____________
the vendor might be given a negative rating.
SUPPORT TOOLS _ _ _ _ __
The scores for company evaluation are entered
in the summary sheet which is completed. The final FOR VENDOR _ _ _ _ __
scores in all areas are multiplied by the weight for EVALUATION ___________
the section and summed to develop a final weighted
assessment. The company with the highest overall There are no automated tools that are advertised as
score is selected unless some extenuating circum- specifically for RFP use. Rather, there is general pur-
stance is present. pose software that can be used for different parts of
In Figure 16-8, all four vendors scored zero in the work. For instance, spreadsheets can be used for
prior work with ABC, meaning that none have the financial analysis and for maintaining and moni-
worked with ABC before. Vendor 4, the preferred toring the scores easily. Word processing and CASE
vendor based on technical scores, ranks low in tools might be used in the preparation of the RFP
age/size and low in reputation. These numbers can document, but are of less use in evaluating the ven-
be interpreted as identifying a small, fairly new com- dor proposals. Table 16-8 shows the most popular
pany that has had some successes and some failures. spreadsheets on the market at this time. Any of these
This interpretation implies some risk in using Ven- packages can be used in the RFP analysis.
dor4.
If we look at Vendor 3, who was ranked second SUMMARy _____________
on the technical list, the age/size and reputation are
the best of the four vendors. The problem here is that This chapter discusses the procurement of hardware,
Vendor 3 has little experience with similar work, software, or services for an IS organization. The for-
thus, also identifying a source of risk. mal RFP process includes the development of work
688 CHAPTER 16 Purchasing Hardware and Software
Management approach .2 30 30 70 70
Company .1 45 15 50 40
requirements, identification of vendors, development relative importance of the ranked items. The least
of a Request for Proposal (RFP), management of the subjective, most informative of the three common
RFP process, evaluations of the proposals, and se- ranking schemes is one that uses the number of ven-
lection of a vendor. dors as the number of ranks. Other options are a
An RFP consists of a management summary, binary system and a subjective ranking based on an
statement of requirements, proposal process descrip- arbitrary number of ranks, such as 10.
tion with important dates, and standard contract All response areas-technical, managerial, com-
terms. Optional sections of the RFP include a defin- pany, and financial-are ranked taking care to com-
ition of the vendor response. pare like things across the vendors. When complete,
Ranking RFP responses requires the definition of the weighted ranks are summed by section and
the ranking scheme and of weights signifying the for the whole RFP, and the vendor with the highest
EXERCISES
----------
1. Using the information provided for the ABC
which type(s) of procurement is benchmarking
used?
15. How can you determine a company's
reputation?
Case in Chapter 16, develop a different way of
scoring the vendor responses that is plausible.
Defend the use of your method.
2. Develop an analysis of two well-known pack-
* EXTRA-CREDIT QUESTION
1. Take some application that might be used at
ages, such as Lotus and Quattro spreadsheets. ABC Video--accounts payable, general ledger,
What features are the same? Which are differ- payroll, rental order processing-and perform a
ent? How would you choose between them? software evaluation for two competing products.
3. Develop a list of issues for deciding what PC Try to be objective in the criteria and weights
software packages should be the standards for a you assign. What are the deciding factors in the
company. Are the criteria software features evaluation?
organizational in nature? Why?
CHAPTER17
TESTING AND ----------------------,.
QUALITY _ _ _ _ _ _ _ _ _ _ ______
........----.
ASSURANCE ___________________________~
690
Testing Terminology 691
Testing takes place at different levels and is con- tomized to test that changes to an application have
ducted by different individuals during the applica- not caused it to regress to some state of unaccept-
tion development. In this chapter we discuss the able quality.
testing performed by the project team and testing Finally, outside agents perform quality assur-
performed by outside agents for application accep- ance (QA) tests of acceptance for the application.
tance. Project team tests are termed developmental The outside agent is either the user or a user repre-
tests. Developmental tests include unit, subsystem, sentative. The goal is to perform an objective, unbi-
integration, and system tests. Tests by outside agents ased assessment of the application, and an outside
are called quality assurance (QA) and acceptance agent is considered more objective than a team
tests. The relationship between testing levels and member. QA tests are similar to system tests in their
project life-cycle phases are summarized in Fig- makeup and objectives, but they differ in that they
ure 17-1. are beyond the control of the project team. QA test
A unit test is performed for each of the smallest reports usually are sent to IS and user management
units of code. Subsystem, integration tests verify in addition to the project manager. The QA tester
the logic and processing for suites of modules that plans his own strategy and conducts his own test
perform some activity, verifying communications to ensure that the application meets all func-
between them. System tests verify that the func- tional requirements. QA testing is the last testing
tional specifications are met, that the human inter- done before an application is placed into produc-
face operates as desired, and that the application tion status.
works in the intended operational environment, Each test level requires the definition of a strategy
within its constraints. During maintenance, testers for testing. Strategies are either white box or black
use a technique called regression testing in addition box, and either top-down or bottom-up. Black-box
to other types of tests. Regression tests are cus- strategies use a 'toaster mentality': You plug it in,
QAfAcceptance
Test
Input
--
~~
Black Box
'" Results
..-
~
it is supposed to work (see Figure 17-2). Created and unit tested (see Figure 17-5). Then the tested
input data is designed to generate variations of out- module is placed into integration testing.
puts without regard to how the logic actually func- The test strategies are not mutually exclusive; any
tions. The results are predicted and compared to the of them can be used individually and collectively.
actual results to determine the success of the test. The test strategy chosen constrains the type of
White-box strategies open up the 'box' and look errors that can be found, sometimes necessitating the
at specific logic of the application to verify how it use of more than one. Ideally, the test for the appli-
works (see Figure 17-3). Tests use logic specifica- cation combines several strategies to uncover the
tions to generate variations of processing and to pre- broadest range of errors.
dict the resulting outputs. Intermediate and final After a strategy is defined, it is applied to the level
output results can be predicted and validated using of test to develop actual test cases. Test cases are
white-box tests. individual transactions or data records that cause
The second type of testing strategy defines how logic to be tested. For every test case, all results of
the test and code development will proceed. Top- processing are predicted. For on-line and real-time
down testing assumes that critical control code and applications, test scripts document the interactive
functions will be developed and tested first (see Fig- dialogue that takes place between user and applica-
ure 17-4). These are followed by secondary func- tion and the changes that result from the dialogue.
tions and supporting functions. The theory is that the A test plan documents the strategy, type, cases, and
more often critical modules are exercised, the higher scripts for testing some component of an application.
the confidence in their reliability can be. All the plans together comprise the test plan for
Bottom-up testing assumes that the lower the the application.
number of incremental changes in modules, the Testing is iterative until no errors, or some ac-
lower the error rate. Complete modules are coded ceptable number of errors, are found. In the first step
~ h
e,
Input
..
~t I! j r 1 Result
...
White Box
Legend:
First Tested
~ Second Tested
I Third Tested
D Fourth Tested
of the testing process, test inputs, configuration, and application, the more senior and skilled the test
application code are required to conduct the actual coordinator should be. A test team may also be
test. The second step is to compare the results of the assigned to work with the coordinator on large, com-
test to predicted results and evaluate differences to plex projects. The testing team uses the functional
find errors. The next step is to remove errors, or requirements from the analysis phase and the design
'debug' the code. When recoding is complete, test- and program specifications from the design phase
ing of changes ensures that each module works. The as input to begin developing a strategy for testing the
revised modules are then reentered into the testing system. As a strategy evolves, walk-throughs are
cycle until a decision to end testing is made. This held to verify the strategy and communicate it to the
cycle of testing is depicted in Figure 17-6 for a top- entire test team. Duties for all levels of testing are
down strategy. assigned. Time estimates for test development and
The process of test development begins during completion are developed. The test team works
design. The test coordinator assigned should be a independently in parallel with the development team
capable programmer-analyst who understands the to do their work. They work with the DBA in devel-
requirements of the application and knows how to oping a test database that can support all levels of
conduct testing. The larger and more complex the testing. For unit testing, the test team verifies results
694 CHAPTER 17 Testing and Quality Assurance
Legend:
I First Tested
I Second Tested
I Third Tested
D Fourth Tested
and accepts modules and programs for integration is concerned only that what goes in comes out
testing. The test team conducts and evaluates inte- correctly. The details of logic are hidden and not
gration and system tests. specifically analyzed. Black-box strategies are data-
driven, which means that all test cases are based on
analysis of data requirements for the test item. 1
TESTING _ _ _ _ _ _ __ White-box approaches to testing assume that spe-
cific logic is important and to be tested. White-box
STRATEGIES _ _ _ _ __ tests evaluate some or all of the logic of a test item to
There are two kinds of testing strategies. The first verify correct functioning. White-box strategies are
type of strategy relates to how logic is tested in the
application. Logic testing strategies are either black- Test item is the term used through the remainder of the discus-
box or white-box. Black-box testing strategies sion to identify some thing being tested. A test item might be
assume that module (or program or system) testing a module, group of modules, or the whole application.
Testing Strategies 695
Program Stubs,
Test Critical Logic,
DataiCase~ Test
Ancillary Logic
~
Test
Expected Results Output
,
Evaluate
Problems
[ Debug ~
I - - - - I.. Error
Corrections
logic-driven, which means that all test cases are leads to integration testing which leads to system
based on analysis of expected functions of the testing. The next section discusses variations of
test item. black-and white-box testing strategies.
The second type of testing strategy relates to how
testing is conducted, regardless of logic testing strat-
egy. These conduct, or process, strategies are top- Black-Box Testing
down and bottom-up. Both top-down and bottom-up
Black-box testing attends to process results as evi-
testing fit the project life-cycle phases in Figure
denced by data. The test item is treated as a black
17-1; the difference is in the general approach. Top-
box whose logic is unknown. The approach is effec-
down is incremental; bottom-up is 'all or nothing.'
tive for single function modules and for high-level
Top-down testing assumes the main application
system testing. Three commonly used methods of
logic is most important. Therefore, the main logic
black box testing are:
should be developed and tested first and continu-
ously throughout development. Continuous success- • equivalence partitioning
ful testing raises confidence levels about code • boundary value analysis
reliability. Program stubs that contain minimal • error guessing
functional logic are tested first with additional logic
A fourth method that is less common in business,
added as it is unit tested. Top-down testing fre-
cause-effect graphing, is also used. Each of these
quently requires extra code, known as scaffolding,
methods are described in this section.
to support the stubs, partial modules, and other
pieces of the application.
Equivalence Partitioning
Bottom-up testing assumes that individual pro-
grams and modules are fully developed as stand- The goals for equivalence partitioning are to mini-
alone processes. These are tested individually, then mize the number of test cases over other methods
combined for integration testing. Bottom-up testing and design t~st cases to be r((presentative of sets of
treats test phases as somewhat discrete. Unit testing data. For the given level of test, the test item data
696 CHAPTER 17 Testing and Quality Assurance
inputs are divided into equivalent partitions each instance, dividing by zero, unless handled properly,
representing some set of data. Then, test cases are causes abnormal ending of modules. If a module
designed using data from each representative, equiv- contains division, use a test that includes a zero
alent set. The theory is that by exhaustively testing divisor. Since it is based on intuition, error guessing
one item from each set, we can assume that all other is usually not effective in finding all errors, only the
equivalent items are also exhaustively tested. most common ones. If error guessing is used, it
For instance, at the module level, field values should always be used with some other strategy.
identify equivalent sets. If the field domain is a range
of values, then one set is allowable values and
Cause-Effect Graphing
the other set is disallowed values. The analysis to
define equivalent domain sets continues for each One shortcoming of equivalence and boundary test-
data item in the input. ing is that compound field interactions are not iden-
Equivalence partitioning gains power when used tified. Cause-effect analysis compensates for this
at more abstract levels than fields, however. For shortcoming. A cause-effect graph depicts specific
instance, interactive programs, for integration transformations and outputs as effects and identifies
tests, can be defined as equivalent sets at the screen, the input data causing those effects. The graphical
menu selection, or process levels. At the system test notation identifies iteration, selection, Boolean, and
level, equivalence can be defined at the transac- equality conditions (see Figure 17-7). A diagram of
tion, process, or activity level (from Information the effects works backward to determine and graph
Engineering). all causes. Each circle on the diagram represents a
Test scripts for on-line applications can be black- sequence of instructions with no decision or control
box equivalence partitioning tools. A test script is points. Each line on the diagram represents an equiv-
an entry-by-entry description of interactive process- alent class of data and the condition of its usage.
ing. A script identifies what the user enters, what the When the graph is done, at least one valid and one
system displays in response, and what the user invalid value for each equivalent set of data on the
response to the system should be. How any of these graph is translated into test case data. This is con-
entries, actions, and displays takes place is not sidered a black-box approach because it is concerned
tested. not with logic, but with testing data value differences
and their effect on processing. An example cause-
Boundary Value Analysis effect graph for Customer Create processing is
shown in Figure 17-8.
Boundary value analysis is a stricter form of equiv-
Cause-effect graphing is a systematic way to cre-
alence partitioning that uses boundary values rather
ate efficient tests. The trade-off is in time to develop
than any value in an equivalent set. A boundary
the set of graphs for an application versus the time
value is at the margin. For example, the domain for
consumed executing large numbers of less efficient,
a month of the year ranges from one to 12. The
possibly less inclusive test cases. The technique is
boundary values are one and 12 for valid values, and
used more in aerospace than in general business.
zero and 13 for the invalid values. All four bound-
Cause-effect graphs are more readily created
ary values should be used in test cases. Boundary
from DFDs, PDFDs, and state-transition diagrams
value analysis is most often used at the module level
than from Booch diagrams even though it is partic-
to define specific data items for testing.
ularly useful for real-time and embedded systems.
Both types of systems use state-transition diagrams
Error Guessing
to show the causes and effects of processing. A
Contrary to its name, error guessing is not a random cause-effect graph can be superimposed on a state-
guessing activity. Based on intuition and experience, transition diagram or easily developed from the
it is easy for experts to test for many error condi- state-transition diagram. Cause-effect graphing can
tions by guessing which are most likely to occur. For be used in place of white-box approaches whenever
Testing Strategies 697
o Sequence of Code
Identity
"Do While"
~ "Not"
"And"
"Case Logic"
specific logic cannot be realistically tested because The newest development in white-box strategies is
of combinatorial effects of multiple logic conditions. the 'clean room' approach developed by IBM.
No More Customers
Qi
E
eno
::I
()
Q)
1il
~
()
be needed to try all possible combinations of (for better or worse), the test is sure to fail. The
paths (i.e., 4 10 + 49 + 48 .•• + 4 1). Obviously, some solution to this issue is to require program specifi-
other method of deciding test cases is needed. The cations to detail all logic. While this may be practical
other white-box logic testing strategies offer some for first- and second-generation languages (i.e., ma-
alternatives. chine and assembler languages), it defeats the pur-
Decision logic tests look at each decision in a pose of higher level, declarative languages.
module and generate test data to create all possible Condition logic tests are designed such that each
outcomes. The problem is that decisions are not condition that can result from a decision is exercised
always discrete and providing for compound deci- at least once. In addition, multiple entry conditions
sions requires a different strategy. A problem with are tested. Thus, condition tests are more inclusive
logic tests at this level is that they do not test mod- than decision logic tests. They still suffer from the
ule conformance to specifications. If the test is problem of ignoring compound decision logic.
developed based on the specification, but the specifi- Multicondition tests generate each outcome of
cation is interpreted differently by the programmer multiple decision criteria and multiple entry points
Testing Strategies 699
to a module. These tests require analysis to define techniques, and linkage verification uses set theory
multicriteria decision boundaries. If the boundaries whenever possible to prove the application design
are incorrectly defined, the test is ineffective. When and code.
designed properly, multicondition logic tests can After verification, an independent testing team
minimize the number of test cases while examining compiles and executes the code. Test data is com-
a large number of conditions in the case. The use of piled by analysis of the functional specification and
this technique requires practice and skill but can be is designed to represent statistical proportions of data
mentally stimulating and even fun. expected to be processed by the live system. In
addition to normal data, every type of catastrophic
Mathematical Proof Tests error is produced to test that the application does
degrade gracefully.
When evaluating logic, the goal is zero defects. One
The success of cleanroom development and test-
method of approaching zero defects is to apply
ing is such that more than 80% of reported projects
mathematical reasoning to the logic requirements,
have an average failure time of less than once every
proving the correctness of the program. This method
500 software years. Software years are counted by
requires specifications to be stated in a formal lan-
number of sites times number of years of operation.
guage such as the Vienna Development Method
For example, 100 sites for one year is 100 software
(VDM). Formal languages require both mathemati-
years. This is an impressive statistic that, coupled
cal and logic skills that are beyond the average busi-
with the 80-20 rule, can guide redevelopment of
ness SE's ability at the present time. An example of
error-prone modules. The 80-20 rule says that 80%
a general process overview for a payroll system as
of errors are in 20% of modules. If those modules
specified in VDM is shown as Figure 17-9. While a
can be identified, they should be redesigned and
detailed discussion of these methods is beyond the
rewritten. Modules for redevelopment are more eas-
scope of this text, they deserve mention because they
ily identified using cleanroom techniques than other
are the only known way for attaining zero defects
techniques. The disadvantages of cleanroom devel-
and knowing it.
opment are similar to those of mathematical proof.
Skills required are beyond those of the average busi-
Cleanroom Tests
ness SE, including math, statistics, logic, and for-
Cleanroom testing is an extension of mathematical mal specification language. We will say more about
proof that deserves some comment. Cleanroom test- the 80-20 rule later.
ing is a manual verification technique used as a part
of clean room development. The theory of clean-
room development is that by preventing errors from
Top-Down Testing
ever entering the process, costs are reduced, soft- Top-down testing is driven by the principle that the
ware reliability is increased, and the zero defect goal main logic of an application needs more testing
is attained. The process was introduced in IBM in and verification than supporting logic. Top-down
the early 1980s by Mills, Dyer, and Linger, and approaches allow comparison of the application to
applies hardware engineering techniques to soft- functional requirements earlier than a bottom-up
ware. Formal specifications are incrementally devel- approach. This means that serious design flaws
oped and manually verified by walk-through and should surface earlier in the implementation process
inspections teams. Any program that is not easily than with bottom-up testing.
read is rewritten. All program development is on The major drawback to top-down testing is
paper until all verification is complete. the need for extra code, known as scaffolding, to
Cleanroom testing techniques are walk-throughs support the stubs, partial modules, and other pieces
and formal mathematical verification. The goal is to of the application for testing. The scaffolding usu-
decompose every module into functions and their ally begins with job control language and the main
linkages. Functional verification uses mathematical logic of the application. The main logic is scaffolded
700 CHAPTER 17 Testing and Quality Assurance
Employee File
PAYROLL
LEGEND:
VDM Name Diagram Name
ActLst Chart of Accounts
EmpDb Employee File
ErrLst Error List
PcLst Payment Details
TcLst TimeCard
Adapted from Conger, Fraser, Galiano, Kumar, McLean, Owen, and Vaishnavi, 1990.
FIGURE 17-9 Vienna Development Method (VDM) Formal Specification Language Example
and tested hierarchically. First, only the critical These two modules would be tested first, before any
procedures and control logic are tested. other logic is verified.
For example, Figure 17-10 shows the mainline When critical procedures are working, the control
logic for Customer Maintenance. The mainline of language and main line code for less critical proce-
logic is important because it will be executed every dures are added. In the example above, the stubs for
time a maintenance request is performed. Since cus- updating, deleting, and querying customers would be
tomer creation is the most probable maintenance ac- tested second. These are tested and retested through-
tivity, it should be guaranteed as much as possible. out development as proof that the mainline of logic
Further, if creation works, it is easily modified to for all modules works.
provide update and delete capabilities which are a After stubs, the most critical logic is coded, unit
subset of creation functionality. Figure 17-11 is an tested, and placed into integration testing upon com-
example of COBOL stub logic for Create Customer. pletion. In our example, the code for Create Cus-
Testing Strategies 701
01 Customer-relation.
else
If Cust-Maint-Selection =("E" or F3) Procedure Division.
Go to Cust-Maint-Exit Main-Line.
Perform Display-Cust-Screen.
Perform Accept-Values.
else
Perform Edit-Validate.
Display Selection-Err Perform Write-Customer.
Go To Main-Line. Display Continue-Msg.
Accept Cust-Response.
Cust-Maint-Exit. Exit. If Cust-Resp = 'yO
go to main-line
else
go to create-customer-exit.
FIGURE 17-10 Mainline Logic for Customer Display-Cust-Screen.
Write Cust-Screen from Customer-Screen-Record.
Maintenance DCS-exit. Exit.
Accept-Values.
AV-Exit. Exit.
tomer would be tested next. The 'critical' code Edit-Validate.
includes screen data entry and writing to the file. EV-Exit. Exit.
Finally, ancillary logic, such as editing input fields, Write-Customer.
is completed and placed into testing. In our example, Write Customer-Relation from Customer-File-Record
the less critical code is the actual edit and validation on error perform Cust-Backout-Err.
WC-Exit. Exit.
processing with error messages. Thus, in top-down Create-Customers-Exit. Exit.
testing, the entire application is developed in a skele-
tal form and tested. As pieces of the skeleton are
fleshed out, they are added to the test application. FIGURE 17-11 COBOL Stub Program for
In theory, top-down testing should find critical Customer Create
design errors earlier in the testing process than other
approaches. Also, in theory, top-down testing should Top-down easily supports testing of screen
result in significantly improved quality of delivered designs and human interface. In interactive applica-
software because of the iterative nature of the tests. tions, the first logic tested is usually screen naviga-
Unit and integration testing are continuous. There is tion. This serves two purposes. First, the logic for
no discrete integration testing, per se. When the unit/ interactive processing is exhaustively exercised
integrated test is complete, further system tests are by the time all code and testing is complete. Sec-
conducted for volume and constraint tests. ond, users can see, at an early stage, how the final
702 CHAPTER 17 Testing and Quality Assurance
application will look and feel. The users can test the statistically reflect the users' data in the
navigation through screens and verify that it matches amount and types of records processed while
their work. incorporating as many operational processing
Top-down testing can also be.used easily with paths as possible. The database is then the
prototyping and iterative development. Prototyping basis for a regression test database in addi-
is iterative and follows the same logic for adding tion to its use for system testing. Production
code as top-down testing. Presenting prototyping, data is real, so finding statistically representa-
iterative development, and top-down testing together tive cases is more difficult than creating
for user concurrence helps ensure that prototypes them.
actually get completed.
Each test case should be developed to verify that
specific design requirements, functional design, or
Bottom-Up Testing code are satisfied. Test cases contain, in addition to
test case input data, a forecast of test case output.
Bottom-up testing takes an opposite approach based Real or 'live' data should be used to reality test
on the principle that any change to a module can the modules after the tests using created data are
affect its functioning. In bottom-up testing, the entire successful.
module should be the unit of test evaluation. All Each component of an application (e.g., module,
modules are coded and tested individually. A fourth subroutine, program, utility, etc.) must be tested with
level of testing is frequently added after unit testing at least two test cases: one that works and one that
to test the functioning of execute units. Then, exe- fails. All modules should be deliberately failed at
cute units are turned over to the testing team for least once to verify their' graceful degradation.' For
integration and systems testing. instance, if a database update fails, the application
The next section discusses the development of should give the user a message, roll back the pro-
test cases to match whatever strategy is defined. cessing to leave the database as it was before the
Then, each level of testing is discussed in detail with transaction, and continue processing. If the applica-
ABC Video test examples to show how to design tion were to abend, or worse, continue processing
each test. with a corrupt database, the test would have caught
an error.
Test cases can be used to test multiple design
Test Cases requirements. For example, a requirement might be
that all screens are directly accessible from all other
Test cases are input data created to demonstrate that
screens; a second requirement might be that each
both components and the total system satisfy all
screen contain a standard format; a third requirement
design requirements. Created data rather than 'live,'
might be that all menus be pull-down selections
production data, is used for the following reasons:
from a menu bar. These three requirements can all be
1. Specially developed test data can incorporate easily verified by a test case for navigation that also
all operational situations. This implies that attends to format and menu selection method.
each processing path may be tested at the The development of test case input may be facil-
appropriate level of testing (e.g., unit, inte- itated by the use of test data generators such as
gration, etc.). IEBDG (an IBM utility) or the test data generators
2. Predetermined test case output should be pre- within some case tools. The analysis and verification
dicted from created input. Predicting results of processing may be facilitated by the use of
is easier with created data because it is more language-specific or environment-specific testing
orderly and usually has fewer cases. supports (see Figure 17-12). These supports are
3. Test case input and output are expanded to discussed more completely iN the section on auto-
form a model database. The database should mated supports.
Testing Strategies 703
1. X X X X X X X
2. X X X X X
3. X X X X X X X
4. X X X X X X X X X X
Legend:
1. Read Customer
2. Check Credit
3. Create Customer
4. Display Customer
matrix in Figure 17-13. The 11 requirements can be In reality, we frequently combine all four strate-
fully tested in at most seven test cases for the four gies in testing an application. White-box testing is
functions. used most often for low-level tests-module, rou-
tine, subroutine, and program testing. Black-box
testing is used most often for high-level tests-inte-
Matching the Test Level to gration and system level testing. White-box tests find
specific logic errors in code, while black-box tests
the Strategy find errors in the implementation of the functional
The goal of the testers is to find a balance between business specifications. Similarly, top-down tests are
strategies that allows them to prove their applica- conducted for the application with whole tested
tion works while minimizing human and computer modules plugged into the control structure as they
resource usage for the testing process. Noone testing are ready, that is, after bottom-up development.
strategy is sufficient to test an application. To use Once modules are unit tested, they can be integration
only one testing strategy is dangerous. If only white- tested and, sometimes, even system tested with the
box testing is used, testing will consume many same test cases.
human and computer resources and may not iden- Table 17-2 summarizes the uses of the box and
tify data sensitive conditions or major logic flaws live-data testing strategies for each level of test. Fre-
that transcend individual modules (see Table 17-1). quently black- and white-box techniques are com-
If only black-box testing is used, specific logic prob- bined at the unit level to uncover both data and logic
lems may remain uncovered even when all specifi- errors. Black-box testing predominates as the level
cations are tested; type 2 errors are difficult to of test is more inclusive. Testing with created data
uncover. Top-down testing by itself takes some- at all levels can be supplemented by testing with live
what longer than a combined top-down, bottom-up data. Operational, live-data tests ensure that the
approach. Bottom-up testing by itself does not find application can work in the real environment. Next,
strategic errors until too late in the process to fix we examine the ABC rental application to design a
them without major delays. strategy and each level of test.
heuristics, for this decision. Commitment to top- tation and an executable code. By definition, you
down testing is as much cultural and philosophical have to treat the software as a black box. Further,
as it is technical. To provide some heuristics, in gen- top-down testing does not make sense because you
eral, the more critical, the larger, and the more com- are presented with a complete, supposedly working,
plex an application, the more top-down benefits application. Testing should be at the system level
outweigh bottom-up benefits. only, including functional, volume, intermodular
The heuristics of testing are dependent on the lan- communications, and data-related black-box tests.
guage, timing and operational environment of the Next, we consider the ABC test strategy.
application. Significantly different testing strategies
are needed for third (e.g., COBOL, Pl/1), fourth
ABC Video Test Strategy
(e.g., Focus, SQL), and semantic (e.g., Lisp, PRO-
LOG) languages. Application timing (see Chapter 1) The ABC application will be developed using some
is either batch, on-line, or real-time. Operational SQL-based language. SQL is a fourth-generation
environment includes hardware, software, and other language which simplifies the testing process and
co-resident applications. Heuristics for each of these suggests certain testing strategies. The design from
are summarized in Table 17-3. Chapter 10, Data-Oriented Design, is used as the
Package testing differs significantly from self- basis for testing, although the arguments are the
developed code. More often, when you purchase same for the other methodologies.
package software, you are not given the source code First, we need to decide the major questions:
or the specifications. You are given user documen- Who? What? Where? When? How?
708 CHAPTER 17 Testing and Quality Assurance
Critical y y N N N N N N
Large y y N N N N N N
Complex y y N N N N N N
Timing BS BE BS BE BE
Language
Generation 2 2 3/4 3 4 Rule
Test Strategy
Top-Down!
Bottom-Up, Both Both Either Either Either Either Cont Either Both Cont
Both, or Either
T T
Mod Mod
B B
Black/White/
Both/Either Both Both Cont Cont Both Either Either Both Cont BI
W W or or W
Mod Mod Both Both Mod
BI BI Bl
Legend:
Y Yes
N No
BS Batch-stand-alone
BE Batch-execute unit
Cont Control Structure
Mod Modules
T Top-down
B Bottom-up
W White
BI Black
Who? The test coordinator should be a member be performed to exercise the system and prove
of the team. Assume it is yourself. Put yourself into its functioning.
this role and think about the remaining questions Where? The ABC application should be tested in
and how you would answer them if you were testing its operational environment to also test the environ-
this application. ment. This means that all hardware and software of
What? All application functions, constraints, user the operational environment should .be installed and
acceptance criteria, human interface, peak perfor- tested. If Vic, or the responsible project team mem-
mance, recoverability, and other possible tests must ber, has not yet installed and tested the equipment,
Test Plan for ABC Video Order Processing 709
they are now delaying the conduct of application allel test units. If we were testing process design
testing. (Chapters 7 and 8), we would use the structure charts
When? Since a 4GL is being used, we can begin to decide parallel sets of processes.
testing as soon as code is ready. An iterative, top- Of the ABC processes, Rental/Return is the most
down approach will be used. This approach allows complex and is discussed in detail. Rental/Return
Vic and his staff early access to familiarize them- assumes that all files are present, so the DBA must
selves with the application. Testing at the system have files defined and populated with data before
level needs to include the scaffold code to support Rental/Return can be tested. Note that even though
top-down testing. The schedule for module coding files must be present, it is neither important nor
should identify and schedule all critical modules for required that the file maintenance processes be pres-
early coding. The tasks identified so far are: ent. For the two create processes that are called, pro-
gram stubs that return only a new Customer ID, or
1. Build scaffold code and test it.
Video ID IC opy ID, are sufficient for testing.
2. Identify critical modules.
In addition to parallel streams of testing, we
3. Schedule coding of critical modules first.
might also want to further divide Rental/Return into
4. Test and validate modules as developed using
several streams of testing by level of complexity, by
the strategy developed.
transaction type, or by equivalent processes to fur-
How? Since a top-down strategy is being used, ther subdivide the code generation and testing pro-
we should identify critical modules first. Since the cesses. We choose such a division so that the same
application is completely on-line, the screen controls person can write all of the code but testing can pro-
and navigation modules must be developed before ceed without all variations completed. For example,
anything else can be tested. Also, since the applica- we will divide Rental/Return by transaction type as
tion is being developed specifically to perform we did in IE. The four transaction types are rentals
rental/return processing, rental/return processing with and without returns, and returns with and with-
should be the second priority. Rental/return cannot out rentals. This particular work breakdown allows
be performed without a customer file and a video us to test all major variations of all inputs and out-
file, both of which try to access the respective cre- puts, and allows us to proceed from simple to com-
ate modules. Therefore, the creation modules for the plex as well. In the next sections, we will discuss
two files have a high priority. from bottom-up how testing at each level is designed
The priority definition of create and rental/return and conducted using Rental/Return as the ABC
modules provides a prioritized list for development. example.
The scaffolding should include the test screens, nav- Next, we define the integration test strategy. The
igation, and stubs for all other processing. The last IE design resulted in small modules that are called
item, backup and recovery testing, can be parallel to for execution, some of which are used in more than
the others. one process. At the integration level, we define
Next, we want to separate the activities into par- inputs and predict outputs of each module, using a
allel equivalent chunks for testing. By having paral- black-box approach. Because SQL calls do not pass
lel testing streams, we can work through the system data, predicting SQL set output is more important
tests for each parallel stream simultaneously, speed- than creating input. An important consideration with
ing the testing process. For ABC, Customer Main- the number of modules is that intermodular errors
tenance, Video Maintenance, Rental/Return, and that are created in one module but not evidenced
Periodic processing can all be treated as stand-alone until they are used in another module. The top-down
processes. Notice that in Information Engineering approach should help focus attention on critical
(IE), this independence of processes is at the activ- modules for this problem.
ity level. If we were testing object-oriented design Because SQL is a declarative language, black-
(Chapters 11 and 12), we would look at processes box testing at the unit level is also appropriate. The
from the Rooch diagram as the independent and par- SQL code that provides the control structure is logic
710 CHAPTER 17 Testing and Quality Assurance
and becomes an important test item. White-box tests specifications. Third, all output should be consistent
are most appropriate to testing the control logic. with results predicted from the specification. Outputs
Therefore, a mix of black- and white-box testing will might include hard copy, terminal displays, elec-
be done at the unit level. tronic transmissions, or file contents; all are tested.
To summarize, the top-down strategy for testing There is no one strategy for unit testing. For
the application includes: input/output bound applications, black-box strate-
gies are normally used. For process logic, either or
1. Test screen design and navigation, including
both strategies can be used. In general, the more crit-
validation of security and access controls.
ical to the organization or the more damaging the
2. Test the call structure for all modules.
possible errors, the more detailed and extensively
3. Test rental/return processing.
white-box testing is used. For example, organiza-
4. Test create processing for customers and
tionally critical processes might be defined as any
videos.
process that affects the financial books of the organi-
5. Test remaining individual processes and file
zation' meets legal requirements, or deals with client
contents as parallel streams.
relationships. Examples of application damage
6. Test multiple processes and file manipula-
might include life-threatening situations such
tions together, including validation of
as in nuclear power plant support systems, life-
response time and peak system performance.
support systems in hospitals, or test systems for car
The test will use many users doing the same
or plane parts.
and different processes, simultaneously.
Since most business applications combine ap-
7. Test backup and recovery strategies.
proaches, an example combining black- and white-
Now, we develop and try a unit test to test the box strategies is described here. Using a white-box
strategy. If a small test of the strategy works, we approach, each program specification is analyzed to
implement the strategy. identify the distinct logic paths which serve as the
basis for unit test design. This analysis is simplified
by the use of tables, lists, matrices, diagrams, or
decision tables to document the logic paths of the
Unit Testing program. Then, the logic paths most critical in per-
forming the functions are selected for white-box
Guidelines for Developing a Unit Test
testing. Next, to verify that all logic paths not white-
Unit tests verify that a specific program, module, or box tested are functioning at an acceptable level of
routine (all referred to as 'module' in the remaining accuracy, black-box testing of input and output is
discussion) fulfills its requirements as stated in designed. This is a common approach that we will
related program and design specifications. The two apply to ABC Video.
primary goals of unit testing are conformance to When top-down unit testing is used, control struc-
specifications and processing accuracy. ture logic paths are tested first. When each path is
For conformance, unit tests determine the extent successfully tested, combinations of paths may be
to which processing logic satisfies the functions tested in increasingly complex relationships until
assigned to the module. The logical and operational all possible processing combinations are satisfacto-
requirements of each module are taken from the pro- rily tested. This process of simple-to-complex test-
gram specifications. Test cases are designed to verify ing ensures that all logic paths in a module are
that the module meets the requirements. The test is performing both individually and collectively
designed/rom the specification, not the code. as intended.
Processing accuracy has three components: input, Similarly, unit testing of multiuser applications
process, and output. First, each module must process also uses the simple-to-complex approach. Each pro-
all allowable types of input data in a stable, pre- gram is tested first for single users. Then multiuser
dictable, and accurate manner. Second, all possible tests of the single functions follow. Finally, multiuser
errors should be found and treated according to the tests of mUltiple functions are performed.
Test Plan for ABC Video Order Processing 711
Unit tests of relatively large, complex programs condition or data domain possible but that no extra
may be facilitated by reducing them to smaller, more tests are necessary. For example, the most common
manageable equivalent components such as errors in data inputs are for edit/validate criteria.
Boundary conditions of fields should be tested.
• transaction type:
Using equivalence partitioning of the sets of allow-
e.g., Debit/Credit, Edit/Update/Report/Error
able values for each field we develop the test for a
• functional component activity
date formatted YYYYMMDD (that is, 4-digit year,
e.g., Preparing, Sending, Receiving,
2-digit month, and 2-digit day). A good year test will
Processing
test last year, this year, next year, change of century,
• decision option
all zeros, and all nines. A good month test will test
e.g., If true ... If false ...
zeros, 1, 2, 4 (representative of months with 30
When the general process of reduction is accom- days), 12, and 13. Only 1 and 12 are required for the
plished, both black-box and white-box approaches boundary month test, but the other months are
are applied to the process of actually defining test required to test day boundaries. A good day test will
cases and their corresponding output. The black-box test zeros, 1,28,29,30,31, and 32, depending on the
approach should provide both good and bad data final day of each month. Only one test for zero and
inputs and examine the outputs for correctness of one are required, based on the assumption that if one
processing. In addition, at least one white-box strat- month processes correctly, all months will. Leap
egy should be used to test specific critical logic of year and nonleap years should also be tested. An
the tested item. example of test cases for these date criteria is pre-
Test cases should be both exhaustive and mini- sented. Figure 17 -14 shows the equivalent sets of
mal. This means that test cases should test every data for each domain. Table 17-4 lists exhaustive test
8
Equivalent Data Items for Month Tests
Good Days
Day Errors
cases for each set in the figure. Table 17-5 lists the are accurate and documentation shows the correct
reduced set after extra tests are removed. predictions.
Other frequently executed tests are for character, Unit tests are conducted and reviewed by the
field, batch, and control field checks. Table 17-6 lists author of the code item being tested, with final test
a sampling of errors found during unit tests. Char- results approved by the project test coordinator.
acter checks include tests for blanks, signs, length, How do you know when to stop unit testing?
and data types (e.g., numeric, alpha, or other). Field While there is no simple answer to this question,
checks include sequence, reasonableness, consis- there are practical guidelines. When testing, each
tency, range of values, or specific contents. Control tester should keep track of the number of errors
fields are most common in batch applications and are found (and resolved) in each test. The errors should
used to verify that the file being used is the correct be plotted by test shot to show the pattern. A typical
one and that all records have been processed. Usu- module test curve is skewed left with a decreasing
ally the control field includes the last execution date number of errors found in each test (see Figure
and file name which are both checked for accuracy. 17-15). When the number of errors found ap-
Record counts are only necessary when not using a proaches zero, or when the slope is negative and
declarative language. approaching zero, the module can be moved forward
Once all test cases are defined, tests are run and to the next level of testing. If the number of errors
results are compared to the predictions. Any result found stays constant or increases, you should seek
that does not exactly match the prediction must be help either in interpreting the specifications or in
reconciled. The only possible choices are that the testing the program.
tested item is in error or the prediction is in error. If
the tested item is in error, it is fixed and retested.
ABC Video Unit Test
Retests should follow the approach used in the first
tests. If the prediction is in error, the prediction is Above, we said we would use a combination of
researched and corrected so that specifications black- and white-box testing for ABC unit tests. The
714 CHAPTER 17 Testing and Quality Assurance
EditNalidate
Transaction rejected when valid Number
Error accepted as valid of
Incorrect validation criteria applied Errors
Screen
Navigation faulty
Faulty screen layout
2 3 4 5 6
Spelling errors on screen
Number of Test Runs
Inability to call screen
Data Integrity
Transaction processed when inconsistent with FIGURE 17-15 Unit Test Errors Found Over
other information Test Shots
Interfile matching not correct
File sequence checking not correct
File Processing design also means that debugging the individual
File, segment, relation of field not correctly modules would require considerable work to verify
processed that the modules performs collectively as expected.
Read/write data format error Memory locations would need to be printed many
Syntax incorrect but processed by interpreter times in such testing.
Report To restructure the code, we examine what all of
Format not correct the Rent/Return modules have in common-Open
Totals do not add/crossfoot Rentals data. We can redefine the data in terms of
Wrong field(s) printed Open Rentals with a single-user view used for all
Wrong heading, footing or other cosmetic error Rent/Return processing. This simplifies the data part
Data processing incorrect
of the processing but increases the vulnerability of
the data to integrity problems. Problems might
increase because the global view of data violates the
application is being implemented using a SQL soft- principle of information hiding. The risk must be
ware package. Therefore, all code is assumed to be taken, however, to accommodate reasonable user
in SQL. The control logic and nonSELECT code is response time.
subject to white-box tests, while the SELECT mod- The common format of the restructured SQL
ules will be subject to black-box tests. code is shown in Figure 17-17. In the restructured
In Chapter 10, we defined Rent/Return processing version, data is defined once at the beginning of
as an execute unit with many independent code Rent/Return processing. The cursor name is de-
units. Figure 17-16 shows partial SQL code from clared once and the data is retrieved into memory
two Rent/Return modules. Notice that most of based on the data entered through the Get Request
the code is defining data and establishing screen module. The remaining Rent/Return modules are
addressability. As soon as two or three modules that called in sequence. The modules have a similar
have such strikingly similar characteristics are built, structure for handling memory addressing. The
the need to further consolidate the design to accom- problems with many prints of memory are reduced
modate the implementation language should be because once the data is brought into memory, no
obvious. With the current design, more code is spent more retrievals are necessary until updates take
in overhead tasks than in application tasks. Overhead place at the end of the transaction. Processing is
code means that users will have long wait times simplified by unifying the application's view of
while the system changes modules. The current the data.
Test Plan for ABC Video Order Processing 715
The restructuring now requires a change to the the functional Rent/Return processing. Top-down,
testing strategy for Rent/Return. A strictly top-down black-box tests of the SELECT code are done before
approach cannot work because the Rent/Return mod- being embedded in the execute unit. Black-box test-
ules are no longer independent. Rather, a combined ing for the SELECT is used because SQL controls all
top-down and bottom-up approach is warranted. A data input and output. Complete SELECT statements
sequential bottom-up approach is more effective for are the test unit.
Test Plan for ABC Video Order Processing 717
continue until all fields used on the screen or used to control screen processing are
declared ...
(At this point the memory contains the related relation data
and the remaining rent/return processing can be done.)
All the other modules are called and contain the following common format:
GOTOLABEl
EXEC SOL FETCH SCREEN_CURSOR INTO TARGET
:screen fields
GOTO GOTOlABEl;
GOTOEXIT;
EXEC SOL CLOSE SCREEN_CURSOR;
Test Type
4. Test Get Valid Customer, Get Open Rentals Black Box for embedded SELECT statement, White Box for
other logic
5. Test Get Valid Video White Box for logic, Black Box for embedded SELECT
statement
7. Test Update Open Rental Black Box for Update, White Box for other logic
8. Test Create Open Rental Black Box for Update, White Box for other logic
9. Test Update Item Black Box for Update, White Box for other'logic
10. Test Update/Create Customer History Black Box for Update, White Box for other logic
11. Test Print Receipt Black Box for Update, White Box for other logic
The screen interaction and module logic can be script for a return with rental transaction. Notice that
tested as either white box or black box. At the unit the test begins at the Rent/Return screen and that
level, white-box testing will be used to test inter- both error and correct data are entered for each field.
module control logic. A combination of white-box After all errors are detected and dispatched prop-
and black-box testing should be used to test intra- erly, only correct data is required. This script shows
module control and process logic. one of the four types of transactions. It shows only
The strategy for unit testing, then, is to test data one return and one rental, however, and should be
retrievals first, to verify screen processing, including expanded in another transaction to do several rentals
SQL cursor and data addressability second, and to and several returns; returns should include on-time
sequentially test all remaining code last (see Figure and late videos and should not include all tapes
17-18). checked out. This type of transaction represents the
Because all processing in the ABC application is requisite variety to test returns with rentals. Of
on-line, an interactive dialogue test script is devel- course, other test scripts for the other three types of
oped. All file interactions predict data retrieved and transactions should also be developed. This is left
written, as appropriate. The individual unit test as an extra-credit activity.
scripts begin processing at the execute unit bound-
ary. This means that menus are not necessarily
tested. A test script has three columns of information Subsystem or Integration
developed. The first column shows the computer
messages or prompts displayed on the screen. The Testing
second column shows data entered by the user. The
Guidelines for Integration Testing
third column shows comments or explanations of the
interactions taking place. The purpose of integration testing is to verify that
A partial test script for RentIReturn processing is groups of interacting modules that comprise an exe-
shown in Figure 17-19. The example shows the cute unit perform in a stable, predictable, and accu-
Test Plan for ABC Video Order Processing 719
rate manner that is consistent with all related pro- TABLE 17-7 Sample Integration Test
gram and systems design specifications. Errors
Integration tests are considered distinct from unit
tests. That is, as unit tests are successful, integration Intennodule communication
testing for the tested units can begin. The two pri- Called module cannot be invoked
mary goals of integration testing are compatibility
Calling module does not invoke all expected
and intermodule processing accuracy.
modules
Compatibility relates to calling of modules an
operational environment. The test verifies first that Message passed to module contains extraneous
all modules are called correctly, and, even with information
errors, do not cause abends. Intermodule tests check Message passed to module does not contain
that data transfers between modules operate as correct information
intended within constraints of CPU time, memory, Message passed contains wrong (or inconsistent)
and response time. Data transfers tested include data type
sorted and extracted data provided by utility pro-
Return of processing from called module is to the
grams, as well as data provided by other applica-
wrong place
tion modules.
Test cases developed for integration testing Module has no return
should be sufficiently exhaustive to test all possible Multiple entry points in a single module
interactions and may include a subset of unit test
Multiple exit points in a single module
cases as well as special test cases used only in this
test. The integration test does not test logic paths Process errors
within the modules as the unit test does. Instead, it Input errors not properly disposed
tests interactions between modules only. Thus, a
Abend on bad data instead of graceful
black-box strategy works well in integration testing.
degradation
If modules are called in a sequence, checking of
inputs and outputs to each module simplifies the Output does not match predicted results
identification of computational and data transfer Processing of called module produces unexpected
errors. Special care must be taken to identify the results does not match prediction
source of errors, not just the location of bad data. Time constrained process is over the limit
Frequently, in complex applications, errors may not
be apparent until several modules have touched the Module causes time-out in some other part of
the application
data and the true source of problems can be difficult
to locate. Representative integration test errors are
listed in Table 17-7.
Integration testing can begin as soon as two or collectively without error. Integration test curves
more modules are successfully unit tested. When to usually start low, increase and peak, then decrease
end integration tests is more subjective. When (see Figure 17-20). If there is pressure to terminate
exceptions are detected, the results of all other test integration testing before all errors are found, the
processing become suspect. Depending on the sever- rule of thumb is to continue testing until fewer errors
ity and criticality of the errors to overall process are found on several successive test runs.
integrity, all previous levels of testing might be
reexecuted to reverify processing. Changes in one
ABC Video Integration Test
module may cause tests of other modules to become
invalid. Therefore, integration tests should be con- Because of the redesign of execute units for more
sidered successful only when the entire group of efficient SQL processing, integration testing can be
modules in an execute unit are run individually and concurrent with unit code and test work, and should
Test Plan for ABC Video Order Processing 721
script. Rather, a note should refer the reader to the after each transaction is entered to ensure that file
person responsible for maintaining passwords. updates and additions are correct. If the integration
In the integration portion of the test, multiuser test is approached as iteratively adding modules for
processing might take place, but it is not necessarily testing, the final run-through of the test script should
fully tested at this point. File contents are verified include all functions of the application, including
Test Plan for ABC Video Order Processing 723
start-up, shutdown, generation and printing of all If transactions are to be interruptible, the
reports, queries on all files, all file maintenance, and manner of saving partial transactions and
all transaction types. At least several days and one calling them back should be the same for all
monthly cycle of processing sli,ou~d be simulated for screens. System level testing should test all
ABC's test to ensure that end-oi-day and enCl-of- of these capabilities.
month processing work. 3. All processing is within constraints. General
Next, we discuss system testing and continue the constraints can relate to prerequisites,
example from ABC with a functional test that is postrequisites, time, structure, control and
equally appropriate at the integration, system, or inferences (see Chapter 1). Constraints can
QA levels. be internally controlled by the application or
can be externally determined with the appli-
cation simply meeting the constraint. Inter-
System and Quality Assurance nally controlled constraints are tested through
Testing test cases specifically designed for that pur-
pose. For instance, if response time limits
Guidelines for Developing System and have been stated, the longest possible trans-
Quality Assurance Tests action with the most possible errors or other
delays should be designed to test response. If
The system test is used to demonstrate an applica-
response time for a certain number of users is
tion's ability to operate satisfactorily in a simulated
limited, then the test must have all users
production environment using its intended hardware
doing the most complex of actions to prove
and software configuration. The quality assurance
the response time constraint is met. Exter-
test (QA) is both a system test and a documentation
nally controlled constraints are those that the
test. Both tests also verify that all of the system's
application either meets or does not. If the
interacting modules do the following:
constraints are not met, then some redesign is
1. Fulfill the user's functional requirements as probably required.
contained in the business system design spec- 4. All modules are compatible and, in event of
ifications and as translated into design failures, degrade gracefully. System tests of
requirements in the design spec and any compatibility prove that all system compo-
documents controlling interfaces to nents are capable of operating together as
other systems. designed. System components include pro-
2. The human interface works as intended. grams, modules, utilities, hardware, database,
Screen design, navigation, and work inter- network, and other specialized software.
ruptability are the test objects for human 5. Has sufficient procedures and code to provide
interface testing. All words on screens should disaster, restart, and application error recov-
be spelled properly. All screens should share ery in both the designed and host software
a common format that is presented consis- (e.g., DB2)
tently throughout the application. This format 6. All operations procedures for the system are
includes the assignment of program function useful and complete. Operations procedures
keys as well as the physical screen format. include start-up, shutdown, normal process-
Navigation is the movement between screens. ing, exception processing, special operator
All menu selections should bring up the cor- interventions, periodic processing, system
rect next screen. All screens should return to specific errors, and the three types of
a location designated somewhere on the recovery.
screen. If direct navigation from one screen
to any other is provided, the syntax for that In addition, the QA test evaluates the accu-
movement should be consistent and correct. racy, consistency, format, and content of application
724 CHAPTER 17 Testing and Quality Assurance
documentation, including technical, user, on-line, TABLE 17-8 Sample System Test Errors
and operations documentation. Ideally, the individ-
ual performing the QA test does not work on the Functional
project team but can deal with them effectively in the Application does not perform a function in the
adversarial role of QA. Quality assurance in some functional specification
companies is called the acceptance test and is per-
Application does not meet all functional accep-
formed by the user. In other companies, QA is per-
tance criteria
formed within the IS department and precedes the
user acceptance test. Human Interface
The system test is the final developmental test
Screen format, spelling, content errors
under the control of the project team and is consid-
ered distinct from integration tests. That is, the Navigation does not meet user requirements
successful completion of integration testing of suc- Interruption of transaction processing does not
cessively larger groups of programs eventually leads meet user requirements
to a test of the entire system. The system test is con-
ducted by the project team and is analogous to the Constraints
quality assurance acceptance test which is conducted Prerequisites treated as sequential and should be
by the user (or an agent of the user). Sample system parallel ... must all be checked by (x) module
test errors are shown in Table 17-8.
Prerequisite not checked
Test cases used in both QA and system testing
should include as many normal operating conditions Response Time/Peak Performance
as possible. System test cases may include subsets of
Response time not within requirements for file
all previous test cases created for unit and integration
updates, start-up, shutdown, query, etc.
tests as well as global test cases for system level
requirements. The combined effect of test data used Volume of transactions expected cannot be
should be to verify all major logic paths (for both processed within the specified run-time intervals
normal and exception processing), protection mech- Batch processing cannot be completed in the time
anisms, and audit trails. allotted
QA tests are developed completely from analysis Expected number of peak users cannot be
and design documentation. The goal of the test is accommodated
to verify that the system does what the documenta-
tion describes and that all documents, screens, and Restart/Recovery
processing are consistent. Therefore, QA tests go Program-Interrupted printout fails to restart at
beyond system testing by specifically evaluating the point of failure (necessary for check process-
application information consistency across environ- ing and some confidential/financial reporting)
ments in addition to testing functional software
Software-Checkpoint/restart routine is not called
accuracy. QA tests find a broader range of errors properly
than system tests; a sampling of QA errors is in
Table 17-9. Hardware-Printer cannot be accessed from main
terminal
System testing affords the first opportunity to
observe the system's hardware components oper- Switches incorrectly set
ating as they would in a production mode. This System re-IPL called for in procedures
enables the project's test coordinator to verify cannot be done without impacting
that response time and performance requirements other users not of this application
are satisfied.
Expected hardware configuration has
Since system testing is used to check the entire incompatible components
system, any errors detected and corrected may
Test Plan for ABC Video Order Processing 725
TABLE 17-9 Sample ONAcceptance Test require retesting of previously tested items. The sys-
Errors tem test, therefore, is considered successful only
when the entire system runs without error for all
Documentation test types.
Two or more documents inconsistent
The test design should include all possible legal
and illegal transactions, good and bad data in trans-
Document does not accurately reflect system actions, and enough volume to measure response
feature
time and peak transaction processing performance.
EditNalidate As the test proceeds, each person notes on the test
script whether an item worked or not. If a tested
Invalid transaction accepted
interaction had unexpected results, the result ob-
Valid transaction rejected
tained is marked in the margin and noted for review.
Screen The first step is to list all actions, functions, and
Navigation, format, content, processing inconsis-
transactions to be tested. The information for this list
tent with functional specification is developed from the analysis document for all
required functions in the application and from the
Data Integrity design document for security, audit, backup, and
Multifile, multitransaction, multimatches are interface designs.
incorrect The second step is to design transactions to test
all actions, functions and transactions. Third, the
File transactions are developed into a test script for a sin-
File create, update, delete, query not present or not gle user as a general test of system functioning. This
working test proves that the system works for one user and all
Sequence, data, or other criteria for processing not transactions. Fourth, the transactions are interleaved
checked across the participating number of users for multi-
user testing. In general, the required transactions are
Report specification only a subset of the total transactions included in the
Navigation, format, content, processing inconsis- multiuser test. Required transactions test the varia-
tent with functional tions of processing and should be specifically
designed to provide for exhaustive transaction cov-
Recovery
erage. The other transactions can be a mix of simple
Printer, storage, memory, software, or application and complex transactions at the designer's discre-
recovery not correct tion. If wanted, the same transaction with variations
to allow multiple use can be used. Fifth, test scripts
Performance
for each user are then developed. Last, the test is
Process, response, user, peak, or other perfor- conducted. These steps in developing system/QA
mance criteria not met tests are summarized as follows:
User Procedures
1. List all actions, functions, and transactions to
Do not match processing
be tested.
Incomplete, inconsistent, incomprehensible 2. Design transactions to test all actions, func-
On-line help differs from paper documents tions, and transactions.
3. Develop a single-user test script for above.
Operations Procedures 4. Interleave the tests across the users partici-
Do not match processing pating in the test to fully test multiuser func-
tioning of the application.
Incomplete, inconsistent, incomprehensible
S. Develop test scripts for each user.
726 CHAPTER 17 Testing and Quality Assurance
T212 0 1 (Total) No No
T221 2 0 Under-abort No
T222-Wait
required 0 2 (From T121) No Requested
T332 2 0 Under-abort No
independent processing. If the total number of The first step is to list all actions, functions, and
expected system users is six people simultaneously, transactions to be tested. For example, Figure 17-24
then the system test should be designed for six lists required transactions to test multiple days and
simultaneous users. all transaction types for each major file and process-
728 CHAPTER 17 Testing and Quality Assurance
Cust Add Cust Change- Rent-T331 Copy Change- Try to crash Rent-any
Errs + Good Err, Abort Errs + Good system with trans
data data bad trans
Delete Cust- Delete Video Rent-T332 Cust-Change Video Add Rent-any
Errs + Good Errs trans
data
END OF MONTH
ing activity for Rent/Return. These transactions Then, the transactions are interleaved with other
would be developed into a test script for a single user erroneous and legal transactions for the other ABC
test of the application. processes as planned in Figure 17-25. Notice that the
Automated Tool Support for Testing 729
required transactions are only a subset of the total • static code analyzers
transactions included in the test. The required trans- • dynamic code analyzers
actions provide for exhaustive transaction coverage. • assertion generators and processors
The other transactions in Figure 17-25 are a mix of • test data generators
simple and complex transactions. Test scripts to fol- • test driver
low the plan for each user are then developed; this • output comparators
is left as a student exercise.
Last, the test is conducted. During each shutdown In Table 17-10, several examples of CASE testing
procedure, the end-of-day reports are generated and tools are presented. Many other types of testing sup-
reset. The data mayor may not be checked after the port tools are available for use outside of a CASE
first day to verify that they are correct. If errors are environment. The most common test support tools
suspected, the files and report should be checked to are summarized below and sample products are
verify accuracy. When one whole day is run through listed in Table 17-11.
without errors, the entire set of test scripts can be A code analyzer can range from simple to com-
executed. After an entire execution of each test script plex. In general, static code analyzers evaluate the
completes, the test team convenes and reviews all syntax and executability of code without ever exe-
test scripts together to discuss unexpected results. cuting the code. They cross-reference all references
All data from the files are verified for their predicted to a line of code. Analyzers can determine code that
final contents. That is, unless a problem is suspected, is never executed, infinite loops, files that are only
intermediate intraday results are not verified during read once, data type errors, global, common, or
system testing. Errors that are found are reconciled parameter errors, and other common problems.
and fixed as required. The test scripts are run through Another output of some static analyzers is a cross-
repeatedly until no errors are generated. Then, the reference of all variables and the lines of code on
test team should take real transactions for several which they are referenced. They are a useful tool, but
days of activity and do the same type of test all over they cannot determine the worth or reliability of the
again. These transactions should also have file and code which are desired functions.
report contents predicted. This 'live-data' test should A special type of code analyzer audits code for
be successful if system testing has been successful. compliance to standards and structured program-
If it is not, the errors found should be corrected and ming (or other) guidelines. Auditors can be cus-
transactions to cause the same errors should be tomized by each using company to check their
added to the system test. After the test is complete, conventions for code structure.
the regression test package is developed for use dur- A more complex type of code analyzer is a
ing application maintenance. dynamic tool. Dynamic code analyzers run while
the program is executing, hence the term dynamic.
They can determine one or more of: coverage, trac-
AUTOMATED ____________ ing, tuning, timing, resource use, symbolic execu-
tion, and assertion checking. Coverage analysis of
SUPPORT TOOLS _ _ _ __ test data determines how much of the program is
FOR TESTING _ _ _ _ __ exercised by the set of test data. Tracing shows the
execution path by statement of code. Some tools
Many CASE tools now support the automatic gen- list values of key variables identified by the pro-
eration of test data for the specifications in their grammer. Languages on PCs usually have dynamic
design products. There are also hundreds of different tracers as an execute option. Thning analyzers iden-
types of automated testing support tools that are not tify the parts of the program executed most fre-
related to CASE. Some of the functions of these quently, thus identifying code for tuning should a
tools include timing problem occur. Timing analysis reports CPU
730 CHAPTER 17 Testing and Quality Assurance
time used by a module or program. Resource usage assertions fail based on program performance, an
software reports physicall/Os, CPU time, number of error is generated. Assertion generators are useful
database transactions, and other hardware and soft- testing tools for artificial intelligence programs and
ware utilization. Symbolic executors run with sym- any program language with which a generator can
bolic, rather than real data, to identify the logic paths work. Assertion checkers evaluate the truth of pro-
and computations for programmer-specified levels grammer-coded assertions within code. For instance,
of coverage. the statement 'Assert make-buy =o. " might be eval-
An assertion is a statement of fact about the state uated as true or false.
of some entity. An assertion generator makes facts A test data generator (TDG) is a program that
about the state the data in a program should be in, can generate any volume of data records based on
based on test data supplied by the programmer. If the programmer specifications. There are four kinds of
Datamacs Management & Computer Services, Inc. Test file generation, I/O spe-
Valley Forge, PA cification analysis, file structure
testing
DAVE Leon Osterweil Static analyzer, diagnostics,
University of Colorado data flow analysis, interface
Boulder, CO analysis, cross-reference, stan-
dards enforcer, documentation
aid
DIFF Software Consulting Services File comparison
Allentown, PA
FACOM and Fadebug Fujitsu, Ltd. Output comparator, anomaly
detector
Fortran Optimizer Softool Corp. Coverage analysis Fortran
Instrumentor Goleta, CA testing, path flow tracing,
tracing, tuning
McCabe Tools M. McCabe & Associates Specification analysis, visual
Columbia, MD path testing generates conditions
for untested paths computes
metrics
MicroFocus Cobol MicroFocus Source navigation, interactive
Workbench Palo Alto, CA dynamic debugging, structure
analysis, regression testing,
tuning
Softool80 Softool Corp. Coverage analysis, tuning,
Goleta, CA timing, tracing
UX-Metric Quality Tools for Software Craftsmen Static analyzer, syntax
Mulino, OR checking, path analysis, tuning,
volume testing, cyclic tests
test data generators: static, pathwise, data specifica- volumes of test data for timing tests as long as the
tion, and random. A static TDG requires program- records contain mostly zeros and ones. Unless the
mer specification for the type, number, and data test data generator is easy to use, it quickly becomes
contents of each field. A simple static TDG, the more cumbersome than self-made test data.
IEBDG utility from IBM, generates letters or num- Pathwise TDGs use input domain definitions to
bers in any number of fields with some specified exercise specific paths in a program. These TDGs
number of records output. It is useful for generating read the program code, create a representation of the
732 CHAPTER 17 Testing and Quality Assurance
control flow, select domain data to create represent a - cessing for the user. Code tests are on subroutines,
tive input for a programmer-specified type of test, modules, and programs to verify that individual code
and execute the test. The possible programmer units work as expected. Integration tests verify the
choices for test type include all feasible paths, state- logic and processing for suites of modules, verify-
ment coverage, or branch coverage. Since these are ing intermodular communications. Systems tests
white-box techniques, unless a programmer is care- verify that the application operates in its intended
ful, a test can run for excessively long times. environment" and meets requirements for constraints,
Test drivers are software that simulate the exe- response time, peak processing, backup and recov-
cution of module tests. The tester writes code in the ery, and security, access, and audit controls.
test driver language to provide for other module Strategies of testing are either white-box, black-
stubs, test data input, input/output parameters, files, box, top-down, or bottom-up. White-box tests ver-
messages, and global variable areas. The driver uses ify that specific logic of the application works as
the test data input to execute the module. The other intended. White-box strategies include logic tests,
tester-defined items are used during the test to exe- mathematical proof tests, and cleanroom tests.
cute pieces of code without needing physical inter- Black-box strategies include equivalence partition-
faces to any of the items. The major benefits of test ing, boundary value analysis, and error guessing.
drivers are the ease of developing regression test Heuristics for matching the test level to the strategy
packages from the individual tests, and the forced were provided.
standardization of test cases. The main problem with
drivers is the need to learn another language to use
the driver software. REFERENCES ______~____
On-line test drivers are of several types. Batch
Curritt, P. A., M. Dyer, and H. D. Mills, "Certifying the
simulators generate transactions in batch-mode reliability of software," IEEE Transactions of Soft-
processing to simulate multi-user, on-line process- ware Engineering, Vol. SE-12, 1986, pp. 3-11.
ing. Transaction simulators copy a test script as Dunn, Robert H., Software Quality: Concepts and Plans.
entered in single-user mode for later re-execution Englewood Cliffs, NJ: Prentice-Hall, Inc., 1990.
with other copied test scripts to simulate multi-user Mills, H. D., M. Dyer, and R. Linger, "Cleanroom soft-
interactions. ware engineering," Software, Vol. 4, #5, 1987,
Output comparators compare two files and pp.19-25.
identify differences. This makes checking of data- Musa, J. D., and A. F. Ackerman, "Quantifying software
bases and large files less time-consuming than it validation: When to stop testing?" Software, Vol. 6,
#3,Ma~ 1989,pp. 19-27.
would otherwise be.
Myers, Glenford J., The Art of Software Testing. NY:
John Wiley & Sons, 1979.
Selby, R. W., V. R. Basili, and F. T. Baker, "Cleanroom
SUMMARY ________~____ software development: An empirical evaluation,"
Testing is the process of finding errors in an appli- IEEE Transactions of Software Engineering, Vol.
SE-13, 1987 pp. 1027-1037.
cation's code and documentation. Testing is a
difficult activity because it is a high-cost, time-
consuming activity for which the returns diminish BIBLIOGRAPHY _ _ _ _ __
upon success. As such, it is frequently difficult for
managers to understand the importance of testing in De Millo, Richard A., W. Michael McCracken, R. J.
application development. Martin, and John F. Passafiume, Software Testing and
The levels of developmental testing include unit, Evaluation. Reading MA.: Benjamin Cummings Pub-
integration, and system. In addition, an agent, who is lishing Co., 1987.
not a project team member, performs quality assur- This text describes testing and evaluation for military
contracts and compliance with Department of Defense
ance testing to validate the documentation and pro-
standards such as 2167a which describes the phases
Study Questions 733
and documents required of all government sponsored output comparator test driver
software development projects. It includes a rich pathwise test data test plan
description of different types of testing, in particular generator test script
formal verification. program stub test strategy
Dyer, M., Cleanroom Software Development Method. quality assurance (QA) testing
IBM Federal Systems Division, Bethesda, MD, Octo- test timing analyzer
ber 14, 1982. regression test top-down testing
This monograph is a detailed description of the clean- regression test package tracing
room development method. resource usage transaction simulator
Mills, H. D., M. Dyer, and R. Linger, "Cleanroom soft- scaffolding tuning analyzer
ware engineering," Software, Vol. 4, #5, 1987, static code analyzer type 1 error
pp.19-25. static test data generator type 2 errors
This is a brief description of the methodology of subsystem test unit test
cleanroom development which includes a description symbolic executor Vienna Development
of testing. system test Method (VDM)
Musa, John D., Anthony lannino, and Kazuhira test case white-box strategy
Okumoto, Software Reliability: Measurement, Predic- test data generator (TDG)
tion, and Application. NY: McGraw-Hill Book Co.,
1987.
This text takes a quantitative approach to proving pro- EXERCISES _ _ _ _ _ _ __
gram correctness.
Musa, J. D., and A. F. Ackerman, "Quantifying software 1. Describe the process of test development for an
validation: When to stop testing?" Software, Vol. 6, application. What are the roles, activities, docu-
#3,Ma~ 1989,pp. 19-27. mentation, and procedures followed by partici-
Musa and Ackerman's article discusses the trajectory pants to testing?
of error finding over test shots and when the risk of 2. Develop a test script for user 1 for the system
stopping begins to diminish.
test.
Myers, Glenford J., The Art of Software Testing. NY:
John Wiley & Sons, 1979.
This is the best book I have ever read on testing. It is
short, clear, and easy to follow. The only drawback is STUDY QUESTIONS - ____
that real-time systems were not prevalent enough to
have been included in the book. 1. Define the following terms:
Selby, R. W., V. R. Basili, and F. T. Baker, "Cleanroom scaffolding test strategy
software development: An empirical evaluation," white box testing test case
IEEE Transactions of Software Engineering, Vol. black box testing test plan
SE-13, 1987 pp. 1027-1037. integration test
This article reviews cleanroom projects and develops 2. What is testing and why is it important?
statistics about reliability of the software. 3. How do you know when a test result is right?
4. Why do managers shorten the time allotted to
testing?
KEy TERMS ________ 5. Why do SEs and programmers sometimes
resent testing?
acceptance test cause-effect graphing
6. What is the purpose of predicting results? Do
assertion cleanroom development
assertion checker
the results have to be exact or can they be
coverage analysis
assertion generator developmental test approximated? Why?
batch simulator dynamic code analyzer 7. What is the purpose of a unit test? How is it met
black-box strategy equivalence partitioning through test strategy selection?
bottom-up testing error guessing 8. When is it appropriate not to test all program
boundary value analysis integration test logic? How do you decide what to test?
734 CHAPTER 17 Testing and Quality Assurance
r- MANAGEMENT
----------------------------~--~
DESIGNING FOR _ _ _ __
Reusability
MAINTENANCE _ _ _ __
Reusability is a property of a code module such that
Applications are usually in production for an aver- the module can be used, as is, by several applica-
age of eight years. Many applications are much tions. In designing for reuse, the goal is to identify
older, having been patched and modified regularly modules for potential reuse. The two most popular
735
736 CHAPTER 18 Change Management
methods of implementing code reuse are program ules that do fit an application, the individual module
templates and reusable modules. code is examined to verify that it performs as
Program templates consist of standard code that required. Then the module is called at the appropri-
performs a simple function. For instance, there are ate place in the application's processing.
three basic types of business programs: report, edit/ Each application team determines which modules
validate, and file update. For a report, there are stan- it might have that could be reused in its own or in
dard sections for reading file data, formatting the other applications. Then the modules are singled out
data, and writing the report (see Figure 18-1). Read- for special development as independent routines.
ing and writing can be standardized regardless of the The finished module is quality assurance tested by
data definition for input. The formatting of data must the librarians to ensure that it performs as docu-
be customized. In writing the report, there are sec- mented. The librarian is an expert in reusable
tions of code for beginning-of-page, body-of-page, standards, quality assurance testing, and code man-
and end-of-page. There may be sections for begin- agement techniques. Eventually, the code is stored in
ning-of-report and end-of-report, too. The report a reusable library whose contents are published for
program might or might not have an internal sort application developers' use.
routine that changes the sequence of the input file. Publication of reusable library contents can be
Templates can be developed to describe the 12 or awkward. Paper might be too voluminous to be use-
so most common variants of the three basic types of ful or cost-effective. Electronic publication requires
programs. For instance, a report program is devel- indices to assist users in identifying potential
oped with and without sorts. COBOL or some other modules for their use. The indices might include
procedural language is used to define the stan- keywords to describe function, language, date of
dard versions and the only items left to the appli- development, type of input, and so on. If indices are
cation programmer are procedures specific to the not coded to capture the essential characteristics of
application. the modules, they are useless.
The templates are stored as read only modules The amount of organizational support required
in a library. When a new use is defined, the module to maintain reusable libraries has been the major
to be used is copied and given a new name. The impediment to reusable library adoption in most
newly named module is then modified and cus- industries. Librarians test, store, and maintain refer-
tomized for its current use. ences to the modules in the reusable library. A large
The advantage of a template is that a finite num- number of modules, for instance over 1,000, makes
ber of variations are developed and then are modi- maintenance of the library integrity and accuracy a
fied as needed for a specific use. There is little or no major task. Locating modules for use is also a
maintenance on the templates once they are devel- major task. Librarians become specialized in per-
oped, and only a few new templates per year would forming these functions. Without proper organiza-
ever be developed. The number of support staff tional support, reusable libraries soon become
could be close to zero. unused and useless.
A template is a partial program that is completed The arguments for reuse are substantial. As much
for a particular application. A reusable module is a as 75% of all code on a typical business application
small, single function, well-defined, and standard- is redundant, and therefore, a candidate for reuse.
ized program module that can be used as a called Database descriptions, program procedure tem-
routine, or as a copy book in COBOL. For instance, plates, and individual modules are all candidates for
a date edit routine might be developed as a reusable reuse that can save companies time and money in
module (see Figure 18-2). application development. The more reused code, the
When a reusable module is desired, a library of less extensive the custom code developed, the less
reusable modules is studied to determine which extensive the testing required, and the less the cost of
ones fit the application's needs. For reusable mod- the application.
Designing for Maintenance 737
Identification Division.
Program-ID. ABCVIDADD.
Environment Division.
Configuration Section.
Source-Computer. IBM-3080.
Object-Computer. iBM-3080.
File Section.
Select Input-File from UR-D0001 as RPTIN.
Select Report-File from UR-P001 as RPTOUT.
File Division.
Input Section.
FD Input-File
Block contains 100 records.
Record contains 400 characters.
01 Input-File-Record Picx(400).
FD Report-File
Block contains 1 record.
Record contains 132 characters.
01 Report-File-Record Pic x(132).
Working-Storage Division.
01 Miscellaneous-counters.
05 Page-Count Pic 99 value zero.
05 Line-Count Pic 99 value zero.
05 Input-record-count Pic 9(7) value zero.
05 Output-record-count Pic 9(7) value zero.
05 End-of-file-marker Pic 9 value zero.
88 End-of-file value 1.
88 Not-end-of-file value O.
01 Report-Headers.
05 Header-01.
10 Filler pic x(45) Value spaces.
10 H1 piC x(23) value
'Company Standard Header'.
10 Filler pic x(15) value spaces.
10 Date pic x(8) value spaces.
05 Header-2.
10 Filler pic x(45) Value spaces.
10 H1 pic x(23) value
'Report Standard Header'.
10 Filler pic x(15) value spaces.
10 Time
15 Hour pic xx value spaces.
15 Filler piC x value ':'.
15 Hour pic xx value spaces.
15 Filler pic x value ':'.
15 Hour pic xx value spaces.
Linkage Section.
01 In-Date.
05 In-Date-Month pic xx.
05 In-Date-Day pic xx.
05 In-Date-Year pic xx.
01 Errors.
05 Err-table occurs x times.
10 Err pic 9 compo
Procedure Division.
Link.
Enter linkage.
Entry Link-date-edit using in-date, errors.
Enter COBOL.
Initialize.
Move zeros to Errs.
Check-Numerics.
If In-Date-Mo not numeric move 1 to err(1).
If In-Date-Day not numeric move 1 to err(2).
If In-Date-Year not numeric move 1 to err(3).
If err( 1) = 1 or err(2) = 1 or err (3) = 1 go to End-Test.
Check-values.
If In-Date-Day > 0
continue
else
move 1 to err(4).
If In-Date-Year> 1992
and In-Date-Year < 2015
continue
Methodology Design Effects object analysis as being invoked from multiple call-
ing objects, it is automatically targeted as potentially
In this section, we discuss the suitability of reusable reusable. Further analysis determines if the function-
libraries and program templates to the three classes ality is identical for all users. If the functionality is
of methodologies. Because of the encapsulation of the same, the module becomes locally reusable.
data and function in object orientation, object meth- The step from local reuse to organizational reuse
ods are best suited to the large scale development of is small, with the criteria being the number of other
reusable modules. The other methodologies, process applications needing the function. Here too, object
and data, can use program templates and reusable methods are more amenable to identifying reusable
modules, but such modules are not identified as nat- functionality at the analysis stage than the other
urally as with objects. methodologies. Think back to Chapter 11, in which
Object methods are best suited to reusable com- we developed the table of actions (or functions) and
ponents because the design method results in small, the objects to which they were attached (see Table
single function modules automatically. The method 18-1). It is at this stage that reuse is identified. When
assumes that only data needed for a function will be an action has more than one object attached, they are
available to it when it is called. Thus, the entire examined to determine whether the same action is
method assumes and strives for modules that are performed for each. If both objects use the action
potentially reusable. When a module is identified in identically, they are labeled potentially reusable.
Designing for Maintenance 739
else
move 1 to err(5).
If In-Date-Month = 2
If In-Date-Year = (1992 or 1996 or 2000 or 2004 or 2008 or 2012)
If In-Date-Day < 30
go to End-Test
else move 1 to err(6)
else
If In-Date-Day < 29
go to End-Test
else move 1 to err(7)
else
If In-Date-Month = (4 or 6 or 9 or 11)
If In-Date-Day < 31
go to End-Test
else move 1 to err(8)
else
If In-Date-Month = (1 or 3 or 5 or 7 or 10 or 12)
If In-Date-Day < 32
go to End-Test
else move 1 to err(9)
else
move 1 to err(1 0).
End-Test.
Enter linkage.
Return.
Enter COBOL.
Then, the potentially reusable actions are used to definition of understandable chunks of analysis and
search the reusable library to see if similar actions designs. Modular design, in turn, is then applied to
in reusable form already exist. When a match is program modules. The designer uses his or her
found, the reusable module code is examined to experience, applying the principles of information
determine its fit to the current need. Based on the hiding, minimal coupling and maximal cohesion, to
closeness of fit, the designers choose to design their develop single function modules. In this manner, the
own module or use the reusable module. The nonobject methodologies are more brute force meth-
reusable module can be used as it exists or can be ods of developing modules with object-like proper-
customized to exactly fit the application. The point is ties. While the nonobject methodologies rely on
that the analysis action is matched to a reusable personal designer knowledge, such knowledge
action at the logical level. Only when the logical also is more important in object methods than is
actions match, the physical implementation is commonly recognized at present. The results in
then examined for its appropriateness. When many nonobject methodologies, though, are less uni-
such logical level matches are found, the time sav- form and less likely to cause ready recognition of
ings in analysis, design, and implementation can reusable components than object methods. There-
be considerable. fore, reusable component libraries are most likely
It has long been held that structured and modular to be effective and widely used in object-oriented
design reduces maintenance effort by facilitating the environments.
740 CHAPTER 18 Change Management
*Actions are (R)ead, (W)rite, Data Entry (DE), (D)isplay (P)rocess in memory, (PR)int
The opposite situation is true of program tem- The 80-20 rule also applies (see Figure 18-3).
plates. The nonobject methods, because they are According to this rule, 20% of the develop-
used mostly for COBOL applications, can take ment work is performed during the original applica-
advantage of program template libraries easily and tion development. The other 80% is performed
effectively. As much as 60-80% of all COBOL code during maintenance. This ratio holds because main-
is boilerplate, that is, code which does not vary from tenance is a much longer period of an application's
one program to another. The boilerplate can be stan- life.
dardized and provided as program templates. Putting these two rules together, to gain substan-
With object methods, the boilerplate in an object tive productivity increases we need to reduce time
package is minimal but still can be standardized. The spent on coding, testing, and maintenance more than
remaining code is either reused or customized. The we need to reduce the time spent on analysis and
types of COBOL template programs, for instance, a design. CASE that covers analysis and design only
report with a sort, do not exist in the same form as reduces the time spent on documentation and main-
objects. There might be a report object and there tenance of documents. CASE that includes database
might be a sort object, and both might be reusable, schema generation and code generation further
but the code for using either object is most likely reduces the coding, testing, and maintenance activi-
provided by custom developed code. ties. Fully integrated CASE tools, I-CASE (see
Chapter 3 and Automated Tools section of this chap-
ter), that interface with code generators, support all
Role of CASE of these productivity improvements. With I -CASE
Computer Aided Software Engineering (CASE) tools, maintenance changes are reflected in the
tools are critical to maintaining applications at the requirements for an application. The requirements
functional level rather than at the code level. The are, in turn, used to regenerate the database schemas
argument for CASE runs something like this. The and code for the application. Thus, the changes take
40-20-40 rule applies to software engineering appli- place at the logical level and are automatically gen-
cation development. The rule states that 40% of the erated by the CASE tool at the physical level. The
work is performed during feasibility, analysis, and capability to do all application maintenance in this
design; 20% is during coding; and the remaining way is not here yet but should be before the new
40% is during testing (see Figure 18-3). century.
Application Change Management 741
Development
Time-20%
Maintenance
Time-80%
A more futuristic feature of CASE tools will be over budget, late, and full of bugs, and the loss of the
the ability of the tool to recognize reusable analysis user-owner confidence that the SEs understand their
and design fragments, rather than relying on humans needs. Even without drastic redesign, reviews (e.g.,
to recognize reusable code fragments. Purchasable for user agreement or quality assurance) frequently
options of the CASE tools will include intelligent turn up items that were originally compromised or
options to detect feature and function similarities rethought several times before final version agree-
across applications. The fragments would then be ment. The history of decisions and the reasoning
imported from the original library to the using about decisions is rarely kept as part of project notes.
application library (or repository). Very intelligent But, any project manager and SE can tell you that
CASE will be able to recognize a design fragment, they frequently rehash the same arguments and
logically link to the base definition of the reused reasonings over and over, even reaching the same
item, and use already operational code modules. conclusions.
This level of intelligent CASE that could manage the In a paper-based work environment, keeping
use of reusable code may surface in our lifetimes, track of the history of decisions is not practical; so
but not soon. much paper would be generated that finding any-
thing becomes impossible. In a CASE environment,
or in an imaging environment, maintaining the his-
APPLICATION _ _ _ _ __ tory of application decisions electronically becomes
CHANGE _____________ a manageable, and sometimes desirable, activity.
The ability to recall reasoning through a decision,
~ANAGEMENT _ _ _ ___ whether it is logical or political, can save time and
provide continuity between managers.
Importance Finally, changes in the business, legal require-
ments, or stakeholders in the application can all
Applications frequently undergo redesign. Three necessitate legitimate changes to application de-
typical conditions for redesign are assignment of a signs. Knowing the history of decisions sometimes
new management team, a project that is chronically makes them more palatable and easier to convey to
742 CHAPTER 18 Change Management
staff. For instance, being able to relate a change of 4. Complete Project Manager's Check List for
design to a developing business situation helps those the Change
who must cope with the change appreciate the busi- 5. File Documentation relating to changes.
ness of the application. If the change is to keep a val- If documentation or programs changed,
ued customer or increase competitiveness in a new identify date and items updates completed.
area, the systems developers are more likely to be If procedures or training changed, iden-
enthusiastic about shifting design. tify dates at which revisions were
Changes can be to requirements, designs, pro- operationalized.
grams, interfaces, hardware, or purchased software. 6. File Close Request Form Approved by
Most changes are initiated from within the organi- User/Owner
zation developing the application, but might be 7. Summarize Dates, Durations, and Costs
motivated by some outside event, such as a change
in laws. Using change controls protects the devel- First, the baseline document is frozen, then
opment team from user whims while allowing for change requests are added, but no action is taken.
action on legitimate requests. The idea that a speci- The fourth request, for example, might be urgent and
fication is frozen, meaning not changeable after it is receive immediate attention. When the functional
accepted as complete, motivates users to be as com- specification is updated to accommodate the change,
plete in their thinking as possible. it is again frozen and the work continues. The three
Designs do not stay frozen forever. Usually, once previous requests might have been added to the
an application begins coding, no changes are imple- application if they did not significantly alter it. They
mented until the application becomes operational. may just as likely be ignored until after the applica-
Then the project manager, SE, and user review the tion is implemented.
backlog of requests to develop priorities and plan the Changes can be classified in several ways. First,
changes. Some changes may be so critical that the they can be classified by type as eliminating defects,
design is unfrozen to add the crucial functionality, improving performance, or changing functionality.
regardless of the phase of development. Second, changes can be classified as required or
optional. Third, change can be classified by priority
as emergency, mandatory with a required end date,
mandatory with an open end date, or low priority.
Change Management Usually, eliminating defects is a required emergency,
Procedures while changing functionality is required mandatory
maintenance, and improving performance is optional
Change control management is in effect from the
and might have any priority.
time the work product is accepted as complete until
Knowing the change request classification deter-
the project is retired. First, baseline work products
mines whether it is subject to change control or not.
that are to be managed are identified. A baseline
Emergency changes usually circumvent the change
work product is a product that is considered com-
control procedures in that the activities might all be
plete and that is the basis for other, current work by
followed but they are documented after the change is
the project development team. A baseline document
complete. All other change types should be required
would be, for instance, the functional requirements
to comply with change controls.
specification after it is accepted by the user.
For example, changes to functional requirements
A history of change request file actions for a func-
can occur at any time, but once the functional
tional specification are listed here as an example.
requirements specification is approved, it is frozen
1. Create Open Request until the application is operational. Changes are sub-
2. File Impact Statement ject to change control: they are added to a change
3. File Approval of Schedule and Cost signed request list for future consideration unless given an
by User/Owner emergency designation.
Application Change Management 743
Project # _ _ _ _ _ _ _ _ _ _ _ _ __
Project Name _ _ _ _ _ _ _ _ _ _ _ __
Inittiator _ _ _ _ _ _ _ _ _ _ _ _ __ Date _ _ _ _ _ _ _ _ _ _ _ _ __
Department _ _ _ _ _ _ _ _ _ _ _ __ Request # _ _ _ _ _ _ _ _ _ _ _ __
Description of Change
Class of Change
Emergency
Mandated
Enhancement
Other
Initiator Date
A procedure for change control (listed below) 2. Project manager and SE develop an impact
requires that a formal request for a change is sub- statement. At this time, the project manager's
mitted by the user to the project manager (PM). Check List is used to identify all work
actions and changes relating to the request.
1. User sends the project manager and owner (if 3. The Change Request is discussed with the
different person) a Change Request form (see User/Owner to establish priority, schedule,
Figure 18-4). and cost changes.
744 CHAPTER 18 Change Management
4. Agreement is formalized and User/Owner control process. Summary reports by project of the
approval of schedule and cost changes is changes over a given period, or comparing periods
obtained. (e.g., a current period compared to the same period
5. Using the impact statement, application and last year) can be developed. Three such reports are
all related documentation are changed. shown as Figures 18-7 through 18-9 for total cost
Implement the change. As tasks are com- by type, cost and schedule impacts, and change
plete, check off the task on the project man- requests, respectively.
ager's Check List.
6. User/Owner approval to close the request is
obtained and the request is closed.
Historical Decision Logging
At the beginning of the project, the project manager
The PM and SE define the schedule and cost and SE decide to use tools to store the decision
impacts of the change (see Figure 18-5). The process. This means that either electronic group
changes are then discussed with the user. Based on meetings are used or that a written version of meet-
the negotiation with the user, the change is assigned ings and decisions is maintained and stored in word
a priority for action, and the cost and schedule are processed form. With electronic meetings, the elec-
changed. tronic transcripts are maintained. With manual
The request, expected date of action, schedule recording, the old version is updated and renamed
change, and cost increments are added to a project when a document changes. For instance, functional
history file. The changes may be monitored by a specifications for ABC might be named ABCFS-
Change Control Clerk, a person charged with mmddyy, where ABC is the company, FS abbreviates
maintaining project history and change control Functional Specification, and mmddyy is the date.
records, and with issuing a monthly change control The date portion of the name would change for every
report. A Change Control File contains all requests, major change of the document. The change man-
correspondence, and documentation about changes. agement procedure in the next section would be
An Open Change Request is created when the followed.
request is made and a change number is assigned.
The open change request stays on file until the
request is completed, closed, and reported.
Documentation Change
As the change is made, affected items are up- Management
dated, including the appropriate documentation,
Documentation changes should be identified by a
code, training, and so forth (see Figure 18-6). A proj-
change table of contents at the beginning of each
ect manager's check list is used to check off required
document. The change table of contents includes the
actions. The new documentation is filed with the
effective date, affected sections of the document, and
Change Control Clerk who distributes it to all inter-
a summary of the change (see Figure 18-10). The
ested parties.
purpose of the change table of contents is to sum-
The completion date for the change is entered in
marize all changes for the reader.
the Change Control File. The change is identified as
Changes should be redlined in the text to iden-
closed in the next status report and the open request
tify the changed portion. If the old information is
is removed from the Change Control File.
important, it may be moved to a footnote, dated, and
Depending on the organization, the IS executive
labeled as a previous version. An example of this
might want to track change requests for projects to
type of documentation change is shown in Figure
identify success in meeting requests. Overall costs of
18-11. Keep in mind that you also keep the old ver-
changes for a year are used as one indicator that an
sion of the document for history.
application is a candidate for either retirement or
reengineering. In such cases, both costs and volumes
of change requests are tracked through the change (Text continues on page 749)
Application Change Management 745
Project # _ _ _ _ _ _ _ _ _ _ _ _ _ __
Project Name _ _ _ _ _ _ _ _ _ _ _ _ __
Request # _ _ _ _ _ _ _ __
Impact
Person Business
Type Cost Days Days Budget Control
A. Initiation Date
B. Request #
C. Amount
D. Approval Date
E.
F.
Total
Scheduled Actual
Completion Completion
Initiated Date
Analysis Date
Development Date
Testing Date
Implementation Date
Comments:
Initiator Date
Project # _ _ _ _ _ _ _ _ _ _ _ _ _ __ Date _ _ _ _ _ _ _ _ __
DEVELOPMENT
1. QAlDocumentation Review
2. Update Source Document(s)
3. Update Baseline Document(s)
4. Update Program Specifications
5. Revise Code
6. Update User Documentation
7. Update Operations Documentation
8. Other: _ _ _ _ _ _ __
IMPLEMENTATION
5. Unit Testing
6. System/Regression Testing
7. Interface Changes
8. Operations Changes
9. Other: _ _ _ _ _ _ __
Comments:
Initiator Date
PROJECT-TO-DATE
A B C D E F G Total
Application Name: # Cost # Cost # Cost # Cost # Cost # Cost # Cost # Cost
2. Securities Transfer 17 - 2 - 19
A. Requirements/Design
B. Application Programs/Testing
C. Documentation
D. Hardware
E. Purchased Software
F. Interfaces
G. Application Support
Cost in thousands
Project Name S P A D 0 C S P A D 0 C S P A D 0 C
1. Branch Pilot - - - - - - 6 1 4 1 1 3 64 1 51 12 25 26
2. Securities
Transfer 3 1 2 - 1 1 22 1 18 3 6 12 22 1 18 3 6 12
3. Settlements 16 9 7 - 3 4 16 9 7 - 3 4 16 9 7 - 3 4
Total 19 10 9 - 4 5 42 11 29 4 10 19 102 11 76 15 34 42
LEGEND:
S Submitted
P Pending
A Approved
D Disapproved/Cancelled
o Open
C Completed
CHANGE PAGE
The settlements system uses relational database design techniques and fully normalized data entities. 1 The database
design is fully documented in Figure 2-1. The diagram shows the 17 entities used in settlements processing and the
relationships between them. Each entity and its descriptive attributes are fully described in the data dictionary attached as
Appendix 1; they are also available on-line through both IEF, the CASE tool being used for the application, and Project-
Notes, the on-line help tool.
Prior to January, 1994, a non normalized, relational approach to the data was used. This resulted in a loss of data
integrity that necessitated strict enforcement of relational theory to comply with audit requirements for the application.
Is the maintenance
cost high?
Does the
software Revise existing code
work?
Reengineer
and
rebuild
application have a high maintenance cost? If the minimal coupling techniques. For minor deviation
maintenance cost is low, the answer is no; then do a from the object method, individual modules or
simple revision. If the answer is yes, immediately object types are reengineered to bring them into con-
restructure the parts that do not work, and reengineer formance with object tenets. For major deviation, the
the entire application as part of on-going work. application is reengineered and redeveloped using
object techniques.
Reengineering
Reengineering is the analysis and design of an CONFIGURATION _ _ _ __
existing application to bring it into conformance ~ANAGEMENT _ _ _ __
with a methodology. When the application conforms
to a methodology, it is rebuilt. To reengineer pro-
gram code, the code first must be structured. Code
Introduction
restructuring can be done by automated tools. The In the mainframe world, one disk storage device can
restructured code from all programs in an applica- hold 10,000 or more different data files; large proj-
tion is entered into a CASE tool with reverse engi- ects develop hundreds of program modules every
neering capabilities. year; and programmers may manage several differ-
Code restructuring also can be done manually. If ent versions of code modules at one time. To support
no CASE products are used, the code is analyzed and multiple users across different platforms might
the underlying data and process structures are require multiple operational versions and variations
mapped into a methodology. If Information Engi- of code modules, and they all have to be maintained.
neering is used, for instance, an entity relationship Configuration management is the identification,
diagram (ERD) and a process data flow diagram organization, and control of modifications to soft-
(PDFD) are first developed for each program. Then, ware built by a programming team. Code library
the diagrams are consolidated across programs to management software provides a means to identify
develop application ERDs and PDFDs. A data dic- and manage the baseline for program code modules.
tionary to document diagram contents is developed. The baseline is the official version of a code mod-
The ERD is normalized and compared to the auto- ule that is in production use at any time. Two types
mated data to determine the extent of deviation from of code libraries and the application types they sup-
the normalized state. If the denormalized state was port are discussed in this section. Derivations, which
for performance purposes (this is an example of the identify each module's history, are included in the
importance of a historical file of design decisions), discussion.
then problems with data integrity resulting from the Configuration management addresses problems
denormalization should be noted for correction. originally present in large COBOL applications but
Finally, the detailed process diagrams are used to are equally useful for the more complex environ-
develop a process hierarchy diagram. The hierarchy ments of object and distributed software. A pro-
diagram is matched to the real organizational func- grammer might keep several copies of a program
tions to determine the extent of application function and personally track which is in production at any
redesign required. one time. The problem with individual programmers
If the methodology is object-oriented, the code maintaining their own copies is that eventually their
modules are classified by object type and function. multiple copies will diverge and knowing which is
If multiple objects call a function, it is classified the most current can be a problem. Trusting individ-
as reusable and set aside for further analysis. After uals to be good librarians is asking for errors.
module classification, the extent to which the Assume next that one official version of programs
code matches a true object design is determined. exists. If several people are performing maintenance
Reusable modules are evaluated to ensure that they tasks on the one version of a program, a high prob-
perform single functions, hide information, and use ability exists that the changes of one person will
752 CHAPTER 18 Change Management
interfere with the changes of the other person. rounding error occurs in computing interest, the
Either the changes of one will be cancelled by being error is traced backward through the development
overwritten by the other, or one person will have to software to find the problem. The program is
wait while the other makes the changes. Both situa- checked first, then the compiler, then the operating
tions lead to delays and are error prone. system, and so on. Let's say, for instance, that a
In the complex world of distributed systems and new version of the compiler was installed one
multiple hardware/software platforms, different ver- week before this module's creation, and that, upon
sions of the same software might be present. The inspection, the rounding algorithm used only
only differences might be to accommodate platform allowed four decimal places to real numbers. If more
idiosyncrasies, but such differences imply multiple than four places are needed, a new compiler would
versions of software that can cause maintenance be required.
problems. When a general change is made, somehow The difference between a load module and joint
it must be verified as being made to all versions for memory resident work unit is in the dynamism of the
all platforms. Specific changes for each platform processes. A load module is a compiled version of
must also be accommodated to allow fixing of bugs one or more source code modules that have been
or changes that only affect one type of hardware. compiled and link-edited together, forming the load
Configuration management that consists primar- module. Compilation translates a module from
ily of code library management software plus man- source code to object (assembler) code. Linkage
ual procedures supports both single and multiple editing resolves references to other modules by
versions of programs to control for different plat- replacing Call references with relative memory
forms, evolving functionality, and debugging of soft- addresses, thus joining related modules for process-
ware changes. ing as a single work unit (see Figure 18-14).
A joint memory resident work unit is a series of
load modules that work together in a dynamic, real-
time environment. Linkage editing creates static
Types of Code Management modules that are fixed until the next linkage edit
process. In real-time application environments, one
The most common code management procedure is
goal of the procedures is to relieve the need to freeze
the creation of derivations. The two code manage-
specific module references until they are needed in
ment types are for versions and variations. They can
operation. This liberates programmers from the link-
all be supported in the same software library or can
age editing process but can create chaos when an
be in separate libraries. Each type serves a differ-
error occurs and must be traced. Both situations
ent purpose.
require maintenance of derivations.
Recording of derivations requires precise identifi-
cation of the software, option, code inputs, respon-
Derivation
sible person, and date that a load module was created
A derivation is a list that identifies the specific ver- (see Figure 18-15). The level of detail for derivations
sions of multiple modules that were linked to create should match each process a module undergoes from
a load module or joint memory resident work unit. source code to load unit. This means that if the trans-
The purpose of a derivation is to allow tracing of lation is from source code to load unit, there are two
errors that might be due to vendor software. All soft- derivations. If the translations are from source to
ware used to create a load unit are specifically iden- object to load unit, there are three derivations. All
tified with vendor, version, and last installation date. software used in creating the derivation is recorded,
The sample shown in Figure 18-13 identifies specific including the compiler, linkage-editor, and so on,
platform, operating system, compiler, for crea- and their versions. Derivation maintenance provides
tion of a work unit, and the dates of the creation of an audit trail for software and is the only way that
each stage. If a problem were found, for example, a errors can be guaranteed to be traceable.
Configuration Management 753
Comments:
Program Source
Code
Module 2
Compiler
Software
Load
Module
code. The disadvantages are that loss or corruption changes. To create the new file, you save the old file
of the original also affects all deltas, and that delta with a new name. Renaming modules is necessary to
references based on code line numbers can lead to create a permanent version of the program with
errors when the original changes. deltas incorporated into the saved version. Maintain-
Many software librarians and operating system ing many renamed versions can cause errors in
editors work on the delta version principle. For remembering the most current version, too.
instance, the Unix editor maintains delta versions of
changes to text files, which includes program code.
Variation Storage
Using line numbers as the reference point, the origi-
nal is stored. As changes are made, changed lines are Variations are alternative, interchangeable program
kept plus new line numbers are appended in a delta modules created for multiple environments or pur-
file. When the file is referenced, the original is poses. For instance, you might create an IBM PS/2
loaded into memory, then the deltas are applied version of a program and a Novell Netware 386 ver-
until the memory version reflects all changes. sion of a program. The functionality is the same, but
When using a delta version, then, it is important specific modules are different to support the specific
to create a new file periodically to save storage and hardware/software platform.
processing time for delta overlays. This minimizes Variations in a COBOL environment, for in-
the extent to which you are making changes to stance, might have a different interface for users in
Configuration Management 755
Program
Source
Code ~
Edit session~
...---~---
Add line 23
Change 123 /s/ses Delta 1
.
Save
Edit Session #2 1
Delete 15-20
Change 342/s/es/
Save .. Delta 2
Variation 1 Variation 2
Common
Program
Source ~
Code
r / ~ ,
Compile/ Compile/
LinkEdit LinkEdit
,
Load Module Load Module
Variation 1 Variation 2
rate that by the new century we will routinely the face of the other participant(s) and the contents
use many of these technologies at work, if not at of the board simultaneously. By removing the limi-
our homes. tations of both time and geography our concept of
Media space technology allows several partici- being there is altered. By removing these limitations,
pants to sit on opposite sides of a clear glass board clear board technology facilitates group work. This
display that has electronics imbedded in it. The technology was developed, in this country, at Xerox
board can display computer images, text, and PARCo
graphics as well as reflect hand-drawn notes and A different type of product provides a text-based
graphics of the meeting participants. The most communication environment that supports group
effective use at the moment is between two people passing of messages with storage of reader com-
who both have clear access to the board. Clear ments. Such a product, Notes,z provides an e-mail
boards allow people to see both the work and the feature with the capability of user-built discussion
co-worker, minimizing attention shift time. At the forums and other data-sharing features. These prod-
moment, the technology requires the people to be ucts allow the development of decisions, history of
co-located, that is, in the same room; but the inten- the process, and easy sharing of information within
tion is to provide video conferencing capabilities and between work groups.
using clear boards that are mirror images, thus sim-
ulating the face-to-face experience with the added
electronic board interface. Thus, the user sees both 2 Notes® is a product of Lotus Development Corp.
758 CHAPTER 18 Change Management
state of the application. A document table of con- Baecker, Ronald M., ed., Groupware and Computer-
tents summarizes all changes and the parts of the Supported Cooperative Work: Assisting Human-
document affected by each change. Similarly, soft- Human Collaboration. San Mateo, CA: Morgan Kauf-
ware documentation is kept in derivations to sum- mann Publishers, Inc., 1993.
marize the actual software and steps used to develop This book reprints groupware articles from periodi-
cals, proceedings, and edited texts that might not
a load module or work unit. Configuration manage-
otherwise be accessible to a reader.
ment is the use of software code libraries to manage
Lientz, B. P. and E. B. Swanson, Software Maintenance
the official, operational code modules of an applica- Management: A Study of Maintenance of Computer
tion. Delta version and variation management are the Application Software in 487 Data Processing Organi-
principle techniques. zations. Reading, MA: Addison-Wesley, 1980.
Identifies the applicability of the 80-20 rule in the
application life cycle with this study of software
REFERENCES ____________ maintenance in business organizations.
Mantei, Marilyn, and Ronald M. Baecker, eds., Proceed-
Babich, Wayne A., Software Configuration Management: ings of CSCW '92: Sharing Perspectives. NY: Associ-
Coordination for Team Productivity. Reading, MA: ation for Computing Machinery, 1992.
1986. This annual conference discusses trends and research
Baecker, Ronald M., ed., Groupware and Computer- in computer-supported cooperative work (CSCW).
Supported Cooperative Work: Assisting Human- The proceedings of the most recent conference iden-
Human Collaboration. San Mateo, CA: Morgan Kauf- tify many emerging technologies that will alter the
mann Publishers, Inc., 1993. way we work.
Collofello, James S., and Jeffrey J. Buck, "Software
quality assurance for maintenance," IEEE Software,
September, 1987, pp. 46-51. KEy TERMS _________
Figlar Consulting, Inc., "Automating the reengineering
process," presented to New York City Data Adminis- baseline load module
tration Management Association (DAMA), May 21, boilerplate media space technology
1992. change control clerk memory resident
Ingram, Ray, "Application reengineering for productivity, change control file work unit
performance, and cost effectiveness," Course Hand- changes minor modifications
out, Multi-Soft, December 10, 1991. charge-in open change request
Lientz, B. P. and E. B. Swanson, Software Maintenance charge-out program template
Management: A Study of Maintenance of Computer code library proj ect librarian
Application Software in 487 Data Processing Organi- compile read only module
zations. Reading, MA: Addison-Wesley, 1980. configuration rebuilding
Martin, James, Information Engineering, Vol. 3: Design management redlining
and Construction. Englewood Cliffs, NJ: Prentice- delta reengineering
Hall, 1990. delta file restructuring
Nash, Kim S., "Whipping worn-out code into new derivation reusability
shape," Computerworld, August 17, 1992, p. 69. frozen specification reusable module library
hypermedia reusable module
hypertext reverse engineering
BIBLIOGRAPHY ________ librarian variations
linkage edit version
Babich, Wayne A., Software Configuration Management:
Coordination for Team Productivity. Reading, MA:
1986. EXERCISES _____________
Babich is a recognized al!-thority on the use of
different types of libraries for configuration 1. Delta Insurance Company has a policyholder
management. subsystem that is causing them fits. Over the
762 CHAPTER 18 Change Management
years, the application evolved from using fixed 4. How can program templates reduce code
length, multirecord type files to using a hierar- created?
chic database to using relational database. The 5. Which methodologies are best suited for ,
programs did not change much, but the data reusable libraries and program templates?
structures changed radically. Program code was Why?
patched to provide for the new data structure. 6. What is the significance of I-CASE product
The amount of people-time allocated to policy- recognition of design fragments?
holder maintenance grew 15% per year over the 7. Discuss the change management procedure
last five years and is now costing as much per recommended for applications undergoing
year as it did in 1980 to develop the original development.
application. No one ever considered reevaluat- 8. Why is it important to have a baseline product?
ing the subsystem for redevelopment, but they What happens to a baseline when the product
would like to now. Upon inspection, the docu- changes?
mentation was found to be up-to-date and 9. Write a job description for a Change Control
includes flow charts and data flow diagrams. Clerk.
There are no current diagrams of the data struc- 10. Describe the life cycle of a change request.
ture. There are also no historical files of deci- 11. What types of reports are useful to managers in
sions or of changes. What should the company tracking maintenance requests? '
do to get this application in order? What type( s) 12. What is the purpose of renaming documents
of maintenance should they consider for the next when major changes take place?
set of changes? 13. List the four types of maintenance actions that
2. Discuss the ethics of group work tools. If a his- can be taken. Discuss the reasoning process for
tory is kept, does it violate anyone's privacy? deciding which action to take.
What issues are involved in privacy versus open 14. How is reengineering done in a manual
access to information in group work? Is there a environment?
right solution to these issues? 15. What is a code library? What are the variations
3. Discuss the implications of group work tools for in how a code library works?
global organizations. If you consider cultural 16. When a delta management system is used, why
differences in, for instance, comfortable distance do you periodically need to create a renamed
between acquaintances, how might cultural dif- copy of the code?
ferences impact the use of group tools? How 17. Describe the contents of a derivation. Why is
might companies and cultures need to change to each item necessary?
avoid misunderstandings with new tools? 18. Compare code versions to variations.
19. What is chargeout and why is it important?
20. What is the purpose of collaborative work
tools?
STUDY QUESTIONS _ _ _ __
1. Define the following terms:
delta
derivation
frozen specification
restructuring
rebuilding
variation
* EXTRA-CREDIT QUESTIONS
1. Research collaborative work tools and develop a
reengineering version 15-minute presentation to the class about tools
reverse engineering on the market, or tools that should be available
2. Why is designing for maintenance important? in the next five years.
3. Describe how determining reusability of a 2. Get a sample demonstration copy of some
module works. emerging software that can be used for configu-
Study Questions 763
ration management, group work, decision 3. Develop the pros and cons of keeping a decision
history tracking, and so on. Show the demon- history. What legal or governmental require-
stration to the class and spend some time brain- ments might impact the decision to keep a his-
storming about how the product might change toricallog? What political and organizational
work practices. issues impact the decision?
C HAP T E R 19
SOFTWARE
ENGINEERING
AS A CAREER ----------------------,.. . . . . . . .. r - - I I
764
Careers in Information Systems 765
For the last decade, the radical changes in appli- mentioned in each section, they imply years of dif-
cations development coupled with changes in the ferent, changing experiences. Many people simply
types of applications businesses build are resulting do the same thing over and over; this is not gaining
in a split of duties in the development environment. experience.
The first type of career is more technical. This
SE will build ever more complex state-of-the-art Junior
applications using new technologies. The second
Ajunior staff member is directly supervised, but is
type of career is less technical. These SEs work as
expected to work on his or her own on some aspects
liaisons to user departments and act as chauffeurs for
of a job. This is an entry-level position. Juniors are
computer usage to assist users who are not inclined
expected to have basic skills and ability to find
to become computer literate themselves. Within a
information to enhance skills. They are in a learn-
generation, most business people will be computer
ing mode most of the time. The time you might
literate, and these jobs will evolve to developing and
expect to perform in a junior-level position is about
managing DSS and EIS for managerial staff.
two years.
The issue over whether to get a degree in CS or IS
is not too important from an employability perspec-
Intermediate
tive. There are careers for both types. Both types are
useful and valuable to adding to our store of knowl- An intermediate staff member works independently
edge about how to build applications. In this chapter, most of the time, requiring direction on some activ-
first job levels and types of jobs available are ities. A mid-level person possesses a range of skills
defined. Then, an approach to defining a first job (or and experience but is still in a learning mode much
next job if you are already employed) is developed. of the time. Starting intermediate people have two
Finally, means to maintaining your competence in to four years of experience. The average time at the
the ever-changing world of IS and information tech- intermediate level is from two to five years.
nologies are presented.
Senior
Seniors work unsupervised most of the time; they
CAREERS IN _ _ _ _ __ possess a wide range of both job and technical
INFORMATION _ _ _ _ __ experience that is used to train and aid others.
Senior-level staff supervise others, depending on
SYSTEMS _ _ _ _ _ ___ the size and complexity of the project. Frequently,
senior-level jobs are generally a prerequisite to lead
Job opportunities in information systems can be
or specialist titles.
classified by level and job type. Job levels are gen-
A starting senior-level staff member has from five
erally classified as junior, intermediate, senior, lead,
to seven years of experience. Expect to stay at this
technical specialist, and manager. Each level is
level at least three years. Many people end their
defined in terms of how much supervision is pro-
careers at this level and stay on related projects
vided at the level and how much information and
throughout, becoming expert in both a technology
expertise the individual is expected to possess. Job
and an application type.
type identifies the nature of the work performed.
Lead
Level of Experience A lead person works on his or her own, performing
In this section, we discuss the job levels to which all levels of supervision. A lead person might also
you might aspire. The levels are junior, intermediate, be called a project leader. Project leaders are a
senior, lead, technical specialist, and manager. When step above seniors and aspire to managerial posi-
times in a level and starting years of experience are tions. The lead skill levels are similar to seniors,
766 CHAPTER 19 Software Engineering as a Career
Application Development
Application Development
Programmer The main application development jobs are pro-
Software Engineer (Includes Analyst
and Designer)
grammer, software engineer, and knowledge engi-
Knowledge Engineer neer. Keep in mind that there are entry-level
Application Support positions all the way through technical specialist
Application Specialist positions in many of these jobs. There is great
Data Admininstrator variety across development jobs depending on the
Database Administrator
AI Engineer hardware and software environments. Hardware
Consultant platforms include personal computers, workstations,
Technical Specialist and mainframes as well as equipment for communi-
Communications Analyst cations, robotics, process control, office automation,
Communications Engineer imaging, and microforms. In addition, application
LAN Specialist
Systems Programmer environments are increasingly diverse. The software
Software Support Specialist environment might include database, communica-
Staff tions, programming language, hypermedia manage-
Security Specialist ment, computer-aided software engineering (CASE),
EDP Auditor fourth generation languages, and expert system
Trainer
Standards Developer shells, just to name a few. With this diversity in
Technical Writing mind, we discuss application development jobs.
Quality Assurance Specialist
Technology Planner
PROGRAMMER. Programmers translate design
Other specifications into code modules that they design
Product Support and unit test themselves. Programmers might rotate
Product Marketing
End User Specialist duties between development and maintenance
applications.
Senior programmers perform other duties besides
FIGURE 19-2 Summary of IS Jobs programming. For instance, they participate in
analysis, design, or testing activities for the entire
application.
Beginning programmers specialize in one lan-
guage, while more senior programmers are conver-
move to specialist and lead positions. Job type defi-
sant and experienced in multiple languages. The
nitions are in the next section.
main generations of languages that apply here
include
2GL-Assembler
Job Type 3GL-COBOL, Fortran, Pascal, Ada, C, C++
Within a given level of experience, job type identi- 4GL-Focus, Lotus, Paradox, dBase, Oracle,
fies the job content and nature. Job types are dis- SQL
cussed in terms of the areas of specialization: 5GL-Lisp, PROLOG.
application development, application support, tech-
nical specialties, staff positions, and others. The jobs SOFTWARE ENGINEER. An SE performs the
are summarized in Figure 19-2. Keep in mind functions of analysts, designers, and programmers.
that these are representative of the specialities in Analysts define and document functional require-
large organizations; the smaller the organization, the ments of applications. Senior analysts also par-
more likely multiple skills are required of individ- ticipate in organizational-level IS planning and
ual staff members. feasibility studies. Designers translate functional
768 CHAPTER 19 Software Engineering as a Career
requirements into physical requirements of appli- lations of the Federal Reserve Bank as well as the
cations. These traditional titles still exist and various money transfer organizations, (e.g., Bank-
frequently are combined in the title analyst. Pro- Wire, Swift, NYCHA, etc.)
grammers develop and test code modules as dis- Frequently applications specialists are members
cussed above. SEs may do all three-analysis, of external standards setting organizations. In this
design, and programming-as well as acting as proj- capacity, the specialist is a liaison between his or
ect leader or project manager, as needed. The differ- her company and other companies in the industry.
ences are in job emphases. A junior SE would spend Standards are set by consensus development of what
most of the time programming, while a senior SE should be done and how to do it. The standards get
would concentrate more on planning, feasibility, highly detailed, for instance, specifying the number
analysis, and design. of characters in a header of a bank wire message and
the meaning of each character. The major skills
KNOWLEDGE ENGINEER. Knowledge engi- needed for this type job are communications-
neers elicit thinking patterns from experts for oriented diplomacy, technical application, and prob-
building expert and artificial intelligence systems. lem domain knowledge.
Knowledge engineers are similar in status to SEs,
but have specialized skills applying to AI problems.
Developing models and programs of knowledge DATA ADMINISTRATION. Data administra-
structures requires observation, protocol analysis, tors (DA) manage information as a corporate re-
in-depth interviewing skills, the ability to abstract source. In this capacity, data administrators help
in areas that are not areas of personal expertise to users define all data used in the company, identifying
make sense of reasoning and information needs, and the data that are critical to the company's function-
the capability to develop uncertainty predictions ing. DAs establish and maintain standards and
about the information and its accuracy with experts. dictionaries for corporate data. These on-line dic-
tionaries, or repositories, are used by on-line 'help'
software to provide users with data definitions as
Application Support
they are using a computer.
Application developers require expertise from a Once data are defined, a DA works to define and
number of different specialties in developing even structure subject databases for use by applications.
the most routine applications. The jobs that most They also track application use of data. For new
often support application development include project development, DAs work with the applica-
application specialist, data administration, database tion developers to locate data that is already auto-
administrator, artificial intelligence engineer, and mated, and with DBA staff to provide the application
consultant. These jobs are not all distinct and may group easy access to automated databases.
overlap with each other in many organizations; the
areas of overlap are most noticeable for consultants
who may do all of these specialties. This overlap is DATABASE ADMINISTRATOR. Database ad-
ignored for the moment for purposes of defining the ministrators (DBA) manage the physical data
essential skills of these support functions. environment of an organization. DBAs analyze,
design, build, and maintain databases and the soft-
APPLICATION SPECIALIST. Application spe- ware database environment. Working with DA defi-
cialists have the problem domain expertise that nitions of data, DBAs define physical databases and
allows them to consult to project teams for specific load actual information into them.
types of applications. For instance, a senior analyst A DBA works with application development
in real-time money transfer might split time between teams to provide access to already automated data,
domestic and international money transfer projects, and to define the specific database needs for infor-
overseeing compliance with all the rules and regu- mation to be automated.
Careers in Information Systems 769
ARTIFICIAL INTELLIGENCE ENGINEER. Ar- developers on a regular basis. Some of these special-
tificial Intelligence (AI) engineers work as consul- ties include communications analysts and engineers,
tants to project teams to define, design, and LAN specialists, systems programmers, and soft-
implement intelligence in applications. At present, ware support specialists.
AI is in its infancy and its use in applications is
sparse. Most AI work takes place as part of an expert COMMUNICATIONS ANALYSTS AND ENGI-
system development. AI engineers work with NEERS. Communications analysts and engi-
knowledge engineers to translate and test problem neers analyze, design, negotiate, and/or install
domain data and reasoning information in a specific communications-related equipment and software.
AI language, such as Lisp. As AI matures and its They are required to be fully conversant with com-
use increases, this position may move from a support niunications technologies and may work on main-
location to application development location in frame or PC-based communication networks.
organizations. Integration of voice, data, graphic, and video sig-
AI engineers have attained a higher level of nals via telecommunications networks is growing in
expertise than KEs. As AI experts, they participate in importance to every organization. Certainly, integra-
software and hardware surveillance, evaluation, tion of data and voice is commonplace. As the inte-
planning, and implementation on a company-wide gration levels of infotmation delivery increase, this
basis. As experts, they are usually involved in hir- specialty becomes crucial to organizational success.
ing decisions for other AI experts and KEs. To start in comrimnications at an entry-level
position, educational backgtound might be in
CONSULTANT. Consultants are jacks-of-all- electronics, engineering, applications, computer
trades and practitioners of all. The higher the number science, or telecommunications. To transfer into a
of years experience, the greater the knowledge communications-related position requires intelligent
is expected to be. The areas of expertise would positioning and career planning once you are within
likely include several of the job types discussed in the company.
this section.
Consultants are hired most often to supplement LAN SPECIALISTS. Local Area Network
staff or to provide exotic skills not available in- (LAN) specialists plan, oversee installation, man-
house. When hired because of exotic skills, they fre- age, and maintain local area network capabilities.
quently train the in-house staff during the work There is no essential difference between a LAN spe-
engagement. Consultants are expected to have cialist and a communications specialist except scale.
specifically identified skills when they are hired, and A communications specialist works with multiple
to apply those skills in performing the consulting networks including mainframes; a LAN specialist
engagement. works on geographically limited networks that are
Consultants are sometimes preferred to perma- comprised of personal computers (PCs).
nent hires because they get no benefits and do not The educational background can be in IS or CS
require raises from the hiring organization; they with a concentration in telecommunications. In addi-
already have the desired skills and need no career tion, many LAN specialists have certification by a
path planning; they have their own managers vendor, such as Novell, which certifies its engineers
and require less personnel-type managetnent. Con- as having basic knowledge as a Certified Novell
sultants are easier to hire and fire than full-time Engineer (CNE).l
staff, too. LAN administrator is an entry-level position in
many companies. A LAN administrator creates new
Technical Specialists
Other technical specialties are common in organiza- 2 Certified Novell EngineerTM is a trademark of the Novell Cor-
tions but do not always interact with application poration, Provo, Utah.
770 CHAPTER 19 Software Engineering as a Career
users, implements or changes security levels and application development staff with usage support for
codes, installs new versions of the LAN operating the product.
software, installs new versions of database or other System software support (SSS) programmers
LAN -based software, oversees the resources pro- and specialists work with systems programmers to
vided through the LAN, provides backup and recov- maintain the software provided as a shared resource
ery capabilities to the LAN, and manages the LAN for others in the company to use. For instance, in a
configuration. Troubleshooting the LAN when prob- LAN environment, an SQL Server might be used.
lems arise is a valuable skill that frequently quali- The SQL Server software is supported by an SSS
fies the individual for increasing responsibility person, while the network operating system (NOS) is
beyond an entry level position. supported by a systems programmer.
such as loss of disk drives or malicious tampering of liaison departments that must be consulted, and so
with data. on. Other companies provide loose guidelines with
checklists to be consulted to ensure that all needed
EDP AUDIT. EDP auditors perform accountabil- tasks are considered for inclusion in the project's
ity audits on application designs. Any application work plan. Both types require the ability to run meet-
that maintains legal obligations, fiduciary responsi- ings, obtain the standards' requirements, negotiate
bilities, or books of the company, must be able to between managers, and write accurate descriptions
recreate any transaction and trace its processing. of desired rules.
EDP auditors ensure that company exposure to Standards development and technical writing are
losses or law suits is minimized through good appli- related activities. A technical writer takes informa-
cation design. The design aspects evaluated by tion about software products, applications, or other
auditors are audit trails, recoverability, and security. information technology products and develops doc-
umentation to describe their features, functions, and
TRAINING. A technical trainer learns new tech- use. A technical writer needs to have good technical
nologies, vendor products, new language features, and nontechnical communication skills. The writer
and so on, then teaches their use to others in the uses the technical communication skills in talking
organization. Training might be done within a com- with and developing an understanding of the product
pany, or in a specialized training company, or as a being documented. He or she uses the nontechnical
consultant in a short-term assignment. communication skills in writing about the products
Training is often considered a temporary or rota- for a user audience.
tional assignment for people whose career path or
job assignments allow them to perform a staff func- QUALITY ASSURANCE. Quality assurance is
tion for some period. The thinking is that training is an IS function that performs quality audits on appli-
more easily related to current job assignments in an cation feasibility, analyses, designs, programs, test
organization when it is done by someone who is plans, documentation, and implementations. QA is
holding, or has recently held, such an assignment. usually functionally separate from the development
Teaching forces the trainer to organize thoughts, groups it is auditing; however, in a small company,
make presentations, answer questions, and develop QA may be an analyst's, or SE's, temporary assign-
good communication skills. Therefore, training ment.
assignments are one way to allow someone who is a The form of the audit differs by the product
valued employee, but who lacks good communica- being reviewed. A QA analyst is assigned to a
tion skills, to develop and practice those skills in a development project as it is initiated. He or she has
work setting that is not too threatening. little involvement until the first work products from
the development team are available. Then, as docu-
STANDARDS AND TECHNICAL WRITER. ments become available, the QA analyst reviews
Standards developers work with managers to them for consistency, completeness, accuracy, and
define what aspects of work they want to standard- feasibility. Any problems found during the review
ize, and to formalize the requirements into standard are documented in a memo to the project manager.
policies and procedures for the organization. The The problems must be responded to by either
most important skills for standards developers are explaining why the issue is not a problem or by cor-
verbal and written communications. recting the erroneous item.
Company standards vary in level of detail and As you can see from the description of this task,
breadth of activities covered. Some companies stan- QA is a natural adversary to application developers
dardize their complete methodology, providing since the QA analyst's job is to find fault with the
minute detail on all of the steps to developing a proj- work of the project team. QA work is usually
ect, guidelines on the tasks performed, required sig- assigned to senior staff who are respected enough to
natures and approvals for project work, detailed lists be listened to and tactful enough not to cause revolts
772 CHAPTER 19 Software Engineering as a Career
by the project teams. QA analysts need senior tech- versation and closing techniques, to effectively work
nical, communication, and problem domain skills to with a sales representative. All software, hardware,
perform a quality review. They need experience in and consulting companies have people to perform
all aspects of project development in order to know these functions. Usually, this job is for senior-level
how it should be done and where problems might people, but if you have a particular area of expertise
arise. At the same time, tact and skill at identifying and support in that area is needed, then you might
only critical issues is important. No one likes to be qualify for such a job without being a senior staff
told publicly they have made a mistake, even though person.
they might know intellectually that the project work
will benefit from the criticism. The QA analyst needs END-USER SPECIALIST. End-user specialists
to be sensitive to both the politics and the problems translate user requirements into technical language
identified. for developers to use. In some companies this is the
function of the systems analyst or SE. In other com-
TECHNOLOGY PLANNING. Technology sur- panies, there are end-user liaisons in the user depart-
veillance specialists monitor technology develop- ments to perform this function.
ments to identify trends, select technologies that are In summary, every company needs many differ-
appropriate for experimentation in their organization ent combinations of job characteristics in all depart-
and, eventually, champion the implementation of ments of the organization. The challenge to
new technologies in the organization. These senior graduates is to decide which aspect of the work fas-
staff are liaisons to the outside world and vendor cinates you most. The career is there for the mak-
community for the company. Junior-level staff in ing. To further your chances of a successful entry
technology planning might work with a senior per- into the job market, your undergraduate courses
son who guides the work, while the junior person should concentrate on core knowledge of application
does some coordination and technology monitoring. development, programming, database, and telecom-
munications. Then concentrate elective courses in
one or more specialties from the above array of jobs.
Other
Numerous other positions relating to ITs and IS
development are available for students of IS. Some PLANNING _ _ _ _ _ __
of these include product support, product market- A CAREER _ _ _ _ _ __
ing, and end-user specialist.
Defining your next job is the first step to determining
PRODUCT SUPPORT. Product support staff what to ask for when you talk to personnel recruiters.
work for an end-user group or vendor to provide You must have a goal that is fairly well defined yet
product-related technical expertise or other "hot- realistic for the job market you wish to enter. Once
line" support. In addition to technical knowledge you begin work, you need to know how to plan the
about the product( s) supported, the individuals next job, and so on. Also, one degree and job in IS
in this job require excellent phone skills and must does not qualify as a 'career.' Rather, continued
be able to talk nonjargon language to users with growth and development in depth and in breadth of
problems. knowledge is required. In this section, we discuss
how to plan your first job and extrapolate from that
PRODUCT MARKETING. Marketing support to plan your career. In the next section, we discuss
staff work for vendors to provide technical how you keep current to continue to grow as a pro-
information to sales representatives in marketing sit- fessional SE. As you read through this section, as-
uations. This type of job requires excellent commu- sess your job wants. The more honest you are about
nication and people skills, with some knowledge of your skills and desires, the more useful you will find
marketing tactics, such as narrowing focus of con- this exercise.
Planning a Career 773
assignments? In general, the larger the company, the What salary would you like to be making in five
more esoteric and specific your requirements can be, years? Target the five-year time frame because your
but there is no standard. Also, in general, the smaller first salary is relatively inelastic if you are not
the company, the more casual and broader the already working in IS. By inelastic, we mean that the
assignments. This means that a person defined as a salary range for new, inexperienced hires is rela-
programmer might have entirely different time allo- tively narrow: $28,000-$34,000 for undergraduate
cations depending on the size of the company. In a IS degrees, and $30,000-$38,000 for graduate IS
large company, a programmer will spend 40-60% degrees, in 1994; and the salaries are relatively
of his or her time coding and unit testing program invariant across industries.
specifications developed by an SE or designer. Take the midpoint of the range that describes your
Remaining time is spent in nonproject work such as situation and assess the ideal raises you might
reading manuals, attending meetings, learning, and receive to derive your salary in five years. If you
communicating about the work. In a small company, expect to double your salary in five years, you need
a programmer is likely to spend 20-40% of his or a compounded growth of about 15% annually to
her time developing the specifications with the ana- meet that goal. You might get 15% raises in consult-
lyst or SE, 20-40% programming and unit testing, ing, but it is unlikely anywhere else. Realistically,
and the remaining time in other activities. Which companies give regular raises that keep a third of all
scenario do you prefer? The larger the company, the salaries even with inflation. If you are in the top
more specialized and the narrower the job. Also, the third, you might qualify for merit increases which
larger the company, the more likely you will be might be 2-4% over the inflation rate. If you want
paired with a senior mentor who is responsible for a six-figure income within five years, then you
monitoring your progress. are either thinking of your own company, or are a
Think about how you like to learn new things. Do genius, or are unrealistic. It is nice to dream, but
you like to be given a book and an assignment for thinking of salaries requires hard reality.
completion? Or do you prefer to attend classes and The next nontechnical issue is the number of
have someone to answer your questions? The first hours you want to work. This is an ideal that you
learning approach is one used most by consulting might never actually reach, but each industry has dif-
and smaller companies. The classroom approach is ferent intrinsic demands about hours of work that
used more by large companies. should be considered. The normal work week is
Next, evaluate nontechnical features of a job, 40 hours in the United States. This time is spent from
including title, salary, working hours, autonomy, and Monday to Friday with few organizations requiring
travel. Title is a more important issue in some weekend work.
industries than others. For instance, in manufactur- In addition to the number of hours, which hours
ing institutions, being an 'officer' of the company is might also be important. There are two issues here:
significant. But in a bank, about 25% of the staff will flextime and shift work. Can you get up and maintain
be officers. Of this 25%, 60% will be assistant trea- a schedule that requires you to be in an office at a
surers, or the lowest level officer; 25% will be sec- fixed time every day? What if the hours are 7 A.M.
ond vice presidents; 10% will be some level of vice to 4 P.M.? How about 9 A.M. to 6 P.M.? If a company
president; and the remaining 5 % are executive vice has flextime, you choose the time of your arrival,
presidents or higher. The titles are more for external within limits, and work a regular seven- to eight-
prestige and to compensate for low pay than any- hour day once you are at work. Most companies in
thing else. If title is important, then, financial ser- large metropolitan areas use flextime to cope with
vices and consulting are the most status-conscious of the vagaries of traffic and transportation problems.
the industries listed. In contrast, a private con- You might consider a job in an industry that
sulting company might have two to five principals works at night. Do you mind shift work? Can you
and 200-300 consultants, and those are the only cope with a schedule that requires you to sleep dur-
two titles. ing the day? Keep in mind that you might be a night
Planning a Career 775
owl at college, but all of your friends will probably need to leave for months at one or two days' notice
get day jobs. Will night work shut you off from your in this environment. The rewards are commensurate
social life ? How important is that to you? with the sacrifices: The pay in consulting is the high-
The last time issue is overtime. Do you mind est after successful entrepreneurship.
overtime? How often is overtime acceptable? Could
you work for a company that expected a 60-hour
week even though the advertised required number of Define Features of
hours is 40? Can you deal with midnight phone calls
when you are 'on call' for application problems?
the Organization
Some companies will tell you that you are expected Even though this section is for defining features of
to work until the job is done, and if that means over- the organization, you are still assessing your needs in
time, then you work overtime. Can you live with ajob. In this section, you assess how 'hard' you want
such an agreement? If not, what are your time to work, how 'smart' you want to work, and how
requirements for work? If you cannot deal with any much ambiguity and stress you can cope with. To
overtime, you need to search for a low pressure, staff some extent you have already answered some of
job or a maintenance job that requires little or no these questions; they have not been phrased in just
overtime. If you can deal with overtime, then all jobs this way.
are open for you. The longest hours are usually in When you define how many hours a week, and
consulting, but most development projects in most what type of work you desire, you are, to some
companies end up requiring some overtime work. extent, answering the 'hard' and 'smart' questions.
Next, consider the extent to which you want to Several different hierarchies of organizations can be
work autonomously. As an entry-level person, you developed for you to position yourself in different
most likely will be coupled with a senior person who industries and different company types. The first
would be responsible for helping you with problems, hierarchy is based on industry. Based on several dif-
bugs, or other issues you are not sure how to deal ferent salary surveys over the last 10 years, a hierar-
with. But each company has its own levels of auton- chy of industries in average salary order is shown in
omy that its employees are allowed. Do you want Figure 19-3. This hierarchy shows that you are most
leeway in figuring out your own answers or do you likely to make the most money owning your own
want close supervision, at least for a while? In gen- company, and are most likely to make the least
eral, the smaller the company, the more autonomy money working in academia or nonprofit organiza-
you will be given, and the greater the breadth of the tions. This hierarchy also translates into a 'hard'
jobs you will be assigned. If you like working alone, work hierarchy. The amount of time and personal
then select a smaller company. sacrifice expected of employees is directly propor-
Finally, consider the amount of travel you want as tional to the amount of money paid. That is, the com-
part of your job. Be realistic. Travel is demanding, panies that pay the best expect the most. If you
rewarding, and wearing. It requires extreme organi- cannot stand stress and long work days, then remove
zation because once the plane leaves you cannot ownership and consulting from your list. If you want
return to the office for that forgotten piece of paper. the least possible stress and least possible work, tar-
It also demands family and personal sacrifices get your search in nonprofit, retail, government, and
because you are frequently on a plane during birth- academic organizations.
days and holidays. You may find that you want to Keep in mind that these are general rules of
travel for awhile and cut back after a few years. thumb at work here. All companies have positions of
After all, someone else is paying the bills. That is all types. The generalizations drawn here identify the
also an acceptable scenario, just be prepared for the majority of positions.
action when it arises. Several industries, especially A second hierarchy can be developed based
consulting, require significant travel and frequent on the position of a given company within its in-
temporary relocation for project work. You might dustry. Figure 19-4 shows one industry, soft drink
776 CHAPTER 19 Software Engineering as a Career
your old field, your starting salary should be 5-10% Lowest Salary Locations:
higher than new employees in the same industry. St. Louis
Last: Southeast and South
Define Geographic Location Based on Robert Half, International 1992 and 1993 Salary
guides and articles in Datamation, Computerworld and
Next, consider the ideal geographic location for you. The New York Times
You may want to stay near where you are from. That
is perfectly reasonable. If you want to live some-
where else because of weather, life-style, or some FIGURE 19-5 IS Salary by Location in the
other criteria, now is the time to choose where you United States
want to live and work.
In the United States, there has been a 30-year industry, like stock brokerage finance, then you need
migration toward the southern half of the country, to reassess your requirements to align more closely
but the jobs have not always followed. According with reality.
to salary surveys covering 1992-1993, the best pay- Security relates to the stability of the industry. For
ing and highest number of jobs are in Alaska. Both over 50 years, the United States had relative stability
New York City and California, traditionally high in industry, with only companies that had fallen on
growth, high-income areas, follow Alaska. Other hard times resorting to layoffs. Many companies
large, diversified-industry, metropolitan areas also (e.g., Chase Manhattan Bank and IBM) used to brag
top the list (see Figure 19-5). that they had never had a layoff in the company's
The lowest paying and lowest number of posi- history. The late 1980s and early 1990s changed all
tions are in the South and Southeast, particularly that. The recession during the early 1990s was
Florida. 2 The center of the country has not faired so deeper and longer than many since the Great De-
well either. In 1992, St. Louis and Philadelphia pression of 1929, and had the added problem of
graced the bottom of the salary list. 3 being worldwide in scope. Virtually every company
over $100 million in sales went through some
reassessment of company structure and size, laying
Define Future-Oriented Job off and eliminating millions of jobs. As we slowly
Components recover from that period, stability is an issue on
which we all share concern.
The last job-related components relate to job secu-
Financial success is one indicator of likely sta-
rity, benefits, and speed of advancement. You won't
bility. Companies that have higher percentages of net
use these until you are interviewing, but it is a good
income and profits compared to competitors are
idea to have some goals in mind for these job com-
more likely to be stable. But, at the moment, there
ponents when selecting companies and industries.
are no guarantees. If security is very important to
Also, if you are looking for security in a volatile
you, target companies that are successful relative to
their competition, regardless of the industry, and tar-
2 Based on Robert Half 1992 Salary Guide, and 1993 Salary get companies in relatively inflation-proof indus-
Guide, San Francisco, CA: Robert Half International, Inc. tries, such as office products.
3 Computerworld publishes an "Industry Snapshot" highlight- Benefits include vacation, retirement, medical
ing hiring trends in a specific industry in each weekly issue. support, dental support, child support, aging parent
778 CHAPTER 19 Software Engineering as a Career
support, and so on. The average starting benefits of this can be done at a global level in an ency-
include two weeks' vacation after one year, with clopedia. Next, look at an annual review (e.g., For-
some medical and dental support. Retirement bene- tune's '500'), and locate companies in your indus-
fits are in a state of flux. In 1993, most large compa- try(s) and geographic area. If the headquarters are
nies still offer retirement benefits, but the vesting not in the area, you will need further research. Read
period (that is, the time at which the money becomes company annual reports to locate subsidiaries and
legally yours), varies considerably. If you plan to their locations. Research companies and industries in
stay with a company a long time, vesting periods are each of your target states and metropolitan areas
moot. If you foresee some movement between com- by contacting Better Business Bureaus or Chambers
panies in your future, the vesting period becomes of Commerce. Read reference materials from trade
important to your consideration of how long you associations and the government to find target
might be tied to a specific company. companies.
The more progressive and larger the company, the The major warning in this search is to be realistic.
more likely they are to also have programs providing If you target, for instance, the chemical and phar-
some type of support for child or parent care. Decide maceutical industries to take advantage of your sum-
how important these benefits are to you and keep mer jobs in a small chemical company, the ideal
this information in mind when you are evaluating geographic area is the state of New Jersey. Every
companies. When you begin interviewing, use your major pharmaceutical company in the world main-
ideal benefits and security needs as one criteria to tains some sort of facility in New Jersey or New
separate the companies you are interested in from York City. At least four major pharmaceutical com-
those you are not. panies have regional or worldwide headquarters in
Speed of advancement may be an important fac- the area (i.e., Merck, Pfizer, Hoffman-LaRoche,
tor to you. Do you expect to be promoted every year, Warner-Lambert). If you target that industry and
assuming that you have exceeded all job require- begin looking in, for instance, Mississippi and
ments? Some companies have average time in grade Louisiana, you will find only small companies and
figures that they might share with you during the less than a handful of large ones.
interviewing process. In general, consulting compa-
nies have the most career mobility; they are also
organizations in which you either succeed or you Assess the Reality of Your Ideal
are out. Following this generalization, the industries
that pay more, expect more and reward more.
Job and Adjust
When you have found the population of companies
from which you expect to have a job, evaluate how
Search for Companies That Fit realistic your chances are. The realism of your prob-
able job is a function of industry turnover and the
Your Profile number of jobs of the type you want in the area in
The next step in targeting companies for jobs is to which you want to live. The IS profession has, on
map the geographic, job, and salary requirements average, 15% turnover per year. This means that
with your intended market area. For the target city or 15% of the people in IS professions change jobs
location, map your industry and company charac- every year.
teristics with those of specific organizations in the In addition, software engineering is the hottest
area. This step requires library searching of busi- growing job classification in the 1990s. 4 In the same
ness reference guides, Business Week, Forbes, For- book, Krantz rates computer systems analyst as sec-
tune, Money and other business magazines that
publish annual reviews of companies by industry. 4 The growth of software engineering is documented in Les
Look for the geographic region that matches Krantz' The Jobs RatedAlmanac, 2nd ed., NY: Pharos Pub-
yours, then research the industries in that region. All lishing, 1992.
Planning a Career 779
Analysts/Designers/
1. Estimate the number of entry-level jobs
Software Engineers 10-15%
available.
Project Managers 5-10%
2. Estimate the number of people competing for
the jobs. Operations 25-35%
3. Assess the ratio of available jobs to job EDP Audit 3-5%
applicants and adjust your expectations as 3-5%
Consulting
needed.
PC/User Support,
Help Desk,
Estimate Number of Entry-Level Jobs Information Center 3-5%
First, in assessing the number of potentially avail- Telecommunications 8-10%
able positions, the items of interest are the number of Data Administration 3-5%
people in IS jobs in an area, the percent of jobs of the
Other 3-5%
type that you want, the average turnover in IS posi-
tions' and the percent of entry-level positions. The
number of people in IS jobs is one which you must FIGURE 19-6 Estimated Percentage of Major
unearth through library and other research. Figure IS Jobs
19-6 shows the major IS job types and estimated per-
centages of people with that title. Average IS turn-
over is historically between 15% and 18%. The + (.05 x 8000)). Multiply this by the 2% to 5%
average number of entry-level positions varies from entry-level positions, and you have approximately
2% to 5% per year. When in doubt, use the conserv- 40 to 100 programmer and DBA entry-level posi-
ative numbers for your calculations. tions in the pharmaceutical industry in the New Jer-
The formula for computing the number of likely sey-New York area available in anyone year.
jobs is as follows:
Estimate the Number of Competitors
Number of IS jobs in area
x Percent jobs for your ideal N ext, evaluate your competition. The competition
x Average IS turnover is all graduating IS majors from local colleges and
x Percent of entry level positions universities. The number of people moving into and
= Number of available jobs out of the area are not considered here. According
to Computerworld, the average number of computer-
Let's look at an example. If you target the phar-
related majors is approximately 2.5% of entering
maceutical industry in the New Jersey/New York
freshman classes. s For our purpose, we will use this
area, there are approximately 8000 IS jobs. Using
the target jobs of programmer or DBA, the total
number of likely jobs is 2000 (i.e., (.20 x 8000) 5 See Computerworld, Vol. 27, #17, April 26, 1993, p. 105.
780 CHAPTER 19 Software Engineering as a Career
percentage to extrapolate to graduates. The formula in any way that you can exploit to your advantage?
used is: How willing are you to look until you find exactly
this job?
Total number of graduates from four-year
If there are only a few jobs, but you have your
institutions
heart set on one of them, plan your job campaign
x Percent of IS graduates
carefully. Why should a company hire you? List the
= Number of competitors for IS jobs
skills and attributes that make you one of the top two
For our example, the average number of gradu- candidates out of a field of hundreds. What unique
ates per year in the New Jersey-New York area is skills or personality characteristics do you possess
about 16,000. Multiply this by .025 and you find that you could exploit in this position? Make sure
there are about 400 other entry level people against your resume highlights all of your attributes and suc-
whom you will compete. Since pharmaceuticals cinctly summarizes all of your capabilities enough to
employs less than 30% of the IS people in the met- make a personnel representative want to bring you in
ropolitan area, your competition should be (400 x .3) for interviews.
or about 120. Keep in mind that companies are looking for pro-
fessionals who know how to work, team players who
Assess Ratio can get along in groups, and self-motivated, domain
specialists who know how to find information when
After computing the number of likely jobs and likely they need it. 6 What sells you to a company is your
competition, compare the two. If the ratio of jobs to potential and attitude about work. If you present a
applicants is high, begin your job search. If the ratio professional demeanor and appear competent, your
of jobs to applicants is low (i.e., less than 1:10), you probability of success increases.
need to reassess the realism of your goals. In the This section summarizes an approach to locating
example, there are 40 to 100 jobs in the industry and the ideal job by defining your ideal, then matching
job desired. There are about 400 total competitors it to realistic estimates of the number of likely jobs
for all jobs and, on average, about 120 competitors available in your target geographic area. Keep in
for the same jobs desired. In a growing economy, mind that the percentages of industry representation
there is a reasonable likelihood (about 83% proba- for jobs is constantly in a state of change and that
bility) of your getting the job you defined. In a weak you need to do some research to have accurate fig-
or falling economy, fewer jobs will be available and ures. Fifteen years ago there were no PC-support
the probability of success would be less. groups, PC software developers, or LAN managers.
Now, those and related jobs are the fastest growing
Adjust your Expectations for an segments of IS professions, just as software engi-
Unfavorable Ratio . neering is the largest growth position in IS.
uct announcements and introductions a week, the systems, especially jobs of software engineers. You
field is everchanging and is changing at an ever- are the expert in the deployment of new technologies
increasing rate. Change is a way of life. You, as a for your company. As the expert, you must learn
professional SE, must also change and grow to con- where and how to find information about any subject
tinue to be a valued employee of a company. In this required. As the expert, you must try to develop
section, we discuss how to develop as a professional some level of expertise in many fields that are
through educational, professional, and other types of not your specialization. In short, you should try
organizations. Eventually, you need to develop a to become a jack-of-all-trades and an expert of
'spiral' approach to your knowledge in which you several.
are constantly building on what you have already
learned to both reinforce and fix old knowledge
more strongly in your mind, and to add nuances and Professional Organizations
new information that broaden the scope of your One method to provide you continuous learning
knowledge. experiences while having fun at the same time is to
participate in professional organizations. Every
Education organization has conferences or conventions at least
annually if not more often. Every specialty has its
As a novice in IS, an undergraduate degree is suffi- own organizations or special interest groups (SIGs)
cient for most entry-level positions. If you aspire to as part of a larger, general group. You should seek
managerial or technical specialist positions, how- to be on panels, present papers, or simply partici-
ever, you should consider obtaining an MS or MBA pate in at least one conference or convention each
in either computer science or IS, depending on how year. Many companies pay for their employees to
technical you wish to be. attend such conventions because it is in their inter-
The undergraduate degree gives you basic knowl- est to have you remain current, too.
edge about the field and a quick survey of theory in Professional organizations are good for a variety
developing applications and programs. The empha- of personal goals: keeping current, knowing what
sis in undergraduate programs is on providing both other companies are doing, and developing a net-
a skill set to get you a job and a theoretical basis for work of friends for future job possibilities. It is not
continued learning in the field. The graduate pro- necessary to belong to every organization; rather,
gram emphasizes decision making, problem analysis you should pick the one that maps to your goals most
and solution, and theory of information systems closely, provides the literature you most want to
more. The entry-level positions of people with keep current with, and is most active in your geo-
advanced degrees is somewhat higher than that of graphic area. Each organization is discussed in terms
entry-level undergraduates. The normal masters of their membership profiles, types of professional
entry-level position is at an analyst or a first line activities sponsored, and chances for involvement
manager level. of industry professionals. Some of these organiza-
Graduation from a degree program is not suffi- tions are profiled in this section.
cient to maintain your growth in the ever-changing
field of information systems work. New technolo-
General Technical Organizations
gies, new ways of working, new methodologies,
and new organizations all demand that you main- There are many worthy professional organizations
tain some currency in the field. Many politicians in which SEs can participate. Two of the oldest
and educators are calling for a learning-for-life and largest are featured here: ACM and IEEE Com-
approach. Using this approach, you take formal puter Society. The addresses for these and other
degrees and supplement them with continuous edu- organizations are included in Figure 19-7 for your
cation throughout your life. The learning-for-life convenience in contacting them for membership
approach is appropriate to any job in information information.
782 CHAPTER 19 Software Engineering as a Career
provides basic research papers on specification, detail here. There is significant overlap between the
design, development, maintenance, measurement, interests of all of the organizations, and there is room
and documentation of applications. TSE is one of the for you in one or more of them. Keep in mind that it
best publications for early discussion of emerging is not necessary to join all of the organizations, but
techniques. Its research orientation may make it 'too one or two help you maintain current knowledge of
technical' for some readers. KDE is a similar publi- IS developments.
cation aimed at applications' methodologies, storage
techniques, AI modeling, and development.
IEEE is subdivided into technical committees User Organizations
(TCs) which participate in industry standards devel-
opment, conferences, and publications. There are In addition to industry organizations, there are many
over 20 hardware, software, and interdisciplinary professional user organizations that are sponsored by
TCs. The software TCs, for instance, include soft- vendors for their users, or by interested individuals
ware engineering, computer languages, data engi- who share common interests.
neering, operating systems, real-time systems, and
security and privacy.
Hardware User Organizations
Conferences are a major TC activity with each
group sponsoring one or more major conferences Hardware user organizations are vendor-sponsored
each year. The TC on software engineering coordi- groups that are convened for users to share their use
nates the International Conference on Software of the hardware, develop solutions to problems, and
Engineering (ICSE), which attracts about 1,500 to provide guidance and requests to the vendors for
worldwide participants annually. The major topic future services or capabilities. The organizations are
areas of ICSE include design, modeling, analysis, all very active and use volunteers from using orga-
and application of software and software systems. nizations whose participation is sponsored by their
The conference usually includes a 'tools fair' which companies. All major vendors sponsor user groups,
provides vendors an opportunity to feature proto- including IBM, DEC, Unisys, CDC, Honeywell,
typing languages, CASE environments, language AT&T, Sun, Apple, and so on.
generators, and other software development sup- IBM, for instance, has two such user organiza-
port tools. tions: GUIDE and SHARE. GUIDE is an organiza-
IEEE is more actively involved in standards tion of several thousand business and government
development than most other organizations. For installations whose use of computers is primarily
instance, the 802 committee is the sponsor of many for business applications, such as transaction pro-
LAN standards in this country. Subcommittees cessing or decision support applications. SHARE
define, for example, the 802.3 ethernet standard. Par- was founded by scientific businesses to support their
ticipants in the technical standards committees are special needs. Over the years, the missions of the
volunteers who are sponsored by their business two organizations have come to be similar, but the
organizations to participate in the intensive and time- two organizations remain distinct. Each organization
consuming, but personally rewarding, standards def- sponsors conferences and workshops several times
inition activities. each year. The conventions are like any professional
Like all of the professional organizations, convention, composed of general sessions in which
IEEE strives to involve all of its members in activi- presentations on topics of interest are made, and
ties. Almost all of the work is voluntary and working sessions where commitments to work on
might include local chapter participation, or par- projects or to present at future meetings are made.
ticipation in national conferences, publications, The working groups are completely voluntary and
or organizations. first time participants are recommended to attend the
There are many other equally rewarding organi- meetings of many working groups to get a feel for
zations listed in Figure 19-7 that are too numerous to what they do.
784 CHAPTER 19 Software Engineering as a Career
making the instructor's job one of personality man- tion is one method to prove to the world that you
agement rather than class interaction. indeed are expert in some area. You take an exam
which is given once or twice each year, and, if you
Research and Academic Organizations pass, you obtain a certificate that you know a partic-
ular technical area. The major proponents of gen-
The last type of organization in which you might eral IS accreditation are professional organizations,
participate focuses on research and teaching of IS- such as DPMA, which sponsors the exams for Cer-
related subjects. Academics have their own conven- tified Data Processor (CDP), Certified Systems Pro-
tions that may serve as a forum for debate and pre- fessional (CSP) and others.
sentation of the latest techniques and research on A different type of accreditation is managed and
emerging areas of interest. They also provide an out- provided through vendors to certify the knowledge
let for research presentations on a wide variety base of people who support their products. Novell's
of topics. Certified Netware Engineer (CNE), for instance,
The largest such conference is the International requires the passing of an exam that follows com-
Conference on Information Systems (lCIS) which pletion of a networking and telecommunications
is held annually in early December. The location of course. The courses may be intensive one to two
the conference rotates around the world with the week events that are sponsored by the vendor, or
majority of conferences currently held in North they may be offered through a continuing education
America. The conference locations for the next program at a local university and span several
several years include Vancouver, British Colum- months of part-time study.
bia-1994; The Netherlands-1995; Cleveland, The motivation for accreditation is simple: Many
Ohio--1996; and Atlanta, GA-1997. people profess to be IS professionals, few really are.
Topics of interest at recent ICIS conferences Those few should be rewarded by having the recog-
include globalization of IS, object orientation, ethics nition of their knowledge and expertise. Then, when,
and IS professionals, use of ITs in business organi- for instance, consultants advertise their ability to
zations, CASE, and computer-supported diversity perform a job, the credentials they offer have some
of organizations. Although about 90% of attendees instant credibility when they include accreditation
at ICIS are academics, the remaining 10% of pro- ratings. The word some is emphasized here because
fessionals is increasing. Panel sessions frequently passing an exam is still not the same as performing
include practitioners from industry. Key note on a job. The point of accreditation is to separate
addresses are mostly by local CEOs or CIOs who those who have detailed knowledge about the field
discuss the future of IS from their perspective. from those who do not. Having accreditation is no
ICIS is not a conference that all practitioners need guarantee of work performance.
to attend regularly. Rather, if the theme of the con-
ference matches an interest in your organization,
ICIS is a good place to hear about the latest research Read the Literature
in the area, and to meet the people doing the re- Reading is fundamental to maintaining currency in
search. Occasional attendance at a conference such methodologies, technologies, and industry with
as ICIS once every three to five years is probably changes that take place as rapidly as in the informa-
enough to maintain contact with academia. tion systems field. When selecting periodicals, news-
papers, and/or books for keeping current, you should
have a clear idea of why you are spending your hard-
Accreditation earned money on each purchase. For each type of lit-
Professional organizations help you keep current in erature, this section discusses what you should try
the field with new developments in new areas and to keep current on, why you should be current, the
with updates on areas you already know. Accredita- general tone and content of articles and/or chapters
786 CHAPTER 19 Software Engineering as a Career
for the type of literature, and what you should get • New ways of combining disparate technolo-
from reading this type of writing. The three general gies that will change future ways of comput-
types of literature discussed are practitioner jour- ing (e.g., how to combine database, object
nals and newspapers, books, and academic research orientation, and artificial intelligence in
journals. Parsaye et al.'s, Intelligent Database Systems)
Practitioner journals/papers allow you to main- • Well-written and comprehensive text books on
tain awareness of the market place and vendors. all IS topics (e.g., costing, estimating, and
When reading journals and newspapers, always keep Co CoMo use by Barry W. Boehm Software
in mind how applicable the products might be to Engineering Economics)
your organization. These periodicals are good for • Classics that describe the intellectual growth
finding out the latest announcements and about prod- of IS professions (e.g., Ed Yourdon, Writings
ucts that are already on the market. They provide from the Revolution, or ACM, Turing Award
the following: Lectures 1966-1985)
TABLE 19-1 Automated and Other Support Tools for IS Career Definition
Title Author/Source Content
Looking for Work: An Interactive Frank L. Greenagel, Under $30, provides worksheets
Guide to Marketing Yourself InterDigital Inc. and tips to finding the right job
25 Water St. for you.
Lebanon, NJ 08833
(908) 832-2463
No Specific Shareware Title Software Labs Many diskettes available at
100 Corporate Point under $4 each that offer tips on
Suite 195 IS jobs.
Culver City, CA 90231
(800) 569-7900
Bootstrappin' Entrepreneur: Kimberly Stansell A free booklet of tips for
The Newsletter for Individuals With Suite B261 beginner entrepreneurs.
Great Ideas and a Little Bit of Cash 8726 S. Sepulveda Blvd.
Los Angeles, CA 90045
Internet. Internet is a network of networks that links engineering skills and methods to the development
academic, government, and business org~nizations of applications.
worldwide. At last count, there ,were. over one mil- Next, careers in IS are classified by level and
lion nodes on the network and many millions of type. The levels of experience are junior, intermedi-
users. Internet and local bulietin Hoards provide ate, senior, lead, technical specialist, and manager.
local, almost free access to information about a wide Job types differ depending on area of specialization,
range of subjects. Those relating to job search offer including application development, application sup-
applicants seeking to work in small companies a port, technical specialization, staff positions, and
means to find a company with minor effort. The use other positions.
of bulletin boards, automated search systems, and Application development includes programmer,
other freely available information (e.g., via Inter- software engineer, and knowledge engineer. Appli-
net) will grow considerably in the future. cation support positions include application special-
In addition to automated advertising, tools and ists, data administration, database administration,
booklets are available to help you set your job search artificial intelligence engineering, and consult-
course. Several recent publications are listed in ing. Technical specializations are communications,
Table 19-1. LAN s, systems programming, and software support.
Staff positions include security, EDP audit, training,
standards and technical writing, quality assurance,
SUMMARY _________~___ and technology planning. The other positions
include product support, marketing, and end-user
In this chapter we discussed emerging career paths specialists.
for software engineers. Computer science and infor- Next, one approach to career planning was
mation systems education are converging due to described. The steps in obtaining your next job
increasing overlap on areas of emphasis to both are to decide your objective, search companies that
groups. While IS SEs will still predominate in busi- fit your profile, assess the likelihood of your attain-
ness enterprises, and CS SEs will continue to be ing the ideal job and, if necessary, adjust your
more technically oriented, both will apply systematic expectations.
788 CHAPTER 19 Software Engineering as a Career
taken by their academic programs? How do 10. What are the duties of a system5 programmer?
they complement each other? 11. Why are security specialists needed in
3. What are the levels of experience generally organizations?
used in titles to separate different levels of 12. Why is quality assurance in an adversarial role
expertise? with application development project teams?
4. How do the duties of a lead person differ from 13. In what types of companies do product and
those of a manager? market support people work?
5. How do the duties of a lead person differ from 14. Define the steps to planning a career.
those of a technical specialist? 15. Why is it important to have an objective when
6. In application development, the job types are looking for a job?
programmer, software engineer, and knowl- 16. How do you compute your chances of getting
edge engineer. Define each job and describe the job you desire in the type of company you
how their job content differs. want?
7. How do the functions of a DA and DBA dif- 17. What are the types of organizations you might
fer? How do they complement each other? join to continue growth as an SE professional?
8. Why and how do companies use consultants? Which type appeals the most to you?
What are companies' expectations of consul- 18. Why is continued growth of both knowledge
tants' knowledge? and experience important to a professional SE?
9. How does an AI specialist differ from a knowl- What happens if you do not continue to learn?
edge engineer?
APPEND
CASES
FOR ________________________ ~~
ASSIGNMENTS _ _ _ _ _ _ _ _ _~
790
AOS Tracking System 791
second printing 'closes' the order from any other accounting manager and, along with the owner,
changes and results in a multipart form being should be allowed access to an override function to
printed. Two of the parts are copies of the invoices, correct errors in the system. The other clerks should
showing all prices and other charges with a total be allowed to perform data entry for order process-
amount due. One invoice copy is sent to the cus- ing and actual goods shipped, and to print invoices/
tomer; the other is filed for further processing by shipping papers. The shipping clerk should be al-
accounts receivable. The third part of the set of lowed to perform order updates with actual goods
forms is the bill of lading, or shipping papers, that shipped and to generate shipping papers with a final
shows all information except money amounts. The invoice. The scheduler should be allowed access to
fourth part of the form is filed numerically by all outstanding orders to alter and schedule work for
invoice number in a sequential history file. The fifth the manufacturing processes. No one else in the
part is filed in a customer file which is kept in company should be allowed access to the system or
alphabetic sequence. to the data.
The system must allow order numbering by sub-
sidiary company, and must be able to print different
subsidiary name headers on the forms. The clerks AOS TRACKING _ _ __
batch orders so that only orders from one subsidiary SYSTEM _______________
are in each batch. Order types include recurring
orders, blanket orders (which cover the year with The AOS case is a logical description of a desired
shipments spaced out over the period), and orders application that also includes manual problems to
with multiple ship-to addresses that differ from the be corrected.
sold-to addresses. The manager of Administrative Office Services
When customers call to change or determine the (AOS) wants to develop an automated application
status of an order, the clerk taking the call first to track work through its departments. The depart-
checks the customer file to see if the order is com- ments and services provided include: word process-
plete. Then, he or she checks with the scheduler to ing and proofing, graphic design, copying, and
see if the order is in the current day's manufacturing mailing. Work can come into any of the departments,
mix. If the order is not complete or scheduled, he or and any number of services might be combined. For
she manually searches current orders to find the instance, word processing and proofing can be the
paperwork. About 15% of customer calls are only service. Word processing, proofing, and graphic
answered while the customer is on the phone. About design might be combined. Another job might
80% require research and are answered with a call include all of the services.
back within 30 minutes. The remaining 5% require The current situation is difficult because each
tracking, which results in identifying an order taken manager has some knowledge of the work in his or
verbally by a partner and never written down. Cus- her own area, but not where work is once it leaves
tomers have been complaining of the lost orders and their area. Overall coordination for completing jobs
threatening to go elsewhere with their business. using multiple services requires the AOS manager to
The current computer system is a smart type- give each department a deadline. Then, the AOS
writer and storage facility. The owner wants to pro- manager must track the jobs to ensure that they are
vide personal computer access via a local area completed and moved along properly.
network for the three partners, three clerks, two The basic work in each department is to receive
shipping staff, and one scheduler. He would like to a job, check staff availability based on work load and
eliminate the numerical and alphabetical paper filing skills, assign staff, priority, and due date, and up-
systems but wants to maintain the information date job information (for instance, if the work is
on-line indefinitely for customer service queries. reassigned). Jobs are identified by a unique control
The managers want ad hoc reporting access to the number that is assigned to each job. Other job
information at all times. The senior clerk is also the information maintained includes: requestor name,
792 APPENDIX Cases for Assignments
requestor phone, requestor budget code, manner of concept and this department provides several alter-
receipt (either fax, paper, or phone dictation), man- native designs, etc.).
ner of delivery (either fax, paper, or phone dictation), Information kept for mailing includes requested
and dates and times work is received, due, com- completion date, and the dates and times requests
pleted, canceled, notified, and returned to requestor. were received, completed, and acknowledged back
A job consists of requests for one or more types to requestor as complete. Other information includes
of service. For each type of service, information whether or not address labels were provided, mailing
must also be kept. Services include word processing list to be used (choice of four), number of pieces,
and proofing, copying, graphic design, and mailing. method of mailing (e.g., zip+four, carrier route code,
Information kept for word processing and proof- bar code, bulk, regular, special delivery, etc.), ma-
ing services includes a description of the job, type chinery required (e.g., mail inserter, mail sorter,
of request (letter, memo, statistics, legal document, etc.), and source of mailing (e.g. word processing in
special project, chart, manual, labels, etc.), other ser- AOS, user, other).
vices included with this request (i.e., copying, As a department's staff gets an incoming job, it
graphic design, mailing), software to be used (Word- should be logged into the system, assigned a log
Perfect, Harvard Graphics, Lotus, Bar Coding, number, and the job information should be entered
Other), type of paper (logo, plain bond, user pro- into the system. In addition, the receiving depart-
vided, envelope, other), color of paper (white, pink, ment completes their service-specific information
blue, green, buff, yellow, other), paper size (8.5" x (e.g., typing) and identifies the sequence of depart-
11 ", 8.5" x 14", other), special characteristics ments which will work on the job. As the individual
(2-hole punch, 3-hole punch, other), type of enve- departments get their task information, they com-
lope (letter, legal, letter window, legal window, bill, plete the service-specific fields.
kraft 9" x 12", kraft 10" x 13", supplied by requestor, Each department manager assigns a person to the
other), number of copies requested, user control task based on skills and availability. First, informa-
number, dates/times required, started, completed, tion matching service requests to staff skills should
reassigned, proof started, proof completed, revisions be done. Then, the staff with required skills should
started, and revisions completed. be ordered by their earliest availability date for
Information kept for copying includes the above assignment to the task. The system should allow
except software and dates/times relating to proofing tracking (and retrieval) of a task by job, department/
and revisions. In addition, keep requirements for col- task, person doing the work, date of receipt, due
lating, stapling, one-side or two-side, special formats date, or user.
(e.g., reduced 60% and put side-by-side in book The manager of AOS would like to receive a
format). monthly listing of all comments received (usually
Information kept for graphic design and mailing they are complaints) and be able to query details of
includes that for word processing, except type of the job history to determine the need for remedial ac-
envelope. The code schemes for type of request, tion. Comments should be linked to a job, service,
paper, software, and special characteristics are dif- user, and staff member.
ferent from those used for word processing. For
instance, paper for graphics refers to type of output
media which might actually include slide, trans-
parency, paper, envelope, video still, photograph, THE CENTER _ _ _ _ __
moving video, and so on. The type of request must
be expanded to include the number of colors, spe- FOR CHILD _ _ _ _ _ __
cific color selections, intended usage (intracompany, DEVELOPMENT _ _ _ _ __
external, advertising, public relations, other) and
level of creativity (i.e., user provides graphic and This case describes a currently manual process. The
this department automates the design; user provides analysis and design task is to develop a new work
The Center for Child Development 793
TABLE 1 Client Card File Information on the card file information, Medicaid forms are
completed: one per client with up to four visits listed
Last Name on each form (see Table 3 for Medicaid information
First Name required). Most clients have multiple forms pro-
Middle Initial duced because they have more than four visits to the
Fiscal Year center per month. Each form must be completed in
Medicaid Number its entirety (i.e., top and bottom) for Medicaid to
Family Identifier process them (the forms cannot be batched by client
Line/Person Identifier with only variable visit information supplied).
Sex , One copy of each form is kept and filed in a
Year of Birth Medicaid-Pending Claims File. The other copies
Diagnosis Code (NA) of the forms (or disks) are mailed to Medicaid for
Issue Date
processing.
Dates of Visits
Fees per Week
About four to six weeks after submission of
Amount Paid claims, Medicaid sends an initial determination
Balance Due (Updated Monthly) report on each claim. The response media is either
diskette or paper. Reconciliation of all paid amounts
is done by manually matching the Medicaid report
information with that from the original claim. If
flow and automated system for as much of the Medi- automated, report entries are in subscriber (i.e., CCD
caid payment process as possible. client) sequence. The paid claims are then filed in a
The Center for Child Development (CCD) is a Medicaid-Paid Claims File.
not-for-profit agency that provides psychiatric coun- Claims that are disputed by Medicaid (almost
seling to children, serving approximately 600 clients 90% are pending on the initial report; of pending
per year. Each client has at least one visit to CCD per claims, 10-20% are ultimately denied) are re-
week when they are in therapy. Most often, the client searched and followed up with more information as
has multiple visits to the center and to other agencies required. Electronic reconciliation in other compa-
in one day (e.g., to CCD and, say, to a hospital). nies reduces the 90%-pending to as few as 10%, thus
Medicaid reimburses expenses for only one such speeding the reimbursement process. CCD has a
visit per day. This means that multiple appointments contact at Medicaid with whom they work closely
at CCD for a given day will have one appointment to resolve any problems.
reimbursed; multiple claims on the same Medicaid
number for the same day are paid on a first-in, first-
paid basis by Medicaid. The current claims process-
TABLE 2 Visit Information
ing takes place monthly; for CCD to remain
competitive, Medicaid processing must be done Day
daily. To provide daily Medicaid processing, au- Date
tomation of the process is required. The Medicaid Type Appointment (i.e., Intake, Regular)
Administration has arranged with personal computer Client Name
owners to take claims in automated form on disk- Time of Appointment
ettes, provided that they conform to the information Single/Group Visit
and format requirements of paper forms. Amount Paid
To develop Medicaid claims, the business office Amount Owed
clerk reviews the client card file to obtain Medicaid Insurance Company
Medicaid (YIN)
number and visit information for each client (see
Last Date Seen
Table 1 for Client Card File Information and Table
Therapist
2 for Visit Card File Information recorded). Based
794 APPENDIX Cases for Assignments
filled, the acknowledgment lists prerequisites not TABLE 1 Patient History Information
met and that course is not registered. If the class is
full, the student acknowledgment is marked with Patient name
'course closed.' If a student is accepted into a class, Address
the day, time, and room are printed next to the course City
number. Total tuition owed is computed and printed State
Zip
on the acknowledgment. Student fee information is
Home telephone
interfaced to the Accounts Receivable subsystem.
Date of birth
Course enrollment reports are prepared for the Sex
instructors. Parent's name (if under 21) or emergency contact
Address
City, state, zip
DR. PATEL'S _ _ _ _ __ Telephone number
Known dental problems (room for 1-3)
DENTAL PRACTICE _ _ __ Known physical problems (room for 1-3)
Known drug/medication allergies (room for 1-3)
SYSTEM _ _ _ _ _ _ __
Place of work name
The dental practice uses a manual patient and billing Address
system to serve approximately 1,100 patients. The City
primary components of the manual system are State
scheduling patient appointments, maintaining Zip
patient dental records, and recording financial infor- Telephone number
mation. Due to increased competitive pressure, Insurance carrier
Dr. Patel desires to automate his customer records City, state, zip
and billing. Policy number
New patients must complete the patient history Last dentist name
form. The data elements are listed in Table 1. Then, Address
at the first visit, the dentist evaluates the patient and City, state, zip
completes the second half of the patient history in- Physician name
formation with standard dental codes (there are City, state, zip
2,000 codes) to record recommended treatments.
The data elements completed by the dentist are listed
as Table 2. The patient history form is filed in a TABLE 2 Dentist Prognosis Information
manila folder, with the name of the patient as iden-
tification, along with any other documents from sub- Dentist performing evluation
sequent visits. Date of evaluation
A calendar of appointments is kept by the secre- Time of evaluation
tary, who schedules follow-up visits before the Recommended treatment (room for 1-10 diagnoses
patient leaves the office. The calendar data elements and treatments)
are shown as Table 3. Also, before the patient leaves, Procedure code
any bills, insurance forms, and amounts due are Date performed (completed when performed)
computed. The client may pay at that time, or may Fee (completed when performed)
opt for a monthly summary bill. The secretary main-
tains bill, insurance, and payment information with
the patient history. Financial data elements are reminder cards and mailed. Once per month, the sec-
shown in Table 4. Every week, the secretary types retary types and sends bills to clients with outstand-
mailing labels that are attached to appointment ing balances.
----------------------------------------------~-
abstract data type In object orientation, the user- which is the basis for other current work by the project
defined data type that encapsulates definitions of object development team.
data plus legal processes for that data. batch applications Computer applications in which
action diagram In information engineering, a graphical transactions are processed in groups.
representation of procedural structure and processing benchmark A comparison test used to identify differ-
details suitable for automated code generation. ences between hardware or software products.
activity In information engineering, some procedure benefit Some improvement in the work product or pro-
within a business function that can be identified by its cess that results from a specific alternative.
input data and output data which differ. bid The financial response to an RFP. Bid types for
afferent flows In structured design, the input-oriented hardware are lease, lease with option to buy, or pur-
processes which read data and prepare it for pro- chase. For software, bid types are time and materials
cessing. (T&M) , T&M with a ceiling, or fixed price.
affinity Attraction or closeness. binding In object orientation, the process of integrating
affinity analysis In information engineering, a cluster- the code of communicating objects. Binding of objects
ing of business processes by the closeness of their func- to operations may be static, pseudo-dynamic, or
tions on data entities they share in common. dynamic.
analysis The act of defining what an application will do. black box A testing strategy that determines correct-
application The set of programs that automate some ness of functioning by creating input data is designed
business task. to generate variations of outputs without regard as to
application characteristic Descriptive information that how the logic actually functions. Black-box strategies
is common to all applications and includes data, pro- include equivalence partitioning, boundary value analy-
cesses, constraints, and interfaces. sis, and error guessing.
application complexity Fundamental application diffi- body of screen The large middle part of a screen con-
culty which comes from several sources, including man- taining application-specific variable information.
agement of the number of elements in the application, boilerplate Code that is invariant from one program to
the degree and types of interactions, support, novelty, another, regardless of program function.
and ambiguity. Booch diagram In object orientation, a graphical repre-
application type The business orientation of the appli- sentation of all objects and their processes in the appli-
cation as transactional, query, decision, or intelligent. cation, including both service and problem domain
architecture A snapshot of some aspect of an organiza- objects.
tion, e.g., data, business processes, technology, or com- bottom-up testing A testing strategy that tests complete
munications network. modules, assuming that the lower the number of incre-
associative data relationships Irregular entity relation- mental changes in modules, the lower the error rate.
ships, dictated by data content rather than abstractions bracket In information engineering, a graphical struc-
such as normalization. ture on an action diagram.
atomic process A system process that cannot be further business activity In information engineering, some high
decomposed without losing its system-like qualities. level set of procedures within a business function.
attribute In object orientation, a named field or property business area analysis In information engineering, a
that describes a class/object or a process. tabular clustering of processes which share data creation
audit control Application design components that prove authority for an entity.
transaction processing in compliance with legal, fidu- business function In information engineering, a group
ciary, or stakeholder responsibilities. of activities that accomplish some complete job that is
backup The process of making extra copies of data to within the mission of the enterprise.
ensure recoverability. business process Details of an activity, fully defining
baseline A product that is considered complete and the steps taken to accomplish the activity.
801
802 Glossary
cardinality The number of an entity relationship; can be configuration management Management of software
one-to-one, one-to-many, or many-to-many. code libraries.
CASE integration The absence of barriers between one constraint Limitations on the behavior and/or process-
graphical or text form and others. . ing of entities, including prerequisite, postrequisite,
central transform In structured design, processes hav- time, structure, control, or inferential.
ing as their major function the change of information context A setting or environment.
from its incoming state to some other state. context diagram A graphic developed during structured
champion A manager who actively supports and sells analysis to define the interactions of the application with
the goals of the application to others in the organization. the external world.
change control Project management techniques for contingency planning The identification of tasks de-
dealing with changes to specifications, application func- signed to prevent risky events and tasks to deal with
tions, documentation, etc. the events if they should occur.
class In object orientation, like objects that have exactly control point A location (logical or physical) in a proce-
the same properties, attributes, and processes. dure (automated or manual) where the possibility of
class hierarchy In object orientation, the basic hierarchy errors exists.
of relationships between classes of objects that also controlled redundancy The deliberate duplication of
accommodates lattice-like network relationships. data for control purposes.
class/object In object orientation, a set of items which conversion The placing of a computer application into
share the same attributes and processes, and manage production use; includes direct cutover, functional, geo-
the instances of the collection. graphic methods.
client object In object orientation, an object that re- cost The amount of money or other payment for obtain-
quests a process from a supplier object. ing some benefit.
code The low-level program elements of the software cost/benefit analysis The comparison of the financial
product created from design documentation; procedural gains and payments that would result from selection of
computer instructions. some alternative.
code generator A program that reads specifications and coupling A measure of intermodule connection with
creates code in some target language, such as Cobol minimal coupling of the goal (i.e., less is best).
ore. critical path The sequence of interrelated tasks during
coding The stage of application development during application development that takes the most time to
which computer code is generated. develop.
cohesion A measure of internal strength of a module critical success factor Some business activity or func-
with the notion that maximal or functional coh~sion is tion that is crucial to the organization's success.
the goal. CRUD matrix See entity/process matrix.
command language High-level programming lan- cutover A method of conversion such that, on a set day,
guages that communicate with software to direct its the old way of work is abandoned and the new way
execution. begins to be used.
composite cost model (CoCoMo) A combination of data The elements in raw material-numbers and let-
estimating techniques based on thousands of delivered ters-that relate to each other to form fields (or attri-
source instructions. butes) which define entities.
compromise of requirements A change to application data administration (DA) The management of data to
functions to rescope, manipulate, drop, or otherwise support and foster data sharing across multiple divi-
change them to fit the environment's limitations. sions, and to facilitate the development of database
computer-aided software engineering (CASE) A applications.
computer application that automates the development of data characteristics Descriptive information about data
graphics and documentation of application design. including ambiguity, completeness, semantics, struc-
CASE can be intelligent and inClude verification capa- ture, time-orientation, and volume.
bilities to ensure syntactic correcmess of information data collection techniques Methods of obtaining infor-
entered. mation and application requirements, including inter-
concurrent processes In object orientation, processes views, meeting, observation, questionnaires, temporary
that operate at the same time and can be dependent or job assignment, document review, and external source
independent. review.
Glossary 803
data dictionary In structured analysis, a compilation of dialogue flow diagram In information engineering, a
detailed definitions for each element in a DFD. diagram summarizing allowable movement between
data distribution choices In data distribution analysis, entries on a menu structure diagram.
possible designs include data centralizing, repli- direct manipulation Screen interactions during which
cating, vertical partitioning, subset partitioning, or the user performs 'in action directly on some display
federating. object.
data flow diagram In structured analysis, a graphic rep- display The screen portion of a computer.
resentation of the application's component parts. distributed computing A situation in which multiple
data methodology Those development methods that processors share responsibility for managing pieces of
begin defining functional requirements by first evaluat- an application.
ing data and their relationships to determine the under- divide and conquer The principle in structured analy-
lying data architecture. sis by which a complex application problem is divided
data model A conceptual description of the major data into its parts for individual analysis. A technique to sim-
entities of interest in an organization for reengi- plify management of application complexity.
neering, or in an application for subject area database document A general analysis and design task that is per-
definition. formed to create useful documents from graphics and
data self-sufficiency A property of application target supporting text either manually or with computer-based
organizations such that 70% (or more) of data used in tools.
performing the business functions originates within the domain A conceptual area of interest. In organizational
subject organizations. reengineering the domains are data, process, network,
data type A language-fixed definition of data, e.g., and technology; in database, a domain is the set of
integers. allowable values for an individual attribute.
data warehouse The means to store unlimited, continu- downsizing The shifting of processing and data from
ously growing databases. mainframes to some other, less expensive environment,
data-oriented methodology Approaches to developing usually to a multiuser midsize machine, such as an IBM
applications that assume data are fundamentally more AS400, or to a LAN of PCs.
stable than processes and should, therefore, be the focus efferent flows In structured design, the output-oriented
of activities. processes which write, display, and print data.
database administration (DBA) An organization cre- elaboration A general analysis and design task that is
ated to maintain and monitor DBMS use, including re- performed to define the details of each thing identified.
sponsibility for physiCal DB design, disk space alloca- elementary process See atomic process.
tion, and day-to-day operations support for the actual encapsulation In object orientation, a property of pro-
database. grams that describes the complete integration of data
denormalization The process of designing storage with legal processes relating to the data.
items of data to achieve performance efficiency. entity In information engineering, some person, object,
decision support applications (DSS) Applications concept, application, or event from the real world about
whose purpose is to seek to identify and solve problems. wh~h we want to maintain data; includes attributive,
depth of hierarchy In structured design, the number of associative, and fundamental entity types.
levels in the diagram. entity relationship diagram In information engineer-
derived field Fields/attributes for which the application ing, a graphical representation of the normalized data
is the source, i.e., computed fields. environment and data scope of the application.
design The act of defining how the requirements defined entity/process matrix (CRUD) A two-dimensional
during analysis will be implemented in a specific hard- table of entities and business processes that identifies
ware/software environment. the functions each process is allowed to perform on
developmental tests Testing conducted by the project data, including create, retrieve, update and delete (e.g.,
development team, including unit, subsystem, integra- CRUD).
tion, and system tests. equifinality Many paths lead to the same goal.
dialogue In object orientation and information engineer- estimating Use of expertise to define project work
ing, ,interactive communication that takes place be- effort, including use of algorithms, models, delphi tech-
tween the user and the application, usually via a termi- niques, expert opinion, function points, top-down, and
nal' to accomplish some work. bottom-up techniques.
804 Glossary
ethical dilemma Any situation in which a decision plexity of an application by systematic definition of
results in unpleasant consequences requiring moral global application characteristics.
reasoning. functional decomposition The division of processes
ethics The branch of philosophy that studies moraljudg- into modules.
ment and reasoning. functional screen A screen at which the application pro-
exception handling The extent to which programs can cesses are performed.
be coded to intercept and handle program errors without generalization class In object orientation, defines a
abending a program. group of similar objects.
executable units In structured design for non-real-time global data Data variables and constants that are acces-
languages an execute unit is a link -edited load module. sible to any module in the application.
For real-time languages, an execute unit identifies mod- globalization The movement of otherwise local busi-
ules that can reside in memory at the same time and are nesses into world markets.
related, usually by mutual communication. goals of software engineering To build a quality prod-
executive information system (EIS) A spinoff from uct through a quality process.
DSS. EIS applications support executive decision mak- group decision support systems (GDSS) A special
ing and provide automated environmental scanning type of DSS applications. GDSS provide an historical
capabilities. memory of the decision process in support of groups
expert systems (ES) application Computer applications of decision makers who might be geographically
that automate the knowledge and reasoning capabilities dispersed.
of one or more experts in a specific domain. hardware installation plan A plan identifying work
external entity In structured analysis, a person, place required, environmental changes (e.g., air conditioning),
or thing with which the application interacts. work responsibilities, timing of materials and labor, and
facilitator A specially trained individual who runs JAD, scheduling of tasks as they relate to the installation of
fast-track, JRP, or walk-through sessions. computer and other information technology equipment.
factoring In structured design, the process during which hierarchical structure chart In structured design, a
net outputs from a DFD are used to determine the graphical input-process-output view of the application
initial structure of the structure chart. that reflects the DFD partitioning.
fast track A different name for JAD. human interface The means by which an application
feasibility The analysis of risks, costs, and benefits communicates to its human users.
relating to technology, economics, and using orga- Humphrey's maturity framework A framework
nizations. adapted to compare methodologies as having reached
field format The characteristics of individual fields or initial, repeatable, managed, defined, or optimizing lev-
values of fields on a screen display, including size, font, els of sophistication.
style, color, and blink for individual field values, and hypermedia Software that allows any number of asso-
coding options for field labels. ciative relationships to be defined for a given item; sup-
flash rate Blinking speed for a screen display item. ports audio, video, image, graphics, text and data.
flicker fusion A physical phenomenon that causes us to I/O bound In structured design, a structure chart in
see constant light when the flash rate is very high. which the skew is equally balanced between input and
footer The lower portion of a screen. output, but processing is a small part of the application.
form follows function A principle from architecture identification A general analysis and design task that is
which, when applied to structured analysis, defines performed to find the focal things that belong in analy-
application functions that transform data as the defin- sis and how logical requirements will work in the target
ing characteristic of applications. computer environment in design.
frozen specification A specification that cannot be implementation The period of time during which a soft-
changed without specific user/sponsor approval with ware product is integrated into its operational environ-
accompanying modification of budget and cost. ment and is phased into production use. Implementation
function A small program that is self-contained and per- includes the completion of data conversion, installation,
forms a well-defined, limited procedure. and training.
function key A programmable computer keyboard key information engineering (IE) A data-oriented method-
used to provide a shortcut command. ology that borrows from both practice and theoretical
function point analysis A method of defining the com- research to support the development of enterprise level
Glossary 805
plans through to individual project developments. IE legacy systems Applications that are in a maintenance
concentrates on business understanding, assumes user phase but are not ready for retirement.
involvement, and covers more phases of the SPLC than leveled set of DFDs Verified balanced set of entities,
most other methodologies. data flows and processes within a hierarchic DFD dia-
information hiding A program design principle by gram set.
which only data needed to perform a function is made leverage point Some business or application activity
available to that function. from which a competitive advantage can be gained.
information systems architecture framework (lSA) librarian A person working with an application devel-
Zachman's method of defining distinct architectures opment or maintenance team to provide librarian ser-
relating business context to application context at pro- vices relating to maintenance of documentation, code
gressively more detailed levels. objects, reusable modules, etc.
information systems methodology framework A stan- local data Data variables and constants that are used
dard for comparing methodologies based on their rep- only within a given module.
resentation forms and types of information supported. logical data model An abstract definition of data
information systems plan (ISP) An enterprise level in an organization that describes the way a user views
analysis of data, processes, and technology that includes data
manual or automated work to capture a snapshot of the maintenance The changes made to the logic of the sys-
enterprise in order to define and prioritize applications tem and programs to fix errors (perfective), provide for
for development. business changes (adaptive), or make the software more
inheritance In object orientation, a property that allows efficient.
the generic description of objects which are then reused make/buy decision The tradeoff between building the
by related objects. item in-house or purchasing it elsewhere.
input-bound In structured design, a structure chart in memory management The ability of a program to allo-
which the skew is on the input side. cate more computer random-access memory (RAM) as
instance In information engineering, a specific occur- required.
rence of an entity, e.g., entity = customer, instance menu Lists of options on a screen from which a selec-
= Sam Jones. tion is made.
integration test Tests that verify the logic and process- menu structure In information engineering, a diagram
ing for suites of modules that perform some activity, translating process alternatives into a hierarchy of menu
verifying communications between them. selection options for an application.
interdependence A way of describing the interrelation- message In object orientation, the unit of communica-
ships between organizations; includes pooled, sequen- tion between two objects.
tial, and reciprocal relationships. meta-class In object orientation, classes whose instances
interface Some person, application, or organization with are other classes.
which an application must communicate. meta-data Data about data that gives meaning to
iterative project life cycle A cyclic repetition of analy- data and is information about data, e.g., data type=
sis, design, and implementation activities. integer.
joint application development/design (JAD) A special meta-meta-data Information about the meta-data that
form of structured meeting during which user represen- describes its allowable use to the application, e.g.,
tatives, application developers, and a facilitator meet type=hardware.
continuously over several days to define the functional methodology Procedures, policies, and processes used
requirements of an application. to direct the activities of each phase of a software life
language constructs Features of computer languages cycle, including process, data, object, semantic, or none.
that determine what and how operations on data are car- model A conceptual definition of something, e.g., logi-
ried out. cal data, physical data, business processes, etc.
learn-as-you-go project life cycle An approach to the modularity The structured design principle that calls for
development life cycle that assumes every project is so design of small, self-contained units that should lead to
unique that it has no prior precedent upon which to base maintainability.
activities. module See program package.
legacy data Data used by outdated applications that are morphology Form or shape. In structured design, mor-
required to be maintained for business records. phology refers to the shape of a structure chart.
806 Glossary
multimedia A term that describes the integration of object, and the private implementations and language to
object orientation, data base, and storage technologies be used. Similar to a program specification in non-
in one environment. object methodologies.
multitasking In object orientation, the simultaneous packages In object orientation, a set of modules re-
execution of sets of processes. lating to an object which might be modularized for
multitasking objects In object orientation, objects that execution.
track and control the execution of multiple threads of part class In object orientation, defines a component of
control. a whole class.
multiple inheritance In object orientation, the ability partitioning The basic activity of dividing processes
to share attributes and processes from multiple class/ into modules.
objects. peer-to-peer networking A computer communications
net present value (NPV) A mathematical method of network in which intelligent sharing of resources and
comparing multiperiod projects that equalizes the cost data across multiple processors is taking place.
estimates by accounting for the time value of money. persistent object An object that is maintained over time,
normalization The refinement of data relationships to a database item.
remove repeating information, partial key dependen- physical data model The physical definition of data,
cies, and nonkey dependencies. describing its layout for a particular hardware device.
object In object orientation, an instance of the class physical database design The actions required to map a
definition. logical database to storage devices in a specific DBMS
object-based A design that is based on object thinking, implementation environment.
but is not object-oriented in its implementation. physical input and output The movement of data be-
object-oriented analysis A methodology for analyzing tween external computer (e.g., disk) storage and ran-
data objects and their allowable processes as encapsu- dom-access memory (RAM). I/O statements (e.g.,
lated and having inheritable properties. read/write) may be record-oriented, set-oriented, or
object-oriented methodology An approach to system array-oriented.
life cycle development that takes a top-down, encapsu- polymorphism In object orientation, the ability to have
lated view of data objects, their allowable actions, and the same process take different forms when associated
the underlying communication requirement to define with different objects.
an application architecture. presentation format The method chosen for summa-
off-site storage A location usually 200+ miles away rizing information for screen display, including analog,
from the main computing site used to store backup digital, binary graphic, bar chart, column chart, point
copies of databases, software, etc. plot, pattern display, mimic display, text, and text forms.
on-line application Applications that provide interac- primary key A unique set of values comprised of one or
tive processing to the user with or without immediate more attributes identifying an entity, an object, or a
file update. database item, depending on the context.
operations The daily processing of a computer appli- private part (of a class/object) In object orientation,
cation. defines local, object-only data and the specific proce-
option selection The choice for application navigation dures each action takes.
from among menus, command languages, and windows problem space In object orientation, identifies objects/
used to get to a functional screen. processes that are required to describe the problem, but
organizational reengineering An evaluation of an orga- are not required to describe the solution.
nization's data, processes, technologies, and communi- problem-domain objects In object orientation, the
cations needs to ensure that its goals as stated in its mis- class/objects and objects defined during analysis and de-
sion statement are met. scribing the application functions.
out-of-the-box thinking Examining a problem or issue process The sequence of instructions or conjunction of
without respect to the current context to determine events that operate on data.
novel approaches to resolving the issue. process data flow diagram (PDFD) In information
output-bound In structured design, a structure chart in engineering, a graphical representation of processes and
which the skew is on the output side. the data and event triggers that initiate processing. The
package specification In object orientation, defines the PDFD is the basis for action diagrams in IE design.
public interface for both data and processes for each process dependency diagram In information engineer-
Glossary 807
ing, a graphical representation of the sequence and types public part (of a class/object) In object orientation,
of relationships among processes. defines what data are available in the object and the
process diagram In object orientation, graphical repre- allowable actions of the object.
sentation of the hardware environment showing process quality assurance (QA) Any review of an application
assignments to hardware. development work product by a person who is not a
process model A conceptual description of the business member of the project team to determine whether or
processes of an organization. not the analysis requirements are satisfied.
process-oriented analysis A method of analyzing appli- quality assurance (QA) test A test by an outside agent
cation transformation processing as the defining charac- to determine that functional requirements are satisfied.
teristic of applications. The outside agent can be a user or a user represen-
process-oriented methodology Methodologies that take tative.
a structured, top-down approach to evaluating problem query application Another term for data analysis
processes and the data flows with which they are applications.
connected. question Words phrasing an asking sentence that can
process/location matrix In data distribution analysis, a be open-ended, without a specific answer, or closed-
table containing processes and, for each location under ended and requesting a yes/no or very short specific
analysis, the major and minor involvement in perform- answer.
ing each process. reentrant A property of a module that allows it to be
program package In structured design, one or more shared by several tasks concurrently.
called modules, and functions, and in-line code that will real-time application Applications that process transac-
be an execute unit to perform some atomic process. tions and/or events during the actual time that the
Also called a program unit. related physical (real-world) process takes place.
program specification A description of a program's recovery The process of restoring a previous version of
purpose, process requirements, the logical and physical data (or software) from a backup copy to active use fol-
data definitions, input and output formats, screen lay- lowing some damage to, or loss of, the previously active
outs, constraints, and special processing considerations copy.
that might complicate the program. recursive A property of modules such that they call
program template Standard code that performs a sim- themselves or call another module that, in turn, calls
ple function. them.
program unit See program package. regression test Customized tests to check that changes
programming The process of designing and describing to an application have not caused it to regress to some
an algorithm to solve a class of problems. state of unacceptable quality.
project life cycle The breakdown of work for initiation, relationship In entity-relationship diagrams, mutual
development, maintenance, and retirement of an appli- association between two or more entities. It is shown
cation. as a line connecting the entities; includes one-to-one,
project manager (PM) The person with primary re- one-to-many, and many-to-many relationship cardi-
sponsibility for organization liaison, project staff man- nalities.
agement, and project monitoring and control. The PM repository A data dictionary in a CASE environment
also performs activities with the SE including project that contains not only data, file, process, entity, and data
planning, assigning staff to tasks, and selecting from flow definitions, but also contains definitions of all
among application approaches. graphical forms, their contents, and allowable defini-
project plan A summary of the project planning effort tions (e.g., entity-relationship diagram, process decom-
that identifies the work breakdown tasks, their interrela- position, etc.)
tionships, and the estimated time to complete each task. request for information (RFI) A formal request for
prototyping The building of a subset of an application information on some product that usually precedes the
to assist in requirements definition, to test a proof of RFP process.
concept, or to provide a partial solution to a particular request for proposal (RFP) A written request for bids
problem. on some product, providing formal requirements,
pseudo-code Specification of processing using the syn- ground rules for responses, and, usually, a standard for-
tax from a programming language in abbreviated form mat for the proposal responses .•
for easy translation. request for quotation (RFQ) See request for proposal.
808 Glossary
responsiveness The underlying time orientation of the sequential development life cycle (SDLC) A subcycle
application as batch, on-line, or real-time. of the SPLC, including phases for analysis, conceptual
retirement The period of time in the software life cycle design, design, implementation, testing, installation and
during which support for a software product is termi- checkout, and ending with delivery of an operational
nated. application.
reusability Also called serial reusability, a property of sequential project life cycle (SPLC) The period of time
a module such that many tasks, in sequence, can use from inception to retirement of a computer application.
the module without its having to be reloaded into mem- Phases in SPLC include: initiation, problem definition,
ory for each use. feasibility, requirements analysis, conceptual design,
reusable components Programs, functions, or program design, code/unit test, testing, installation/checkout,
fragments that are specially designed for use in more operations and maintenance, and retirement.
than one program. server object In object orientation, an object that per-
reusable module A small, single function, well-defined, forms a requested process (i.e., client/server pro-
and standardized program module that can be used as a cessing).
called routine or as a copy book in COBOL. service objects In object orientation, manage applica-
reverse engineering See software reengineering. tion operations, including synchronizing, scheduling or
review A general analysis and design task that is to ana- multitasking objects, as required.
lyze quality of the reviewed product. skew In structured design, a term to describe the lopsid-
risk Events that would prevent the completion of, in this edness of a program structure chart.
case, an application development alternative in the man- social methodology An approach to SDLC that attends
ner or time desired. to social and job-related needs of individuals who sup-
risk assessment A method of determining possible ply or receive or use data from the application being
sources of events that might jeopardize completion of built.
the application. software engineer Skilled professionals who have a
round-trip gestalt In object orientation, an iterative variety of skills that they apply using engineering-like
approach to detailed design in which prototypes are techniques to the definition, design, and implementation
built in an incremental development life cycle. of computer applications.
scaffolding Extra code to support the stubs, partial mod- software engineering Systematic development, opera-
ules, and other pieces of the application, usually cre- tion, maintenance, and retirement of software.
ated to support top-down testing. software reengineering The reverse analysis of an
scheduling In object orientation, the process of assign-- old application to conform to a new methodol-
ing execution times to a list of processes. ogy, usually information engineering or object ori-
scheduling objects In object orientation, objects that de- entation.
fine sequential, concurrent-asynchronous (i.e., indepen- solution space In object orientation, identifies objects/
dent), or concurrent-synchronous (i.e., dependent) processes that are required both to describe the problem,
processes. and to develop a solution.
scope Definition of the boundaries of the project: what is specialization class In object orientation, a subclass that
in the project and what is outside of the project. reflects an is-a relationship, defining a more detailed
scope of effect In structured design, the collection of description of the gen class.
modules that are conditionally processed based on sponsor A manager who pays for the project and acts
decisions by the module under review. as its champion.
screen formats The general layout of a screen display stakeholders People and organizations affected by an
including definition of the menu/selection format, the application.
presentation format, and individual field formats. state In object orientation, a specific configuration of
security plan A plan identifying the physical, data, and attribute values of an object.
application means used to protect corporate information state transition diagram In object orientation, defines
and technology assets. allowable changes for data objects.
semantic methodology Methodologies used in the structure chart In structured design, a hierarchic, input-
automation of artificial intelligence (AI) applications, process-output view of the application that reflects the
including recognizing, reasoning, and learning appli- DFD partitioning.
cations. structured decomposition A technique for coping with
Glossary 809
application complexity through the principle of "divide test script Documents the interactive dialogue that takes
and conquer." place between user and application, and the changes that
structured design The art of designing system com- result from the dialogue for on-line and real-time
ponents and the interrelationships among those applications.
components in the best possible way to solve some test strategy The overall approach to testing at some
well-specified problem. level, used to guide the tester in developing test cases.
structured English Language-independent specification Test strategies are white-box, black-box, bottom-up or
of processing using a restricted subset of English. top-down. They are not mutually exclusive and are usu-
structured systems analysis A process-oriented analy- ally used in combination.
sis methodology that defines a top-down method of testing A phase of the SDLC during which the ap-
defining and graphically documenting procedural plication is exercised for the purpose of finding
aspects of applications. errors.
subsystem design Subphase of the design phase dur- thread of control In object orientation, a set of poten-
ing which the application is divided into relatively inde- tially concurrent processes. Usually, a single thread of
pendent chunks for detailed specification. control relates to a single user or a single application-
subsystem test See integration test. level transaction.
subdomain In object orientation, application design is time events In object orientation, the business, system,
seen as taking place in four distinct domains: human, or application occurrences that cause processes to be
hardware, software, and data. Encapsulated class/ activated.
objects (or a subset of them) are assigned to one of the time-event diagram In object orientation, a diagram
subdomains during design. depicting the relationships among processes that are
subject area data base In information engineering, a triggered by related events or have constraints on pro-
database that supports one or more business functions. cessing time.
supplier object In object orientation, an object that per- top-down A perspective that begins the activity (e.g.,
forms a requested process. analysis or design) at an abstract level and proceeds to
synchronizing The coordination of simultaneous events. more detailed sublevels.
synchronizing objects In object orientation, objects that top-down development A way of thinking about prob-
provide a rendezvous for two or more processes to come lems that begins at a high level of abstraction and works
together after concurrent operations. through successively more detailed levels.
synthesis A general analysis and design task that is per- top-down testing A testing strategy that assumes that
formed to build a unified view of the application, rec- critical control code and functions will be developed
onciling any parts that do not fit, and representing and tested first and followed by secondary functions and
requirements in graphic form. supporting functions.
system test A test to verify that the functional specifi- transaction analysis In structured design, a method of
cations are met, that the human interface operates as analyzing generic activities by transaction type to
desired, and that the application works in the intended develop structure charts of processing.
operational environment within its constraints. transaction processing application (TPA) Applica-
systems theory A theory defining inputs as fed into tions that support the day-to-day operations of a busi-
processes to produce outputs with feedback providing ness, e.g., order processing.
a check on the process. transaction volume matrix In data distribution analy-
task profile A description of the job(s) to be performed sis, a table summarizing volume of transaction traffic by
using a computer application. location.
technology transfer The large-scale introduction of a transform analysis In structured design, a method of
new technology to some previously nontechnical envi- identifying the central transform through analysis of
ronment. afferent and efferent flows.
test case Individual transactions or data records that trigger In information engineering, some data or event
cause logic to be tested. that causes a business process to execute.
test plan Documents the strategy, type, cases, and type 1 error Defines code that does not do what it is
scripts for testing some component of an application. supposed to do; errors of omission.
All of the plans together comprise the test plan for the type 2 errors Defines code that does something it is not
application. supposed to do; errors of commission.
810 Glossary
type checking The extent to which a language enforces walk-through A formal, structured meeting held to
matching of specific data definitions in mathematical review work products and find problems.
and logical operations; includes typeless, mixed-mode, white box A testing strategy that use~ logic specifica-
pseudo-strong, and strong. tions to generate variations of processing and to predict
unit test Tests performed by the author on each of the the resulting outputs. White-box strategies look at spe-
code units. cific logic to verify how it works, including various lev-
user-managed application development The overall els of logic tests, mathematical proofs, and cleanroom
management of application development by the user/ testing.
sponsor of the project to foster a business partner rela- whole class In object orientation, defines a composed
tionship with IS staff and to improve the quality of the object type.
finished product. windows A form of direct manipulation of the environ-
user profile A description of the user(s) of a computer ment that combines full screen, icon symbols, menGS,
application. and point-and-pick devices to simplify the human
utility object See service object. interface by making it represent a metaphorical desk
validation A review to establish the fitness or quality environment.
of a software product for its operational purpose. work around A rethinking of an application design
vendor response A proposal in response to an RFP. caused by limitations of the language, package, or target
verification A review to establish the correctness of cor- environment.
respondence between a software product and its speci- working s~t The minimal, real random-access memory
fication. (RAM) required by software when it is running.
INDEX ________________~____~~
3NF,480 application support, 768 bottom-up estimating, 180, 182
3x5 approach, 524 application technologies, comparison of, bottom-up testing, 692, 695, 702, 706,
4GL,540 15 709,716
40-20-40 rule, 185,224,740 application training, 422 boundary value analysis, 696
80-20 rule, 115,699,740 application type, 23, 663 business and technology trends, impact
application type and decision type, 22 on application development, 569
architecture, 115, 133, 150,328 business area analysis (BAA), 328-330,
Abacus Printing Company, 790 arrays and tables, 643 338,356,358,362,387
ABC Video Rental Processing case, 45, artificial intelligence (AI) applications, business event, 557
50-54 37,565,605,769 business function, 213, 332, 356, 452
abstraction, 281 artificial intelligence (AI) in CASE, 565 business function decomposition, rules
acceptance criteria, 672 artificial intelligence engineer, 769 for, 356
acceptance test, 691 artificial intelligence research, 46 business leverage point, 148
access, 116,312,413,415,420,422 assertion processing, 729-730 business partners, 39
ACM Code of Ethics, 103 assigning staff to tasks, 62 business process, 334
action diagram, 392, 396,401-402,424, Association for Computing Machinery
429-432 (ACM), 103, 780
action type, 527, 529 associative data relationship, 570 C,653-655, 657,661, 662
activity, 333, 356, 362 associative entity, 330, 339, 344, 348 C++, 539, 540, 542, 547, 550, 662
Ada, 653-655, 659, 660, 661, 662 atomic process, 292 called object, 526
adaptive maintenance, 27 attribute(s), 268, 331,348,373,479, calling object, 526, 528
Administrative Office Services (AOS) 485,489,533,627 candidate for template definition, 398
tracking system, 791 attribute, status, 484 cardinality, 343, 486,
advantages and disadvantages of attributive entity, 330, 339, 349 career path planning, 72, 764
estimating techniques, 174 audit controls, 392, 398,401,410,415 CASE. See computer-aided software
ADW, 134, 387 audit trail, 423 engineering
afferent flows, 280 automated interface, 12 CASE architecture, 223
affinity analysis, 133,336,381,383 automated support tools, 6, 79-80, CASE comparison, 565
algorithmic estimating, 173 144-145,270,275,497,498,534, CASE repository, 223, 348
ambiguity, data, 86 632,635,662,687,729-731, case statements, 643
analog display, 605 759-760,786-787 case-based reasoning, 48
analogy, 48,188,179 caseworkers, 114, 115, 117
analysis, 25-26, 42,199,631 cause-effect graphing, 696
analysis and design, general activities BAA. See business area analysis Center for Child Development (CCD),
summary, 41, 206 backup, 311,401,413-415,421 792
analysis and design, summary, 225 bar chart display, 607 central transform, 280
analysis domain, 47 baseline, 742, 751,755 centralization/distribution, 407
analysis phase activities, 200-201 BASIC, 651-653, 656, 662 champion, 67, 120, 172
application alternative approaches, 49 batch, 14,707 change control, 742-744
application boundary, 234 batch test simulator (BTS), 726, 732 change management, summary, 759
application change management, 741 benchmark, 670 change management procedures, 742
application characteristics, 5 benefits, 149, 153, 171, 188, 194 characteristics of languages, 640
application configuration requirements, binary display, 606 charge-in-charge-out,755
446 binary message, 505 Chen, Peter, 343
application conversion, 626, 627 binding, 507,508 chunking,613
application development as a translation black-box testing, 691,694,696, 704, class, 6, 47,64,468,486,487,494,521,
activity, 202, 205 709-711,714,718,721 539,540,659
application error recovery, 723 body of form, 610 class analysis, rules for, 486
application generator, 632, 633 body of screen, 590 class/object, 462, 468, 483, 486, 487,
application leverage point, 148 boilerplate, 740 489,494,507,528,533
application life cycle time distribution, Booch, Grady, 459, 487,501,509,524, classroom instruction, 588
741 555,560,564,565 cleanroom development and testing, 699
application maintenance, 749 Booch diagram, 504, 506, 521-523, client/server, 569, 571
application reengineering, 752 525,532,534,547,550,696 clock-driven, 513
application responsiveness, 13 bottom-up analysis, 243 closed-ended question, 90, 96
811
812 Index
Coad, Peter & Yourdon, Edward, 459, control logic, 714 data storage, 5
487,490,501,509,555,564 control point, 415 data stores, 228, 244
COBOL, 651-653, 656, 662 control structure, 710 data structure, 281
CoCoMo. See Composite Cost Model controlled redundancy, 415 data subdomain, 540, 546
code analyzers, 729 conversion, 391, 392, 625-633 data trigger, 335, 373
code and unit test, 27 corrective maintenance, 27 data type and application type, 99-100
code fragments, 741 correctness checking, 247 data type checking, 641-642
code generator, 398 correspondence between project life- data types, 86, 640-642
code library, 751, 752 cycle phases and testing, 691 data usage analysis, 401
code management, 735, 752 cost-benefit analysis, 140, 149, 172, data usage by location, 404
cognitive psychology, 46 187, 188 data volume, 86
cohesion, 246, 280, 281, 286, 292 coupling, 279, 246, 281, 286, 288, 293, data warehouse, 20, 570
collaborative work, 735, 756, 758 310 data-oriented analysis, 328-390
color spectrum, 624 Course Registration System, 794 data-oriented design, 391-455
column chart display, 607 courtesy, 105 datallocation matrix, 392
command language, 590,602,604 coverage analysis, 729 database administration (DBA), 310,
command manager, 547, 550 critical applications, 415, 584 311,318,401,453,626,693,709,
command object, 543, 545 critical data, 218 768
common class/object, 489 critical modules, 709 database design, 126, 311, 392, 557,
communications analyst, 769 critical path method (CPM), 60, 183, 560
company requirements, 667 185,672 database management software
comparison of languages, 650-655 critical success factor (CSF), 113, 124 (DBMS), 414, 419, 420, 452, 508,
compilation, 752 CRUD matrix. See entity/process matrix 509,510,519,549,561,569,571,
compiler efficiency, 650 cutover, 627 660
completeness checking, 247 DBA. See database administration
complexity management, 559, 560 DBMS. See database management
Composite Cost Model (CoCoMo), 173, data, 5, 115, 503 software
175, 176, 181, 182 data administration (DA), 218, decision history, 741, 744
compromise of requirements, 209 221-222,235,328,768 decision logic test, 698
computer-aided software engineering data analysis, 329, 392 decision support applications (DSS), 20,
(CASE), 2, 6, 113, 142-145, 185, data analysis applications, 19 100--101,604,605
194-195,210,214,222,268,270, data architecture, 115, 131, 150,218, decision tables, 313
275,319,322-323,387,450,489, 397 decision trees, 313
508,534,554,565,567,568,569, data authorization, 423 decision type, 23
632,640,650,656,657,662-663, data collection technique, 87, 88,98-99, declarative knowledge, 43
687, 729-731, 740, 751, 756, 101 declarative language, 19
758-760, 767, 786-787 data collection techniques summary, 88, decomposition, 254, 375, 442
computer-based training (CBT), 420, 107-108 deep structures,49, 308
588 data completeness, 86, 422 delta file/version configuration
conceptual design, 26 data conversion, 453, 626-627, 632 management, 753
conceptual foundations of object- data couple, 282, 284, 305, 308, 315 DeMarco, Tom, 227,230, 244, 555, 568
oriented analysis, 459 data dictionary, 230, 232, 234, 260--268, denormalization, 392, 548
conceptual levels of architectures, 126 582, 627. See also repository depth of a hierarchy, 284
concurrency decisions, 542 data distribution, 402, 403 derivation, 754
concurrent process(es), 425, 503 data flow, 228, 234-237, 239, 240, 245, derived class, 539
condition bracket, 425 258,306,373,375 design, 26, 197
condition logic test, 698 data flow diagram (DFD), 1, 152,228, design change, 742
conditional statements, 643 231,240,241,244,260,270 design decisions, historical file, 751
confidentiality, 103 data flow diagram, rules for, 241 design fragments, 741
configuration, 446, 452 data location, 626 design phase activities, 203-204
configuration management, 28, 751-755 data management, 519, 542, 545, 546 desired CASE features and functions,
Confucius, 50 data methodologies, 34-35, 555, 559, 566
conservatism, 49 564, 739-740 development life cycle (DLC), 182
consistency checking, 247 data modeling, 329. See also data- developmental tests, 691
Constantine, Larry, 279 oriented analysis device, 532
constraint(s),9, 11-12,213,483,484, data object, 548 DFD. See data flow diagram
512,513,542,557,559,573,701 data retrieval, 5 DFD Semantic Rules and Heuristics,
consultant, 769 data scrubbing, 183 257
context diagram, 228, 233-235, 240 data security, 392, 400 DFD syntax rules, 244
contingency planning, 149 data self-sufficiency, 122, 123 dialogue, 502
control couple, 282, 284, 307, 308 data semantics, 86 dialogue flow, 401, 438, 439, 440, 445
control language constructs, 643 data source, 579 dialogue flow diagram, 396, 442
Index 813
dictionary, 270 ethics and software engineering, 39, functional requirements, 199,375,724
digital and binary data, guidelines, 607 103-109, 408 functional screen design, 395, 601-602
digital display, 606 event diagram, 520, 557 fundamental entity, 330, 339
direct identification, 242 eventtrigge~335,373
direct manipulation, 601, 604 event-driven, 513
direct normalization, 331, 344 exception handling, 646 Gane, Chris, 565
directed lines, 494 execute unit, 292 Gantt chart, 185
disaster recovery, 420, 723 executive information system (ElS), 20, GDSS. See group decision support
distributed applications, 573 100,102 systems
distributed computing, 556 expert, 48,49, 128,604,605 generalization, 48
distributed environment, 532 expert judgment, 176, 178 generalization class, 462
distribution analysis, 401 expert systems applications (ES), 20, generalization-specialization, 487
distribution ratio formulae, 409 100,102,104,606,607 generic life cycle, 33
divide and conquer principle, 279 expert/novice differences in problem generic message, 547, 550
document, 204,209, 735 solving, 48-49 generic module, 540
document review, 89,97, 100--101, 151 explanation subsystem, 21 Georgia Bank Automated Teller
documentation change, 743 external entities, 228, 234, 235, 238, Machine System, 796
domain, 127 258,261 global data, 315, 645
downsizing, 571 external event, 372, 373 globalization, 572, 573
Dr. Patel's Dental Practice System, 795 goals of a software engineer, 3
DSS. See decision support systems goals of structured design, 279
facilitator, 210, 218 graphics user interfaces (GUI), 13
factoring, 281, 296 group decision support systems
Eagle Rock Golf League, 796 fan-in, 285, 308 (GDSS), 21, 100, 102, 103
ease of data conversion, 628 fan-out, 286, 308 group meetings, 88
economic feasibility, 25 Fast-Track, 210
edit and validate criteria, 627 feasibility, 25, 150-151, 172, 193
EDP auditor, 771 feasibility activities, 150 hardware and software purchasing
efferent, 280 feasibility analysis, 24, 25, 235 summary, 687
elaboration, 204, 206 feasibility analysis and planning hardware change, 742
elementary components, 228 summary, 195-196 hardware configuration, 529
elementary process, 334 feasibility study, 109, 148-151,234 hardware plan, 401
embedded systems, 22, 174 federation, 393 hardware planning, 392
embedded-system rules for drawing a field format characteristics, 616, 620, hardware subdomain, 502, 546
time-event diagram, 510 621,623,624,718 hardware/software installation plan,
encapsulated objects, 501 file, 228, 244, 373 guidelines for, 445
encapsulation, 459, 463 financial feasibility, 187 header, 590,609, 625
end-user specialist, 772 financial requirements, 667 help packages, 633
enlarged jobs, 114 firmware, 511 heuristics, 63
enterprise analysis, 143 fixed message type, 540 hierarchic input-process-output
enterprise architecture, 115, 151 fixed price bid, 674 diagrams (HIPO), 289
enterprise level planning, 109, 113 flexibility, 161,680 hierarchic logical data models, 6
entity, 5, 136,344,347,374,381,382, flicker fusion, 624 hierarchic, lattice-like relationships, 462
397,582 flowchart symbols for structured horizontal pull-down menus, 598
entity attribute, 339 constructs, 291 human interface, 12,392,442,510,511,
entity structure analysis, 331 Focus, 651-653,656,660,662 562,579,580,701,723
entity type, 330 footer, 592, 610, 625 human interface subdomain, 502, 546
entity-relationship diagram (ERD), 115, forgotten analysis and design activities, Humphrey, Watts, 554, 563, 564
122,129-131,151,329,339-343, summary of, 633 Humphrey's maturity framework, 562
348,356,362,373,374,381,397, form-filling screen, 601, 609 hypermedia, 758
486, 751 form screen sections, 612 hypertext, 758
entity/process (CRUD) matrix, 122, formula for determining schedule time,
134,336,381,383,387,392,402, 61
527,546 Fortran, 650,651-653,657 I-CASE, 452, 740
entity/technology matrix, 142 friend function, 540 I/O bound, 286, 308
equifinality, 573 frozen specifications, 742 I/O manager, 519, 550
equivalence partitioning, 695, 696 full backup, 414 I/O. See input/output
equivalent sets of processes, 721 function, 5, 228, 292, 313, 539 icons used in state transition diagrams,
error correction cost, 84 function point (FP), 180, 181, 182, 184, 495
error guessing, 696 563,564 IE. See Information Engingeering
essential system analysis, 202 functional decomposition, 129-131, lEE See Information Engineering
estimating techniques, 162, 172 279,288,329,333,356 Facility
814 Index
network architecture, 116, 129-130, part class, 462 process diagram, 506, 529, 532, 534,
131, 132, 137, 140 partitioning, 280 751
no methodology, 38-39 Pascal, 653-655, 657, 660, 661, 662 process hierarchy diagram, 122, 132,
normalization, 332, 339, 344,345-346, pattern display, 608 143,395,432,438,439,751
392,560 payback period analysis, 150, 193 process identification rules, 479
novice, 48,49, 240, 420,440,441,492, PDFD. See process data flow diagram process relationship, 334
568,595 peer-to-peer networking, 572 process-bound, 286, 308
percentage of reengineering effort by process-object assignment, 487, 520
task, 122 process-oriented analysis, 227-278
object attribute definition, 479 perfective maintenance, 27 process-oriented design, 279-327
object-based, 508 performance, 678, 680 process/data analysis. See entity/process
object-oriented analysis (OOA), persistent object, 510, 659 analysis, 136
456-500 personal manner and responsibility, 105 process/data interaction mapping and
object-oriented analysis documentation, personnel management, 70-72 analysis, 330
464 Pert chart, 672 process/entity matrix, 142
object-oriented design (OOD), 501-553 phases of application development, process!location matrix, 392
object-oriented logical data models, 6 24-28 processor, 532
object-oriented methodology, 35-37 physical database, 312, 391 production database, 311
observation, 88,94, 101-102, 151 physical database design, 290, 310 professionalism, 102-103
off-site storage, 413 physical data model, 7 program change, 742
Olle, et al. framework, 554, 556 physical security, 400 program morphology, 281
on-line applications, 14, 707 plan implementation, 142, 172 program package, 290, 312-313
on-the-job training (OJT), 588 planned data redundancy, 221 program specifications, 279, 293, 317
one-to-many relationships, 342 planning a career, 772-780 program stub, 695
one-to-one relationship, 342 point plot display, 607 program template, 736, 738, 740
OOA. See object-oriented analysis politics, 104 program unit, 290
OOD. See object-oriented design polymorphism, 462, 463, 506, 508, 534, programmer, 767
00DBMS,509 540 project assumptions, 62
open change request, 744 portability, 161 project control, 74
open system interface (OSI), 13 precision requirements, 581 project initiation, 40, 109
open-ended question, 90, 95, 96 presentation format design alternatives, project librarian, 755
operating characteristics, 680 605 project life cycle, 23, 40
operational environment, 678 Pressman, Roger, 565 project management, summary of,
operations, 2, 24, 27, 69, 723 price-to-win, 179 80-81
operations and maintenance, 27 primary key, 339,479,480 project manager (PM), 57, 59, 743, 744
operator precedence, 643 primitive level, 229 project mode, 174
optimizing level, 563 privacy, 104, 106 project monitoring and reporting, 74,
optional relationship, 343 private interface, 504 76-79
organic project, 172 private package part, 457, 531, 537 project plan, 58, 149, 181, 194
organizational feasibility, 25, 171 problem domain, 48, 505, 524 project sponsor, 120
organizational reengineering, 113 problem-solving strategies, 49 PROLOG, 650, 653-655, 658, 660, 661
organizational reengineering problem space, 469 proposal evaluation, 668-670
methodology, 118-123 procedural template, 397 protected part, 539
out-of-the-box thinking, 209 process, 9,46, 136,228,244,258,260, protocol, 94
output, 5 356,358,362,373,374,375,382, prototype, 29, 279, 312, 445, 501, 511,
output-bound, 286, 308 462,473,483,486,489,494,511, 548, 702
output comparators, 729, 732 533,539 pseudo-code, 264, 315,534
output message(s), 527, 529 process allocation to subdomain, 511 public interface, 506
overlapping window system, 598 process analysis and design public part, 459, 533, 539
overloading, 540 methodologies, strengths and purchase, 673
owner, 743 weaknesses, 322 purchased software change, 742
ownership, 104 process architecture, 115, 130 purchasing process, 666
process attribute(s), 483. 484
process control, 605
package purchase, 674 process database, 563 Q&A. See question and answer
package resources, 679 process data flow diagram (PDFD), 151, QA. See quality assurance
package specification, 504, 506, 533, 152,330,334,335,372,375,381, QA report, 726
534,550 396,432,438,696,751 QA test, 691, 724, 726
package testing, 707 process decomposition, 150,362,381 QA/acceptance test, sample errors, 725
Palmer, Iah, 227 process dependency, 330, 364 quality assurance (QA), 27, 563, 691,
parallel execution, 627 process dependency diagram (PDD), 723, 771
Parkinson's Law, 179 334,363,372,373 query applications, 19, 100, 101,605
816 Index
task dependency diagram, 60 top-down testing, 692, 695, 699, 701, vendor,59,668,669
task management, 518 702, 706, 707, 716, 721 vendor response outline, 670, 675
task profile, 580-582 top-down testing strategy, 709-710 verification, 28
technical alternatives, 159-160 trade-off analysis, 172 version management, 753
Technical Contracting Inc., 798 training, 72 vertical partitioning, 393
technical feasibility, 25 transaction analysis, 281, 294 vertical pop-up menu, 599
technical specialists, 769 transaction logic, 311 Vessey, Iris & Conger, Sue, 568
technical staff, 69 transaction object, 543 Vessey, Iris, Jarvenpaa, Sirka, &
technical trainer, 771 transaction-oriented applications, 17, Tractinsky, Noam, 270
technical writer, 771 281 Vienna development method (VDM),
technology architecture, 116, 130, 133, transaction processing systems (TPS), 699
140, 150 17,100,101,605 virtual function, 540
technology/network diagram, 129 transaction simulator, 732 volume test, 701
technology/process matrix, 142 transaction volume matrix, 393
technology surveillance, 772 transform analysis, 280, 295
technology transfer, 573 transform-centered applications, 281 walk-through, 217, 233, 247, 258, 275,
temporary job assignment, 90, 95, 101, transition, 492, 494 311,693,699
102, 151 triangulation, 87, 92 Ward, Paul, 568
test case, 692, 702, 711, 713, 720, 724 trigger, 334,373,374,512,557 Ward, Paul & Mellor, Stephan, 567
test coordinator, 693 type 1 error, 690 Warnier diagram, 289
test data, 311, 702 type 2 error, 691 Warnier, J. D., 290
test data generator (TDG), 729-731 weighted average cost formula, 674
test design, 693, 725 what we know and don't know from
test driver, 729, 732 unary message, 505 OOA and OOD, 534
test level and test strategy, 705-707 undirected search, 48 white-box testing, 692, 694, 697, 704,
test plan, 401, 692 unit testing, 27, 691, 693, 701, 703, 710,711,714,718,721
test script, 692, 696, 718 710-721 whole class, 462
test strategy, 692, 704, 706, 708 universal activities, 28 whole-part, 489
test strategy design heuristics, 708 unstructured interview, 90-91 width of the hierarchy, 284
test strategy objectives and problems, unstructured problems, 20 window(s), 590-598, 602, 604, 605
704 user, 67, 122,217,631,744 work around, 209
test team, 693 user acceptance test, 724 work breakdown, 183
testing, 27, 690-732 user documentation, 631-634 work flow management, 152, 153
testing and QA, summary of, 732 user involvement in application work unit, 752
testing information flow, 695 development, 39-40
testing strategy, 694-695, 707, 716 user liaison, 222
Texas Instruments, 391, 569 user object, 546 XY University Medical Tracking
text screen display, 609, 622 user profile, 583-585 System, 799
thousands of delivered source user views, 311
instructions (KDSI), 173 user-managed application development,
thread of control, 504, 542, 543 216,217 Yourdon, Edward, 227, 231, 244, 267,
tiled window system, 598 uses for prototyping, 29 279,459,557,560
time and materials bid (T&M), 674 utility objects, 503 Yourdon, Edward, & Constantine,
time-event diagram, 503, 504, 512-514, Larry, 555, 567
520
time orientation of data, 84 validation, 28
top-down analysis, 232, 242 validity, 95 Zachman, John, 125, 126, 127
top-down estimates, 179, 180 variation management, 754-755
top-down plan, 182 variation storage, 754