ACM Home Page
Please provide us with feedback. Feedback
Meta-programming for the real world
Full text PdfPdf (112 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications table of contents
Vancouver, BC, CANADA
DEMONSTRATION SESSION: Demonstrations table of contents
Pages: 15 - 15  
Year of Publication: 2004
ISBN:1-58113-833-4
Authors
Matthew Fowler  New Technology / enterprise Ltd, London, UK
Brahm van Niekerk  New Technology / enterprise Ltd, London, UK
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 41,   Citation Count: 0
Additional Information:

abstract   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1028664.1028673
What is a DOI?

ABSTRACT

JeeWiz is a commercial tool for model-driven generation of enterprise-level systems. It can automate any part of the development process where repetitive work is required by meta-programming. JeeWiz is universal - being based on a meta modelling approach, it can describe and generate any software technology. It is used for both system-level generation (multi-tier J2EE,.NET, SOA systems) and design-level transformation (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. Some of the features JeeWiz provides to address this are: reusable architecture and technology layers; local flexibility and cross-tier patterns; and strategies for shielding application programmers from the complexity of infrastructures.

In summary, we need to satisfy demanding (and sometimes conflicting) requirements, namely to:<ul><li>represent both large-scale architectures and the fine-grained detail of programs</li><li>express general-purpose patterns as well as company-specific variations</li><li>manage simultaneous changes to model, hand-written code and code-generation patterns</li><li>encapsulate technology elements -languages, frameworks, architectures - into reusable layers</li><li>express models with logical information only but generate almost-complete physical systems.</li></ul>

These requirements make JeeWiz meta-programming particularly complex. Each major version of JeeWiz has been driven by the need to manage this complexity, and has pushed back the boundaries of what we can realistically express and generate. This process has resulted in a number of new elements - our "sub-atomic particles" of model-driven system generation. These are then used in a synergistic combination of meta-models, patterns, a framework for generation, and large-scale build techniques.

The demonstration will show these new elements in the context of <ul><li>specifying a model based on a meta-model</li><li>building transforms for real systems</li><li>meta-program maintenance, showing interesting combinations of the elements.</li></ul>


Collaborative Colleagues:
Matthew Fowler: colleagues
Brahm van Niekerk: colleagues