MetaCASE tool
Encyclopedia
meta-CASE tool is a type of application software that provides possibility to use more than one modelling metodics or notations within process of software development
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...

.

Another definition: Meta-CASE tools are software tools that support the design and generation of CASE tools.
In general, meta-CASE tools should provide generic CASE tool components that can be customised and instantiated into particular CASE tools.
The intent of meta-CASE tools is to capture the specification of the required CASE tool and then generate the tool from the specification.

Quick CASE tools overview

Building large-scale software applications 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
Software development is the development of a software product...

 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 engineer
A software engineer is an engineer who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything containing software, such as computer chips, work.- Overview :...

s working on a particular application project
Project
A project in business and science is typically defined as a collaborative enterprise, frequently involving research or design, that is carefully planned to achieve a particular aim. Projects can be further defined as temporary rather than permanent social systems that are constituted by teams...

, the choice of CASE tool would typically be
determined by factors such as size of project, methodology
Methodology
Methodology is generally a guideline for solving a problem, with specificcomponents such as phases, tasks, methods, techniques and tools . It can be defined also as follows:...

 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 meta-CASE tools overview

Meta-CASE 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 meta-CASE technology approaches the methodology automation from a dynamic perspective.

Meta-CASE tools allow definition and construction of CASE tools that support arbitrary methodologies. A CASE tool customizer first specifies the desired methodology and customizes the corresponding CASE tool. Then software developers use that CASE tool 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 meta-CASE and CASE tools

Most CASE tools for object-oriented modeling
Object-Oriented Modeling
Object-oriented modeling , also called object-oriented programming is a modeling paradigm mainly used in computer programming. Prior to the rise of OOM, the dominant paradigm was procedural programming, which emphasized the use of discrete reusable code blocks that could stand on their own, take...

 are heavily based on the UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 method. A method also dictates other CASE tool functions, such as how models can be made, checked and analyzed, and how code can be generated. For example, a tool can generate CORBA
Çorba
Chorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...

 IDL definitions only if the modeling language can adequately specify and analyze CORBA compliant interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

s. If
the tool (and method) does not generate them, it offers very little, if any, support for work on interface design
Software design
Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...

 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
End-user
Economics and commerce define an end user as the person who uses a product. The end user or consumer may differ from the person who purchases the product...

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
Application domain
In Microsoft's Common Language Runtime , an application domain is a mechanism used to isolate executed software applications from one another so that they do not affect each other...

. 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 meta-CASE technology offers.

How meta-CASE works

Traditional CASE tools are based on a two-level architecture: system designs are stored into a repository
Software repository
A software repository is a storage location from which software packages may be retrieved and installed on a computer.- Discussion :Many software publishers and other organizations maintain servers on the Internet for this purpose, either free of charge or for a subscription fee...

, whose schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

 is programmed and compiled
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 into the CASE tool. This hard-coded 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.
Meta-CASE technology removes this limitation by providing flexible methods.

This is achieved by adding one level above the method level.
Meta-CASE tools are based on a three-level architecture.

1. The lowest, the model level, is similar to that of CASE tools. It includes system designs as models.

2. 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 (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 and an inheritance, 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 meta-CASE tool allows the user to modify the metamodel. Hence, meta-CASE is based on the flexibility of the method specifications.

3. This is achieved by having a third, higher level that includes the metamodeling language for specifying methods. This level is the hard-coded part of the meta-CASE 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 (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

s, classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 and metaclasses in some object-oriented programming languages.

meta-CASE tools

This is a list of available meta-CASE tools:

- Alfabet

- ArgoUML
ArgoUML
ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java....



- ConceptBase
ConceptBase
ConceptBase is a deductive and object-oriented database management system developed at University of Aachen and Tilburg University. It is mainly used for conceptual modeling and metamodeling in the domain of software engineering and related domains....



- Coral

- GME
Generic Modeling Environment
Generic Modeling Environment is a model-integrated program synthesis tool for creating domain-specific models of large-scale systems. GME allows users to define new modeling languages using UML-based metamodels...



- IPSYS TOOLBUILDER

- MetaEdit+ (world’s leading Domain-Specific Modeling
Domain-Specific Modeling
Domain-specific modeling is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system...

 software)

- Metamill

- MetaView

- OpenSoul Metamodeler

- Paradigm Plus produced by Computer Associates

OpenSoul Metamodeler

OpenSoul Metamodeler is a MOF based metamodeling CASE tool. It is built on MDR (Netbeans Metadata Repository) and JGraph
Jgraph
JGraph is a graph drawing open source software component written in the Java programming language; started by Gaudenz Alder as a University project in 2000 at ETH Zurich, Switzerland.-History:...

. It is a part of OpenSoul Project, which aims to be framework for sharing models between the metamodeling community members.

OSM project is developed by a small team of students and lecturer from Prague University of Economy - IT department. OSM is developed in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and it is based on MOF, OMG
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

 standards, JMI, Netbeans Meta Data Repository, JGraph
Jgraph
JGraph is a graph drawing open source software component written in the Java programming language; started by Gaudenz Alder as a University project in 2000 at ETH Zurich, Switzerland.-History:...

 components and W3C standards. It's inspired with some existing CASE and meta-CASE tools like MetaEdit+, DOME, ArgoUML
ArgoUML
ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java....

 and Poseidon for UML, Corporate Modeler.

Metamill

Metamill is a round-trip engineering
Round-trip engineering
Round-trip engineering is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and other documents...

 tool. Engineer can forward models by generating C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, C#, C and VB.NET code using code markers to preserve your changes

Metamodel system is based on UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 2.1 standard. Model files are XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 files, based on XMI 2.1 standard.

Metamill was developed for need of low-cost, professional and fast UML modeling tool. The driving idea is to make it support creative visual modeling, put in it only necessary features and then make them as good as possible.

Metamill is suitable for software engineering teams as well as individual designers who need a professional but affordable tool for UML modeling and engineering.

meta-CASE research projects

MetaCASE at the University of Sunderland, United Kingdom.

Method Engineering at the University of Twente, Netherlands.

ConceptBase from Rheinisch-Westfälische Hochschule in Aachen (Germany) is a deductive object manager for meta databases. It implements Telos, a conceptual modeling language with object-oriented and deductive properties.

GOODSTEP from University of Dortmund (Germany) is an object-oriented database for software processes. On top of the database two tool generators and a software process modeling and enactment system have been built.

Hardy from AI Applications Institute at Edinburgh (United Kingdom) is a hypertext-based diagramming tool. It runs on Suns and PCs.

HotDraw from the Department of Computer Science at the University of Illinois in Urbana-Champaign (U.S.A.), is a graphics framework for structured drawing editors with animation. It has been used to create many different CASE tools.

Real benefits of using meta-CASE 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 meta-CASE 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.

Research prototypes and even commercial meta-CASE 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 meta-CASE tools is MetaEdit+.

Following list represents several kinds of ways how these tools can be used within software development:

+ can reduce the time and cost to develop a computer-aided environment
+ can support formal software development methods
+ can support comparison of development environments
+ can used as an information systems modeling tool
+ can support structured methods
+ can support object-oriented analysis and design
+ can be used as a logistic modeling tool
+ can support a wide variety of methods
+ can support CASE training

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 graphics 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 transformation capability to transform from one method to other
+ to possess capability to inject CASE metrics
+ 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

  • UML
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

  • CASE tool
  • Data modeling
    Data modeling
    Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques.- Overview :...

  • Method engineering
    Method engineering
    Method engineering in the "field of information systems is the discipline to construct new methods from existing methods". It focuses on "the design, construction and evaluation of methods, techniques and support tools for information systems development"....

  • Domain-specific modelling

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK