Refactoring In Redesign

This issue features a Guest Column by Georg Wilhem, Andreas Thumfart, and Heinz-Dieter Conradi entitled "Lessons Learned: Refactoring as a Means in the Redesign of an OO Knowledge Engineering System."

We also include two full-length articles. The first, "An Object-Oriented Analysis Technique Based on the Unified Modeling Language" by Jen-Yen Jason Chen (National Chiao Tung University, Taiwan) and Shih-Chien Chou (National Dong Hwa University, Taiwan), proposes a technique involving requirement capturing, specification component identification, and specification representation. The second article, "Filter Configurations for Transparent Interactions in Distributed Object Systems" by Rushikesh K. Joshi (Department of Computer Science, Indian Institute of Technology, Bombay), identifies filter configurations (based on the notion of first-class filter objects that transparently intercept messages in a client/server object architecture).

We also have a pair of conclusions from our last issue. Thomas Kühne's "A SmallTalk for Students: A Giant Leap for Studentkind, Part 2" describes the desirable properties of a beginner's object-oriented programming language and environment. SmallTalk is then compared to other languages to determine how well the languages provide support for these properties. "Dynamic Java Program Corpus Analysis, Part 2: The Control Pattern Analysis"—by Chung-Chien Hwang, Shih-Kun Huang, Min-Shong Lin and Deng-Jyi Chen—completes the authors' discussion on the optimization of Java runtime systems using a pattern-based profiler.

Andrew Koenig and Barbara E. Moo continue their outstanding series "Rethinking How to Teach C++." In this installment, they present an interesting revision to the problem of producing a permuted index for a file: an index in which every word in every line appears as an index term.

Profiling pre-production code has always been an important step in reviewing and optimizing the performance of systems. We review two important Java profiling tools in this issue: OptimizeIt and JProbe. Although quite different in their capabilities, the reviewers have found both tools to be outstanding in their classes.

Portions of the article "Adding CBD to OPEN" in the April issue of the Journal of Object-Oriented Programming were excerpted from Hendersen-Sellers, Brian. An OPEN Process for Component-Based Software Engineering: Putting the Pieces Together, Eds. G. Heineman and W. Councill. Addison–Wesley, Reading, MA, 2001.