DevX Skillbuilding for IBM DeveloperWorks
DevX Skillbuilding for IBM DeveloperWorks
DevX Skillbuilding for IBM DeveloperWorks
Get regular email alerts when we publish new features!
DevX Update for IBM developerWorks

More Newsletters
 Print Print

Pattern Implementations for More Efficiency, Consistency, Quality, and Fast Results

Patterns let you capture domain knowledge, best practices, and design expertise in tools such as Rational Software Architect to improve productivity, efficiency, and quality while automating and minimizing the mundane and mechanical aspects of software development. 


Admit it. Some aspects of crucial software development tasks are a constant source of frustration. Repetitive procedures, for instance, rank high on the list of developers' least favorable tasks—especially when developers on a distributed team are consistently misinterpreting specifications created by the architects and designers and making similar mistakes from one version of the application to the next.

When your company's most experienced and knowledgeable domain or technology specialists aren't available to provide guidance and expertise throughout the critical design and development phase, you're often left with the daunting challenge of trying to get everyone on your team to master, apply, and encode your company's best practices on their own. Wouldn't you rather spend your time working on the more interesting aspects of software development—creating business logic and business processes—and let tooling solve the repetitive coding and the best practices challenge for you?

It is possible to free yourself from coding and testing standard, repetitive algorithms, as well as increase your productivity and the quality of your software development by using patterns. In general, a pattern is a proven, best practice solution to a recurring problem for a given context. In simple terms, patterns can also be thought of as repeatable best practices, concepts, or solutions that assist in the creation of artifacts developed and used throughout the development life cycle. Artifacts can be models and descriptions, requirements specifications, architecture and design models, source and executable code, test data, test scripts, and various documentation, to name a few.

You probably are already familiar with the concept of patterns, since they are a popular topic of books, magazine, blogs and other online technical resources. Patterns have been traditionally used to communicate and design solutions, as well as a way to learn about best practices.

Currently, when you encounter patterns, you are most probably using pattern specifications. A pattern specification is a text description of the explicit documentation about the strategy and conditions for applying the pattern, the precise problem the pattern solves in the form of functional and/or non-functional requirements, the level of abstraction at which the pattern can be leveraged, and a description of the solution the pattern provides. While pattern specifications document best practices, the pattern user must read the pattern, identify situations for its use, and manually implement the pattern. This approach provides limited ROI as the details of coding the solution are open to interpretation often requiring manual effort and intimate knowledge of how to code the solution. In contrast, IBM Rational Software Architect provides the ability to quickly author pattern implementations from a given pattern specification using cutting edge tooling, which provide much higher ROI.

How to Get More Efficiency, Consistency, Quality, and Fast Results
The key factor that software development lacks is the ability to leverage automation and abstraction. Tools such as IBM Rational Software Architect help you to create pattern implementations—the creation of tooling to automate the application of a pattern. IBM Rational Software Architect provides support for running pattern implementations as well as tooling to analyze reference solutions, known as exemplars which are used to create pattern implementations.

Exemplars are developed by an expert in the target domain (e.g. insurance industry, telecommunications, etc.) and contain best practices, as well as a precise definition and description of the domain's artifacts in conceptual terms that allows for its communication and reuse by others, along with any variations that must be supported. Exemplars become the basis of a pattern or series of patterns. A process and associated tooling known as exemplar authoring allows you to quickly and easily analyze a reference solution. Using this analysis, you will be able to separate the dynamic aspects (point of viability) of the reference solution from the static aspects across the different applications of the solution.

(For more information about the relationship between exemplars, patterns, and pattern specifications, check out the pattern solutions page on the developerWorks Web site. – ed.)

  Next Page: Why You Should Care About Pattern Implementations
Page 1: Code Better with PatternsPage 2: Why You Should Care About Pattern Implementations
Submit article to:
Featured Resources from IBM