JAOO is sorry to announce that Dr. Thomas Mowbray is unable to come to the JAOO'99 Conference due to an accident. Hays W. "Skip" McCormick who is the co-writer of the Anti-Patterns Book will speak instead.

Hays W. 'Skip' McCormick, Hays W. "Skip" McCormick

Biography

Hays W. "Skip" McCormick, Hays W. "Skip" McCormick is a lead engineer in the Distributed Components, Architectures and Frameworks department at the MITRE Corp. Skip has a diverse background in many information systems areas, including computer security, artificial intelligence, and distributed object computing. His most recent work has been in the areas of knowledge management and the pursuit of a truly useful reification of the elusive integrated, distributed collaborative system. He is co-author of AntiPatterns: Refactoring Software, Architectures and Projects in Crisis and AntiPatterns and Patterns in Configuration Management, published by J.S. Wiley, and has a new Program Management book due in early 2000, he has also has written for technical journals including Dr. Dobbs.

Thomas J. Mowbray, Ph.D. is Technical Director of the Interoperability Clearinghouse and Chairman of Component Management Group International in McLean, Virginia, USA. He co-authored three books on distributed software architecture: “The Essential CORBA”, "CORBA Design Patterns", and "Inside CORBA". In addition, Dr. Mowbray co-authored the recent book: “ANTIPATTERNS: Refactoring Software, Architectures, and Projects in Crisis." Dr. Mowbray writes the Software Architectures column for Component Strategies Magazine (formerly OBJECT Magazine). Dr. Mowbray is a Howard Hughes Doctoral Fellow and and Object Management Group Fellow. He is the Series Editor of the Pearson/Addison Wesley/MTP Software Architecture Series, and a founding board member of the World Wide Institute of Software Architects. Dr. Mowbray holds the B.S. degree in Electrical Engineering from the University of Illinois, Champaign-Urbana, the M.S. degree in Computer Engineering from Stanford University, and the Ph.D. in Computer Science from the University of Southern California.

Abstract 1: AntiPatterns

AntiPatterns are an intriguing new field of design patterns research and practice. AntiPatterns identify and categorize the common mistakes in software practice, a target-rich environment for AntiPatterns research. AntiPatterns also identify alternative solutions. Like Analysis Patterns, AntiPatterns extend the field of design patterns research into exciting new areas and issues, including: refactoring, reengineering, system extension, and system migration. This tutorial is based upon the new book “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” (John Wiley & Sons) co-authored by the tutorial presenter. AntiPatterns knowledge is based upon the 60 years of combined software project experience of the co- authors as well as numerous cited works, such as Dr. William Opdyke’s thesis on Refactoring, Bruce Webster’s “Pitfalls of OO”, the Mythical Man-Month, and Yourdon’s Death March Projects. AntiPatterns are not new; they are commonplace in society, and they have been around since software’s inception, for example “spaghetti code”. For several years, contributed AntiPatterns have been discussed widely by the design patterns community; this tutorial transforms the study of AntiPatterns into a research discipline with diverse practical applications. This presentation shortens the learning-curve for attendees by presenting an AntiPatterns reference model and AntiPattern examples that document this exciting new field of software knowledge.

Abstract 2: Software Design Level Model

Computer science has no accepted design level model comparable to the digital hardware design levels, although the need for such a model has been widely discussed.. Richard Helm (of "Design Patterns") proposed five software design levels which are recursively related. We extended Helm's ideas to propose Software Design Level Model (SDLM) presented in our books, "CORBA Design Patterns" and "AntiPatterns". SDLM defines discrete levels of software scale. However, SDLM is a reference model, not a layered architecture for software systems. SDLM’s purpose is to provide a conceptual framework for the separation of software design forces, based upon software scale. Other reference models for separation of design forces will be discussed. There is a wealth of documented computer science knowledge for most of the SDLM levels. Design patterns and pattern catalogs will be described within the context of SDLM.