Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Pattern Solutions

Use patterns to drive productivity in software design and development

As a software developer, you must be highly productive to meet the growing demand for software. Many IT professionals continue to spend too much time repetitively and manually developing similar solutions at low-level abstractions. New methods in building software must be employed to free skilled IT professionals from these repetitive tasks and raise the level of abstraction to more powerful concepts. Better tools must be utilized to support these higher levels of abstraction and enable developers to deliver higher productivity by encapsulating proven experience as tool-enabled assets and artifacts.

This Web site contains patterns that are already built and freely available for use as well as information about how to build your own custom patterns. Discover how patterns provide solutions to recurring problems while allowing experienced developers to work at higher levels of abstraction. By capturing design expertise and best practices as tool-enabled assets and artifacts, patterns can greatly facilitate the development of Service-Oriented Architecture (SOA) applications -- resulting in significant improvement in productivity.

You can author, apply, and reuse patterns with IBM® Rational® Software Architect to improve design and development. Tell us what you think about pattern solutions. Send feedback to patterns@us.ibm.com.

Model-driven software development

Model-driven software development (MDSD) uses models as primary software artifacts from which other artifacts, such as lower-level models and code, can be generated. MDSD allows you to work at higher levels of abstraction, enabling you to focus on essential variables in your designs and delegating standard, algorithmic, and repetitive activities for expressing these variables to tooling. MDSD is one approach that can benefit from patterns; however, to use patterns does not require a MDSD approach.

More resources:

Patterns

Patterns begin as an idea or a best practice used in many projects. Patterns can exist at various levels -- from business to architecture, design, and programming to deployment and run-time administration -- and assist in the creation of artifacts according to best practices through all stages of the solution development life cycle.

A pattern is first abstracted from an exemplar that offers the best available solution to the problem within a certain context. This knowledge about the solution is documented with a formal description known as a pattern specification.

New methods now exist that allow us to implement patterns by capturing them in tools (known as microtools). As a result, the patterns are made available in other forms of reusable software artifacts, which helps to improve the software development process. Capturing these reusable software artifacts, or pattern implementation, is assisted by tooling capabilities such as those found in Rational Software Architect and enables patterns to be easily shared and applied.

When numerous patterns and other artifacts exist, you can use "recipes" to combine them to form larger-grained reusable assets. Recipes describe the ingredients (patterns and other artifacts) and the process guidance for using them together to rapidly solve a problem.

discovering patterns image

Exemplars

Solution exemplars are the foundation for patterns and represent the best solution to a given problem within a certain context, so they must be developed by an expert in the target domain. Quality exemplars should contain best practices reflected in the pattern, and in applications of the pattern, including all variations that the pattern automation will support.

Exemplars provide the basis for the pattern implementation.

Pattern specifications

Patterns are traditionally captured in documentation form called pattern specifications. A pattern specification is a precise definition and description of a pattern in conceptual terms that allows for its communication and reuse by others. Pattern specifications provide formal documentation of:

Pattern implementations

Patterns can now be implemented using software development tools. A pattern implementation is an artifact that greatly facilitates the application of a pattern in a particular environment, provides realized solutions to real problems, and makes patterns sharable and reusable. After they are implemented, these patterns become concrete artifacts, such as Rational Software Architect Patterns, Rational Software Architect Transformations, plug-ins, alphaWorks Design Pattern Toolkit (DPTK) patterns, and the like.

Tooling technologies

Rational Software Architect and DPTK/JET2 provide the tooling to author and apply patterns implementation. Patterns (specification and implementation) help the creation of various software artifacts needed for a software solution. The patterns themselves, once applied, are part of the solution.

The advantage of implementing patterns

Patterns provide a powerful way to improve product development by identifying best practices and design expertise that can be captured in tools and are then available for reuse.

By using patterns, your organization can: