Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Meta-Programming for the Real World"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps

 : All Demonstrations : Wednesday : Wednesday Demonstrations

Meta-Programming for the Real World

Courtyard, Demo room 1
Wednesday, 10:30, 45 minutes


This event is also being given Thursday at 12:30.

Matthew Fowler, New Technology / enterprise Ltd

Demonstration number: 8

JeeWiz is a commercial tool for model-driven development of enterprise-level systems. It can describe and generate any technology, and has been used for system-level generation (multi-tier J2EE, .NET, SOA systems) and model transformations (XMI to WSDL/XML Schema, and back).

The most difficult problem we have confronted is the complexity of mapping from rich, high-level logical models to the detailed artifacts required in real-life systems. JeeWiz provides reusable architecture and technology layers, local flexibility and cross-tier patterns, which makes JeeWiz meta-programming particularly complex; each major version of JeeWiz has been driven by the need to manage this complexity.

This process has resulted in a number of new elements - our "sub-atomic particles" of model-driven development - to allow us to partition the technology, domain and skill spaces into independently-changeable areas. These are then reassembled using a synergistic combination of meta-models, patterns, a framework for generation, and large-scale build techniques. The assembly process applies classic O-O techniques - inheritance, polymorphism, logical/physical management, encapsulation and patterns - to improve the effectiveness of JeeWiz meta-programming.

The demonstration will show

  • the process of specifying a model based on a meta-model
  • the transformations to build a real system
  • the process of meta-program maintenance, showing how the new elements are developed in isolation and then combined.