MetaBoss
User Guides
Synopsis
Beginner's Guide
Configuration Guide
Design Studio Guide
Programming Model Guide
Testing Framework Guide
'How To ...' Guides
References
Synopsis
Design Model Reference
Design Model UML Profile
Test Schema Reference
MetaBoss design library
Run-time libraries API
Dev-time libraries API
HatMaker Example
Synopsis
Enterprise Model Description
Enterprise Model Reference
SystemTest Example
WebServices Example
Miscellaneous
About MetaBoss
Quality Assurance
Compatibility Notes
Acknowledgments
Glossary
Change Log
Version 1.4.0001
Built on 15 Dec 2005 22:31:47

MetaBoss Programming Model Guide.

Introduction.

What is MetaBoss Programming Model ?

MetaBoss contains a number of code generators, which are used to produce a set of SQL scripts, Java code and other source files based on the Design Model. All these generators producing code adhering to a certain set of programming principles and coding patterns. We refer to combination of these programming principles and coding patterns as MetaBoss Programming Model.

There are, of course, other programming models around. J2EE, CORBA, .NET and other technologies are all recommending and some times enforcing certain coding patterns. MetaBoss Programming Model, while building on good aspects of other models, has some unique and interesting features of its own. This guide will take you through the model in detail.

Major design goals behind MetaBoss Programming Model.

MetaBoss Programming Model is pursuing following goals:

  • To create understandable, well documented code, which is easy to follow. Give special attention to "plug in" points - the places where handcoded parts of the system are connecting to the generated code.
  • Have a clear boundary between generated and handcoded parts of the system, so repeatable generation does not affect handcoded parts, and modifications to handcoded parts do not require repeat of generation.
  • Organise "plug in" points in a way that minimises necessity to change handcoded parts of code following changes to Design Model.
  • Make it possible to change technology, say from CORBA to J2EE, without modifying any handcoded parts of the system. This is achieved by completely hiding or, at the very least, abstracting out technology related parts of the system (e.g. Database access, Distribution, Transaction management etc.).

Normally the internals of the generated code are very seldom looked at (for as long as it works!). But with MetaBoss it takes two - human programmer and code generator - to produce a working system and this is why it is important that generator produces code, which human can easily read, understand and attach his/her work to.