ObjectAssembler puts pattern language into tool

In recent years, some developers have begun to make use of ''patterns'' as a means to improve systems quality. Patterns are relatively simple written narratives that define a problem, outline a solution and describe that solution's pros and cons.

They may be gaining in popularity. In effect, they are a way to document proven approaches to commonly recurring problems. A recent Giga Information Group report listed the pattern-based approach as one of the key trends in software development for 2003.

''Patterns are a way to capture best practices and repeatable processes that you can apply to your everyday work,'' explained Dana Kaufman, founder and CEO of ObjectVenture. But there are problems. Patterns, Kaufman said, are ''literary,'' meaning that they must be conveyed via text, such as a Word document or a book. The documents describe the patterns, generally in a conversational style, supply some diagrams and code examples, and explain how they should be applied. Each pattern also offers suggestions of other possible patterns to consider instead of, or in conjunction with, that particular pattern to help solve larger problems, Kaufman said.

Like a few other software companies, ObjectVenture is trying to bring ''literary'' patterns into the development tool environment. In an effort to transcend the limitations of the literary aspect of the patterns concept, Kaufman's Shirley, Mass.-based company developed the Pattern Component Markup Language (PCML), a ''tangible, machine-readable and exchangeable format for designing patterns.'' PCML is designed to provide a standard way of describing patterns and the effect they have on the software system they are applied to, and it's a key component of the latest released version of ObjectVenture's flagship product, ObjectAssembler (OA). ObjectAssembler 2.5 Enterprise is a visual J2EE development environment. The tool is engineered to allow developers to design, develop, assemble and deploy solutions using visual representations of components, frameworks and assemblies.

The latest release includes improvements to the workspace and to the code generation engine. In addition, an updated J2EE Core Patterns catalog has been provided with 15 patterns and numerous implementation strategies. Intellisynch technology provides real-time validation of the application while you work on it, identifying specification violations and questionable coding. OA also provides synchronization between the visual representation of an application and its underlying source code.

Further, ObjectAssembler now contains application server-specific deployment descriptor support (currently for WARs only) and deployment tools for the following application servers: JBoss 3, WebLogic 7 and Tomcat 4. Future releases will add support for EAR and EJB JAR app server-specific descriptors, as well as additional application servers. Apache's Struts support is also offered.

''Everything in patterns had been somewhat informal,'' said ObjectAssembler user Adam Chase, president, Chalk Creek Software. Chase used patterns in the past, after reading some of the books authored by proponents of the approach. He has subsequently used the ObjectAssembler software as part of his efforts at Chalk Creek, which is a Java consultancy.

''ObjectAssembler is trying to bridge the gap between the books and software development,'' he said. ''To date, there has been no way to electronically enforce patterns.'' Chase noted that patterns are something like a religion, and that various developers may interpret them differently, as the Bible is sometimes prone to different interpretations.

''There was no way for an architect or lead on a team to identify the patterns they wanted to use and then enforce them,'' he said. ''That's where PCML begins to make patterns a valid option for developers. It gives you a tool to help implement them and then kind of be a watchdog.

''It's a way in this day of increasing offshore development for local teams to define an architecture and then electronically submit to teams abroad, or just elsewhere in the country,'' continued Chase. ''[This way,] they have strict guidelines for an architect's vision and [you can] hold them to that.''

ObjectVenture's Kaufman expects PCML to serve as the foundation for more intelligent integrated development environments. PCML could enable tools, such as IDEs, to interactively participate with the developer in the process of building applications out of one or more components. ObjectVenture is working with Java user groups in the Boston area to promote the notion of an open-source group around PCML.

Conceptually, ''patterns'' have their origins in the writings of Christopher Alexander during the 1970s, who applied them to architecture and urban planning, but the concept is applicable to a range of other disciplines. Patterns found their way into software development in the early 1990s, but interest heated up with the publication in 1995 of Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides -- better known as the Gang of Four.

ADT's sister publications, Java Report and C++ Report , consistently covered patterns and similar methods. Here are links to just a few of the important patterns articles to appear there:

''Pattern Hatching: To Code or Not to Code, Part 1'' by John Vlissides and Andrei Alexandrescu in the Journal of C++ Report , March 2001. Please go to http://www.adtmag.com/joop/crarticle.asp?ID=317

''Pattern Hatching GoF a la Java'' by John Vlissides in Java Report , March 2001. Please go to http://www.adtmag.com/java/article.asp?id=355&mon=3&yr=2001

Greg Pavlik's review of Pattern-Oriented Software Architecture in Java Report , March 2001. Please go to http://www.adtmag.com/java/article.asp?id=357&mon=3&yr=2001

Links:
A series of free, Software Design Patterns tutorials are currently available on the ObjectVenture Web site at http://www.objectventure.com/tutorials

For other Programmers Report articles, please go to http://www.adtmag.com/article.asp?id=6265

About the Author

John K. Waters is a freelance writer based in Silicon Valley. He can be reached at [email protected].