18.4 Buying, Modifying, and Building a Model Compiler


Of the three example model compilers above, two can be bought off the shelf. A transaction-safe system with rollback is available from Kabira Technologies [3], and a model compiler for the pacemaker is available from Project Technology, Inc. [4].

There has to be agreement on a standard Executable UML. This project is under way. Once completed, expect exponential growth in the market for model compilers, so much so that one day soon you will be able to pick a model compiler off the shelf whose form fits your context perfectly.

In the interim, we cannot expect even the growing number of model compilers always to meet your needs. It is worth recalling, however, the discussion on reasons why early software engineers were reluctant to use programming language compilers. (See "Layers of Abstraction and the Market" on page 3.) One frequent argument was that the problem at hand was "special" and so complex that it couldn't possibly be compiled into efficient code. Our experience indicates that a small suite of model compilers can address a surprisingly large range of problems.

An approach to understanding performance requirements is to focus effort on those areas most likely to be of concern. Christopher Alexander also said in [2]:

It is common practice in engineering, if we wish to make a metal face perfectly smooth, to fit it against the surface of a metal block which is level within finer limits than we are aiming at, by inking the surface of this standard block and rubbing our metal face against the inked surface. If our metal face is not quite level, ink marks appear on it at those points that are higher than the rest. We grind away at these high spots…

Hence, any characterization of performance properties for a system should focus only on those areas likely to cause difficulties, rather than on a complete catalog of all possible data requirements and threads. In any case, successful systems change, adding data and functionality. Any architecture must be robust enough to handle such changes.

A winning strategy is to try out a model compiler and determine just how far off the performance is. After profiling the performance of the model compiler on a representative sample of the application, we may determine that the model compiler needs modification.



Executable UML. A Foundation for Model-Driven Architecture
Executable UML: A Foundation for Model-Driven Architecture
ISBN: 0201748045
EAN: 2147483647
Year: 2001
Pages: 161

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net