MetaCASE tool

Nevertheless, using CASE tools is modern way how to speed up software development and ensure higher level of application design.

First of all usage of these tools doesn't guarantee good results because they are usually large, complex and extremely costly to produce and adopt.

An advantage of this approach is that the same tool is used with different methodologies, which in turn, reduces the learning curve and consequently the cost.

From another perspective this technology can be used as a practical teaching tool considering the shortened length of development and learning times that suits academic course periods.

A method also dictates other CASE tool functions, such as how models can be made, checked and analyzed, and how code can be generated.

They can not specify the domain and system under development adequately because the method does not provide concepts or notations for the task at hand.

Typically they also find it difficult to map the concepts and semantics used in the models to their application domain.

After creating the models, which fail even to illustrate the application domain adequately, the tool does not provide the necessary reports nor does it generate the required code.

Later when the situation in the application domain evolves and the development environment changes you may incrementally update the method support in your CASE tool.

This dependency structure is similar to that between objects, classes and metaclasses in some object-oriented programming languages.

[5] This is a list of currently available metaCASE tools; many other modeling tools may also offer some measure of metamodeling functionality Jackson [6] recognises the vital difference between an application’s domain and its code: two different worlds, each with its own language, experts, ways of thinking etc.