A metaCASE tool is a type of application software that provides the possibility to create one or more modeling methods, languages or notations for use within the
process of software development. Often the result is a modeling tool for that language. MetaCASE tools are thus a kind of language workbench, generally considered as being focused on graphical modeling languages.
Another definition: ''MetaCASE tools'' are software tools that support the design and generation of
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
s.
In general, metaCASE tools should provide generic CASE tool
component
Circuit Component may refer to:
•Are devices that perform functions when they are connected in a circuit.
In engineering, science, and technology Generic systems
*System components, an entity with discrete structure, such as an assemb ...
s that can be customised and instantiated into particular CASE tools.
The intent of metaCASE tools is to capture the specification of the required CASE tool and then generate the tool from the specification.
Overview
Quick CASE tools overview
Building large-scale
software application
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
s is very complicated process which is not easy to handle. Software companies must have good system of cooperation throughout developing teams and good displicine is highly required.
Nevertheless, using CASE tools is modern way how to speed up
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
and ensure higher level of application design. However, there are another issues which has to be kept in mind. 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.
CASE tools can be classified as either front-end or back-end tools depending on the phase of software development they are intended to support: for example, “Front-end’ analysis and design tools versus “Back-end” implementation tools. For a
software engineer
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ''p ...
s working on a particular application
project
A project is any undertaking, carried out individually or collaboratively and possibly involving research or design, that is carefully planned to achieve a particular goal.
An alternative view sees a project managerially as a sequence of even ...
, the choice of CASE tool would typically be
determined by factors such as size of project,
methodology
In its most common sense, methodology is the study of research methods. However, the term can also refer to the methods themselves or to the philosophical discussion of associated background assumptions. A method is a structured procedure for bri ...
used, availability of tools, project budget, and numbers of people involved. For some applications, a suitable tool may not be available or the project may be too small to benefit from one.
CASE tools support a fixed number of methodologies but software development organizations dynamically change their adopted methodologies.
Quick metaCASE tools overview
MetaCASE products are usually highly specialised, application development environments which produce a custom tool(set) from a high level description of the required tools.
So in other words metaCASE technology approaches the methodology automation from a dynamic perspective.
MetaCASE tools allow definition and construction of CASE tools that support arbitrary methodologies. A
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
customizer first specifies the desired methodology and customizes the corresponding CASE tool. Then software developers use that
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
to develop software systems. 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. Any desired methodology can be automated or modified by the developing organization which provides a dynamic capability in today's dynamic and competitive world. 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.
Differences between metaCASE and CASE tools
Most CASE tools for
object-oriented modeling
Object-oriented modeling (OOM) is an approach to modeling an application that is used at the beginning of the software life cycle when using an object-oriented approach to software development.
The software life cycle is typically divided up into ...
are heavily based on the
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
method. A method also dictates other
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
functions, such as how models can be made, checked and analyzed, and how
code
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communication ...
can be generated. For example, a tool can generate
CORBA
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
IDL definitions only if the modeling language can adequately specify and analyze CORBA compliant
interface
Interface or interfacing may refer to:
Academic journals
* ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics''
* '' Inte ...
s. If
the tool (and method) does not generate them, it offers very little, if any, support for work on interface
design
A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
and implementation.
When using methods developers often face similar difficulties. 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.
End-user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrat ...
s may find the models difficult to read and understand because they are unfamiliar with the modeling concepts. Typically they also find it difficult to map the concepts and semantics used in the models to their
application domain
An application domain is a mechanism (similar to a process in an operating system) used within the Common Language Infrastructure (CLI) to isolate executed software applications from one another so that they do not affect each other. Each applicati ...
. 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.
What is needed then is the ability to easily capture the specifications of any method and then to generate CASE tools automatically from these specifications. 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 is exactly what metaCASE technology offers.
ABC TO METACASE TECHNOLOGY, WHITE PAPER, MetaCase, 5605 North MacArthur Blvd. 11th Floor, Irving, Texas 75038
How metaCASE works
Traditional CASE tools are based on a two-level architecture: system designs are stored into a
Software repository, repository, whose
schema
The word schema comes from the Greek word ('), which means ''shape'', or more generally, ''plan''. The plural is ('). In English, both ''schemas'' and ''schemata'' are used as plural forms.
Schema may refer to:
Science and technology
* SCHEMA ...
is
programmed and
compiled
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
into the
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
. This
hard-coded
Hard coding (also hard-coding or hardcoding) is the software development practice of embedding data directly into the source code of a program or other executable object, as opposed to obtaining the data from external sources or generating it at ...
part defines what kind of models can be made and how they can be analyzed. Most importantly, only the tool vendor can modify the method, because it is fixed in the code.
MetaCASE technology removes this limitation by providing flexible methods.
This is achieved by adding one level above the method level.
MetaCASE tools are based on a three-level architecture:
# The lowest, the model level, is similar to that of CASE tools. It includes system designs as models.
# The middle level contains a model of the method, i.e. a metamodel. A metamodel includes the concepts, rules and diagramming notations of a given method. For example, a metamodel may specify concepts like a
class
Class or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used differentl ...
and an
inheritance
Inheritance is the practice of receiving private property, Title (property), titles, debts, entitlements, Privilege (law), privileges, rights, and Law of obligations, obligations upon the death of an individual. The rules of inheritance differ ...
, how they are related, and how they are represented. However, instead of being embedded in code in the tool, as in a fixed CASE tool, the method is stored as data in the repository. The use of metamodels has recently become more popular. Many method books now include metamodels of their method, and several important innovations, such as
XMI, are metamodel-based. Unlike a CASE tool, a metaCASE tool allows the user to modify the metamodel. Hence, metaCASE is based on the flexibility of the method specifications.
# This is achieved by having a third, higher level that includes the metamodeling language for specifying methods. This level is the
hard-coded
Hard coding (also hard-coding or hardcoding) is the software development practice of embedding data directly into the source code of a program or other executable object, as opposed to obtaining the data from external sources or generating it at ...
part of the metaCASE software.
All the three levels are tightly related: a model is based on a metamodel, which in turn is based on a metamodeling language. Clearly, no modeling is possible without some sort of metamodel. This dependency structure is similar to that between
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ai ...
s,
classes and metaclasses in some
object-oriented programming language
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
s.
metaCASE tools
This is a list of currently available metaCASE tools; many other modeling tools may also offer some measure of metamodeling functionality
* DOME
*
GME
*
MetaEdit+
*
MetaDONE
* Obeo Designer
* Whole Platform
*
ConceptBase
ConceptBase (a.k.a. ConceptBase.cc) is a deductive and object-oriented database management system developed at University of Aachen and University of Skövde. It is mainly used for conceptual modeling and metamodeling in the domain of software engi ...
Real benefits of using metaCASE tools
Jackson 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. A finished application forms the intersection between these worlds. The difficult job of the software engineer is to build a bridge between these worlds, at the same time as solving problems in both worlds.
Empirical studies have consistently shown that only around half of all development projects use methods. Among those using methods, over 50% either modify the methods to better fit to their need or even develop their own methods
In a standard CASE tool, the method supported by the tool is fixed: it cannot be changed. In a metaCASE tool, there is complete freedom to change the method, or even develop an entirely new method. Both models and metamodels (method descriptions) are stored as first-class elements in the repository. This allows an organisation to develop a method that suits their situation and needs, and to store and disseminate that knowledge to all developers. The tool and method then guide developers, provide a common framework for them to work in, and integrate the work of the whole team.
[Visual domain-specific modelling: Benefits and experiences of using metaCASE tools, Steven Kelly, MetaCASE]
Research prototypes and even commercial metaCASE tools have existed for many years, but only recently have there been tools which are mature, user-friendly and stable for both the method developer and the method user. One of the most widely known and used metaCASE tools
[Alderson, A., Cartmell, J.W., Elliott, A., ToolBuilder: From CASE Tool Components to Method Engineering, Peer Logic white paper, 1999] is
MetaEdit+.
Following list represents several kinds of ways how these tools can be used within software development:
[Principles of MetaCASE systems](_blank)
Vivekanandan Suresh Kumar
* can reduce the time and cost to develop a computer-aided environment
* can support formal software development methods
* can be used as an information systems modeling tool
* can support the creation of a wide range of modeling languages
* can support CASE and modeling language training
* can support modeling language comparison and integration
These tools should also possess the following characteristics:
* enabling users to create method support for their own software engineering methods with low learning curve
* to have easy to use graphical CASE tools to support simple and efficient user interactions
* to have the capability to check the consistency of a model, even at run-time
* to have standard report generation facility
* to possess complexity management tool that provides restricted views and granular model representations
* to possess sophisticated input dialogs for creation and modification of model data
* to possess customizable multi-method support
See also
*
Domain-specific modeling
*
Method engineering
Method engineering in the "field of information systems is the discipline to construct new methods from existing methods".F. Harmsen & M. Saeki (1996). "Comparison of four method engineering languages". In: Sjaak Brinkkemper et al. (eds.) ''Pr ...
*
CASE tool
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CAS ...
References
{{reflist
Computer-aided software engineering tools
Software for modeling software