DDJ, June 1999 -- Object-Oriented Design


[June cover image]

FEATURES

DR. DOBB'S JOURNAL 1999 EXCELLENCE IN PROGRAMMING AWARDS

by Jonathan Erickson

Guido van Rossum and Donald Becker are the recipients of this year's Excellence in Programming Awards for their commitment to technical innovation and open communication.

USING THE COATS-MELLON OPERATIONAL SPECIFICATION

by Mark Coats, Mark McCloskey, and Theo Molla

The Coats-Mellon Operational Specification is a methodology for defining user-based scenarios that represent a complete and accurate model of system behavior. This article describes how the methodology has been used with real-world projects.

JAVA PORTABILITY BY DESIGN

by John J. Rofrano

Factory classes ensure that application code remains unaware of the platform it's running on. John describes how his team used factory classes when building an e-commerce catalog search engine written entirely in Java.

CROSS-PLATFORM DESIGN STRATEGIES

by Bob Krause

Bob discusses the cross-platform architecture his company uses when building applications that run on multiple platforms. In doing so, he presents a set of thread classes developed for use on both Macintosh and Windows.

A DNA SEQUENCE CLASS IN PERL

by Lincoln Stein

The Human Genome Project is a multinational project to determine the entire human DNA sequence by the year 2003. Lincoln describes some of Perl's object-oriented features in his Sequence library, which manipulates DNA sequences.

EXTENSIBILITY IN TCL

by John Ousterhout

One of the major reasons the Tcl scripting language has been widely adopted is its extensibility. Tcl's creator describes the design decisions he made to ensure this quality.

WIN32 DRIVERS FOR DIGITAL/VIDEO CAMCORDERS

by Thomas Tewell

The only thing wrong with the emerging class of digital/video camcorders is the lack of software to use them. Consequently, Thomas wrote a complete IEEE 1394 class driver package for Windows 98 and his new Sony DCR-PC10 digital/video camcorder.

EMBEDDED SYSTEMS

ROTATING A WEATHER MAP

by Robert D. Grappel

Robert describes and implements an algorithm he developed to efficiently perform rotation of graphical weather maps used by airplane pilots. He then suggests techniques you can use to optimize other time-limited computer applications.

INTERNET PROGRAMMING

CONCEPT-ORIENTED PROGRAMMING

by Brian McConnell

Concept-oriented programming makes it possible to write software that requires far less bandwidth to deliver, and thereby to increase apparent delivery speeds significantly. It also creates a mechanism for disseminating reusable code throughout the Internet.

PROGRAMMER'S TOOLCHEST

A VIDEO FOR WINDOWS ACTIVEX CONTROL

by Ofer LaOr

Video for Windows lets applications interact with video-capture cards. Ofer describes oVFW, an ActiveX control that encapsulates the Video for Windows API so that Visual Basic applications can easily interact with video-capture cards.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Did Xerox PARC blow it? Has HP lost its way? Can Linux really be for dummies? Michael asks and answers these and other questions.

C PROGRAMMING

by Al Stevens

Al's project this month is a Jukebox that maintains a list of standard MIDI Format files.

JAVA Q&A

by James Begole, Philip L. Isenhour, and Clifford A. Shaffer

Can JavaBeans be shared? You bet, and our authors show you how. Their approach is based on a replicated architecture, where each collaborator maintains a copy of the shared data.

ALGORITHM ALLEY

by Bill McDaniel

QuickSort is nice, but it's usually implemented using statically allocated arrays, and it does not take advantage of already-sorted data. Bill's variation of the Merge Sort addresses both of these weaknesses.

DR. ECCO'S OMNIHEURIST CORNER

by Dennis E. Shasha

Dr. Ecco and Liane discover that there's an art to putting together the pieces of a geometric puzzle.

PROGRAMMER'S BOOKSHELF

by Gregory V. Wilson

The focus of Greg's attention this month is The Practice of Programming, by Brian W. Kernighan and Rob Pike; How to Build a Beowulf, by Thomas L. Sterling, John Salmon, Donald J. Becker, and Daniel F. Savarese; Developing Visual Basic Add-ins, by Steven Roman; and Graph Drawing: Algorithms for the Visualization of Graphs, by Guiseppe di Battista, Peter Eades, Roberto Tamassia, and Ioannis G. Tollis.

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