Portals eNewsletters Web Seminars dataWarehouse.com DM Review Magazine
DM Review | Covering Business Intelligence, Integration & Analytics
   Covering Business Intelligence, Integration & Analytics Advanced Search

View all Portals

Scheduled Events

White Paper Library
Research Papers

View Job Listings
Post a job


DM Review Home
Current Magazine Issue
Magazine Archives
Online Columnists
Ask the Experts
Industry News
Search DM Review

Buyer's Guide
Industry Events Calendar
Monthly Product Guides
Software Demo Lab
Vendor Listings

About Us
Press Releases
Advertising/Media Kit
Magazine Subscriptions
Editorial Calendar
Contact Us
Customer Service

Development Best Practices:
The New Landscape, Part 2

online columnist  Robert  Wegener     Column published in DMReview.com
February 10, 2005
  By Robert Wegener

This month's column will take a look at how patterns fit into model-driven architecture (MDA) and highlight some of the industry-specific patterns that are available. As described in last month's column, MDA is the creation of platform independent models (PIM) that can be translated automatically into platform specific models (PSM) that create targeted code models using specific languages like Java or C#.

The transformations from model to model and model to code are where patterns come into play. The three models to have patterns applied are the domain model, application model and the code model. The domain model defines the business domain and is independent of the technology to be used. The application model is based on a selected technology and defines the application. It provides the logical view of the application and defines the components for each layer of the application (presentation, business and data). The code model is generated based on the application model and consists of the actual code for the application. The type of pattern is driven by the specific model being transformed.

The two main categories of patterns are transformational and functional. The transformational patterns apply specific technology and implementation patterns to the conversion of higher-level models to lower-level models (PIM to PSM to Code). Functional patterns are what most people are familiar with when the subject of patterns is applied to development. These patterns encapsulate common problems into reusable, tested strategies for each level (domain, application and code).

The most common functional patterns are those defined by the Gang-of-Four. The core reference book Design Patterns by Gamma, Helm, Johnson and Vlissides is a must read for a good understanding of patterns. Another good source is Sun's Web site for the core J2EE patterns. The Gang-of-Four defines three main functional areas: 1) creational, 2) structural and 3) behavioral.

Creational patterns provide an abstraction of the instantiation process. Common patterns are the abstract factory, prototype and the singleton. The structural patterns provide an abstraction to form larger objects from different classes and objects. Common patterns are the adapter, decorator, faade and proxy. The third set of patterns is the behavioral patterns. They provide the communication between objects and classes, along with assignment of responsibilities between objects. Common behavioral patterns are command, observer and static.

The use of patterns in MDA helps to promote reusability and standardization. The next level of patterns that can be leveraged with MDA is archetype patterns. An excellent book on the subject is Enterprise Patterns and MDA by Arlow and Neustadt.

Archetype patterns are reusable business patterns. These patterns focus on reoccurring business themes that are common among most businesses e.g., customer, product, etc. The archetype patterns are not technical design patterns. They are meta models that are static in comparison to technology changes. By using the principles of MDA and UML the patterns can be automated to a high degree promoting software construction directly from business archetype patterns.

The book Enterprise Patterns and MDA also provides a very robust catalog of archetypes that can save countless hours of design time. It is a must read for any application designer and works in any development environment. IBM also provides a series of detailed enterprise patterns sorted by business, application and runtime patterns.

The object of MDA is to automate as much of the construction as possible directly from platform independent models by leveraging patterns to promote quality, reusability and insulate the business from technology changes. Patterns have given designers and architects a base of shared knowledge that can be exchanged through common semantics such as UML and enhanced with strategies such as MDA. The ability to have the model directly related to the code promotes living artifacts that are always synchronized with the application. The ability to automate the model also promotes instant verification of requirements.

There are other visual modeling tools and techniques, such as Microsoft's Whitehorse design tools that will be in the next version of Visual Studio. They aim to solve common enterprise development problems related to service-oriented architectures and enterprise system deployments. Whitehorse consists of three modeling tools:  Application Designer, Logical Data Center Designer and System Hosting Designer. Microsoft's vision is to create models that can be validated prior to deployment on different types of hardware based on service-based applications.

The key to all the design strategies and initiatives is to graphically promote model to code transformations that can be immediately validate against requirements, hardware configurations, software application integrations and services (SOA) and deployment configurations. The goal is to have all artifacts to become living documents that are always in sync with the deployed solutions.

Since there are different models, i.e., design, architectural and data models, there will be tools that target the difference but will be based on the premise of graphical representations of the solutions that can be automated to produce executable applications with limited manual coding and always current artifacts.

Next month's column will focus on development best practices for the agile development organization.


For more information on related topics visit the following related portals...
Best Practices/Benchmarking, Data Modeling and Enterprise Achitecture.

Robert Wegener is the director of solutions for RCG Information Technology's Web services. He has more than 20 years of information and business engineering experience in operations, customer service, transportation, finance, product development, telecommunications and information systems. Wegener also has extensive experience in various process and development methodologies, quality assurance and testing methodologies. He can be contacted by e-mail at rwegener@rcgit.com.

E-mail This Column E-Mail This Column
Printer Friendly Version Printer-Friendly Version
Related Content Related Content
Request Reprints Request Reprints
Site Map Terms of Use Privacy Policy
SourceMedia (c) 2006 DM Review and SourceMedia, Inc. All rights reserved.
SourceMedia is an Investcorp company.
Use, duplication, or sale of this service, or data contained herein, is strictly prohibited.