ObjectAssembler puts pattern language into tool
- By John K. Waters
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
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
John K. Waters is a freelance writer based in Silicon Valley. He can be reached