DDJ June 1997 - Patterns and Software Design


FEATURES

LITERATE PROGRAMMING AND CODE REUSE

by Sverre Hendseth

"Literate programming," a concept introduced by Donald Knuth, lets you mix code and documentation in the layout of a program. Sverre implements the Singleton and State patterns to combine a macro processor with literate programming techniques.

DESIGN PATTERNS, JAVA, AND WEB DEVELOPMENT

by Martin Remy

Worker applets are nonvisual components that labor unseen behind the flashy facades of web pages. Using Java, JavaScript, and HTML, Martin presents three design patterns for incorporating worker applets into web projects.

DESIGN GUIDELINES FOR IS-A HIERARCHIES

by John A. Grosberg

When developing object-oriented designs, one of your goals should be to define a set of classes that are related hierarchically through inheritance. John focuses on the modeling approach to design. In doing so, he works with Venn diagrams and Object Models.

DESIGNING FOR TESTABILITY

by Fred Wild

Regression testing is a necessary, but tiresome, task, particularly in complex programs that have dependencies between subsystems. Fred shows how Perl scripts can automate the regression testing process.

IDLDOC: AUTOMATIC DOCUMENTATION FOR CORBA IDL

by Ernest J. Friedman-Hill and Robert A. Whiteside

idldoc reads in IDL (the OMG's "Interface Description Language") source and generates a set of HTML pages that document the interfaces described in the IDL.

SBI: THE SMALL BASIC INTERPRETER

by Steve Reichenthal and Tom Bennett

SBI implements a useful subset of Visual Basic. As such, SBI is a powerful scripting language that you and your users can instantly put to work.


EMBEDDED SYSTEMS

WATCHDOGS FOR INTERRUPT MONITORING

by Rolf V. Oestergaard

Rolf presents IntMon and WdMon, a set of verification and "problem-spotting" tools he wrote to ensure that interrupts are not missed, watchdogs are serviced, and processes don't run too long.


INTERNET PROGRAMMING

INTERNET SECURITY PROTOCOL

by Tom Markham

Tom examines the IP Security (IPSEC) protocol, a security layer that is part of the IPv6 protocol. IPSEC operates in the IP layer and secures anything using UDP or TCP.


PROGRAMMER'S TOOLCHEST

AN UNLIMITED UNDO/REDO STACK PATTERN FOR POWERBUILDER

by David Van Camp

David presents a technique for providing unlimited undo and redo capabilities to windows developed using PowerBuilder. He uses design patterns to provide a simple, standardized approach that is easily understood and highly adaptable to a variety of specific problems.

WEB EXTENSIONS AND APPLICATIONS USING FASTCGI

by Scott Dybiec and Philip Rousselle

By implementing a software layer that receives control from a web server, OpenMarket's FastCGI protocol addresses many of the shortcomings of both conventional CGI and server APIs. Our authors discuss the FastCGI protocol, describe the OpenMarket C programming library for FastCGI, and develop example applications using the OpenMarket library.


COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

From programming languages to free speech on the Internet, paradigm shifts do indeed happen. Michael looks at some paradigms that may (or may not) be in transition.

C PROGRAMMING

by Al Stevens

Al continues his examination of visual development environments for C++, this month focusing on PowerSoft's Optima++ 1.5. He also takes a peek at Windows CE before (or while) heading for the beach.

JAVA Q&A

by Cliff Berg

With its built-in security features, Java is among the most secure environments you can program in. This month, Cliff explains how to create a security manager for your applications.

ALGORITHM ALLEY

by John Swartz

John examines a technique for symbolic integration proposed by James Slagle over 30 years ago. In doing so, he uses CLIPS (C Language Integrated Production System), a nonprocedural language that supports system development across and among three programming paradigms -- rule-based, object-oriented, and procedural.

UNDOCUMENTED CORNER

by George Shepherd and Scot Wingo

The ActiveX Template Library (included with Visual C++ 5.0), a framework for creating COM components, takes care of things such as class object and server lifetime issues, COM identity, and implementing IDispatch.

PROGRAMMER'S BOOKSHELF

by Richard Brath and Ray Duncan

How data is visualized is the focus of two books this month. Richard Brath examines The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics, by Will Schroeder, Ken Martin, and Bill Lorensen, and Ray Duncan looks at Visual Explanations, by Edward R. Tufte.


FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

NEWS & VIEWS

by the DDJ staff

OF INTEREST

by Eugene Eric Kim

SWAINE'S FLAMES

by Michael Swaine


Copyright © 1997, Dr. Dobb's Journal