This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:
Dr. Bruce E. Krell
High-Speed Windows Applications: Multitasking Design Methods
464 pages hardbound; includes index
Bantam Books, January 1993
Companion disk available for $40.00 + $6.00 shipping and handling
Reviewed by Diomidis Spinellis
According to the author the book describes methods,
techniques, and design approaches that can be used to develop
multitasking Windows applications that minimise memory usage,
exhibit high speed-performance, behave reliably during repeated
use, and are delivered to market on a timely schedule. No quantitative
arguments on the validity of those claims are given. In order
to achieve the stated goals the author proposes a software development
methodology tailored to the implementation of Microsoft Windows
programs using the C language and the Windows software development
kit (SDK). The methodology is based on dividing the application
into five independent components designed to behave gracefully
under the Windows 3.1 non-preemptive multitasking environment.
These components are scheduled using the Windows messaging mechanism
and communicate with each other using global shared memory.
For every component of the proposed methodology the
author justifies its existence, explains its key concepts, defines
its message protocol, and introduces supporting templates. These
templates are code skeletons that are supposed to provide reusable,
application-oriented modules that interface with the SDK functions.
About 80 pages of the book laboriously expand every one of
the ten templates and detail their mechanics, their parameters,
their pseudo code, some actual code, an example, and tailoring
The author subsequently provides the usage guidelines
of his methodology as a set of 30 step-by-step instructions, tables,
and diagrams. The methodology is based on generating the models
of: the application, its operations, their requirements and the
application's design and implementation. The level of detail
in the description of every step can be distracting.
The last 100 pages of the main text describe the design of an - unspecified until the chapter's fourth page - 3D viewing application using the proposed methodology. No functional description of the application is given; the reader has to guess the application's use by reading its design. Four appendices contain:
The book's bibliography consists of five books and
the mention of three development environments. The book is well
organised but suffers from excessive use of the passive voice,
too many unnumbered sections and heavily typeset diagrams and
A number of environments such as Microsoft's Visual C++ with Foundation Classes and Borland's Object Vision offer ways to organise Windows messages and the higher levels of Windows functionality abstraction advocated in the book. If for some reason these environments can not be used this book offers an alternative structured approach to programming Windows.